技術文章 · IT 指令工具箱

Exchange Server 健康檢查:Service、Queue、DAG、Database 與憑證

Exchange Server 郵件卡住怎麼查?整理 Test-ServiceHealth、Get-ServerHealth、Queue、DAG、Mailbox Database、Connector、憑證與 Test-Mailflow。

作者 Steve Chen · 發布  · 約 10 分鐘閱讀

IT 指令工具箱 — 廷皓技術專欄插圖

Exchange Server 排錯先看服務與 health set,再看 queue 的 NextHopDomain/LastError、database copy、磁碟與憑證。不要看到 queue 變多就先 restart Transport。

20 組範例Exchange Server 2016/2019/Subscription EditionExchange Management Shell查核日期:2026-08-11
動手前:Retry、Suspend、Resume、Remove message 與重啟服務都可能影響郵件。先做唯讀查詢與備份,操作 queue 時鎖定單一 identity;DAG switchover、資料庫修復不列成一般快捷指令。

Server 與 Health Set

列出 Exchange ServerExchange Management Shell

Get-ExchangeServer | Format-Table Name,ServerRole,Edition,AdminDisplayVersion,Site

先確認版本、角色與 AD site。

檢查必要服務Exchange Management Shell

Test-ServiceHealth

服務停止要先找原因,別一律全部啟動。

查看不健康 MonitorExchange Management Shell

Get-ServerHealth -Identity EX01 | Where-Object AlertValue -ne 'Healthy' | Format-Table HealthSetName,Name,AlertValue,LastTransitionTime

Managed Availability 可能已在嘗試復原,先看事件。

查看 Health Set 摘要Exchange Management Shell

Get-HealthReport -Identity EX01

找出 Unhealthy 或 Degraded 的 health set。

查看 Exchange 服務PowerShell

Get-Service MSExchange* | Sort-Object Status,Name | Format-Table Status,Name,StartType

不同角色不是每個服務都應 Running。

查看磁碟空間PowerShell

Get-Volume | Where-Object DriveLetter | Sort-Object SizeRemaining | Format-Table DriveLetter,FileSystemLabel,SizeRemaining,Size

Queue、database、log 與 transport 都會受磁碟空間影響。

Queue 與 Mail Flow

查看 QueueExchange Management Shell

Get-Queue | Sort-Object MessageCount -Descending | Format-Table Identity,Status,MessageCount,NextHopDomain,LastError

先看哪個目的地累積與 LastError。

跨伺服器 Queue 摘要Exchange Management Shell

Get-QueueDigest -GroupBy ServerName -DetailsLevel Normal

預設可能只顯示達門檻的 queue,注意資料延遲。

查看單一 Queue 的郵件Exchange Management Shell

Get-Message -Queue 'EX01\123' | Select-Object Identity,FromAddress,Recipients,Status,LastError

內容含個資,輸出要限制。

只重試指定 QueueExchange Management Shell

Retry-Queue -Identity 'EX01\123' -Confirm:$false

先修 DNS/TLS/connector 原因;不要用全域 retry 製造尖峰。

測試內部 Mail FlowExchange Management Shell

Test-Mailflow -TargetMailboxServer EX02

結果要和 transport log、queue 與實際收信一起看。

查看 Send ConnectorExchange Management Shell

Get-SendConnector | Format-List Name,Enabled,AddressSpaces,SmartHosts,DNSRoutingEnabled,RequireTLS,SourceTransportServers

確認路由與 TLS 要求。

查看 Receive ConnectorExchange Management Shell

Get-ReceiveConnector -Server EX01 | Format-Table Identity,Bindings,RemoteIPRanges,AuthMechanism,PermissionGroups

RemoteIPRanges 過寬可能形成 relay 風險。

Database、DAG 與憑證

查看 Database 狀態Exchange Management Shell

Get-MailboxDatabase -Status | Format-Table Name,Server,Mounted,DatabaseSize,AvailableNewMailboxSpace

AvailableNewMailboxSpace 不是磁碟剩餘空間。

查看 Database CopyExchange Management Shell

Get-MailboxDatabaseCopyStatus * | Format-Table Name,Status,CopyQueueLength,ReplayQueueLength,ContentIndexState

queue 突升先看網路、磁碟、replication service 與事件。

查看 DAG 狀態Exchange Management Shell

Get-DatabaseAvailabilityGroup -Status | Format-List Name,Servers,OperationalServers,PrimaryActiveManager,WitnessServer,WitnessDirectory

Quorum 與 witness 狀態要搭配 Failover Clustering 檢查。

查看 Exchange 憑證Exchange Management Shell

Get-ExchangeCertificate | Format-Table Thumbprint,Services,Subject,CertificateDomains,NotAfter,Status

到期前確認 IIS、SMTP 與 namespace 綁定。

查看 Autodiscover URIExchange Management Shell

Get-ClientAccessService | Format-List Name,AutoDiscoverServiceInternalUri

混合或多站點環境要按版本與設計判讀。

查看 Web Services URLExchange Management Shell

Get-WebServicesVirtualDirectory | Format-List Identity,InternalUrl,ExternalUrl

同時核對 DNS、憑證 SAN、load balancer 與 authentication。

查看 Mailbox 統計Exchange Management Shell

Get-MailboxStatistics -Database 'DB01' | Sort-Object TotalItemSize -Descending | Select-Object -First 20 DisplayName,TotalItemSize,ItemCount,LastLogonTime

輸出含使用者資訊,只供容量規劃。

怎麼確認有做對

  • Test-ServiceHealth 與重要 health set 正常,磁碟有足夠空間。
  • Queue 能持續下降,LastError 原因已消失,不是只手動 Retry。
  • DAG copy queue、replay queue、content index 與實際資料庫掛載正常。

常見錯誤

  • Exchange 出錯就重開所有 MSExchange service。
  • Queue 一多就 Remove-Message。
  • 只看 database size,不看磁碟、transaction log、backup truncation。
  • 續憑證後沒有驗證 IIS/SMTP service assignment 與 mail flow。

常見問題

Queue 卡住先重啟 Transport 有用嗎?

可能暫時變化,但會中斷處理,也會丟失根因線索。先讀 NextHopDomain、LastError、DNS、TLS、connector、back pressure 與磁碟。

CopyQueueLength 不為 0 就是 DAG 壞掉嗎?

短暫非零不一定異常,要看是否持續上升、ReplayQueueLength、網路與磁碟延遲、replication health 和事件。

延伸閱讀

版本與官方文件

參數會隨工具版本與作業系統實作改變。正式環境先用 --help、-h 或系統內建說明確認,再以當版官方文件為準。

常見問題

Queue 卡住先重啟 Transport 有用嗎?

可能暫時變化,但會中斷處理,也會丟失根因線索。先讀 NextHopDomain、LastError、DNS、TLS、connector、back pressure 與磁碟。

CopyQueueLength 不為 0 就是 DAG 壞掉嗎?

短暫非零不一定異常,要看是否持續上升、ReplayQueueLength、網路與磁碟延遲、replication health 和事件。

聯絡廷皓討論 看更多文章