Get-ExchangeDiagnosticInfo One-liners

The CmdLet Get-ExchangeDiagnosticInfo is not very well documented, but very useful if you want to see your server’s health state. Brian Reid already posted more details and how to format the output. You can find his post here.

After I read about it, this CmdLet got one of my favorites and I use it very often in my daily work.

In Exchange 2010 there are only 2 processes you can query:


to get more details you can specify the process


As you can see there are several components available. The following one-liners turned out to be very useful for daily operation if you want to check the health on your server:

MailSubmission on a mailbox server for all databases:

([xml](Get-ExchangeDiagnosticInfo -Process MSExchangeMailSubmission).result).Diagnostics.Components.MailSubmission.MailSubmissionInstances.MailSubmission | ft @{label="DB";expression={$}},concurrentEvents,pendingRpcThreads,messagesInRetry,shutdownInProgress,@{label="RPCInfo";expression={$_.RpcInfoCollection.count}} –a


MailSubmission retry on a mailbox server. This is the view how the mailbox server sees the HTs :

([xml](Get-ExchangeDiagnosticInfo -Process MSExchangeMailSubmission).result).Diagnostics.Components.MailSubmission.ServerPickerManager.Servers.Server | ft –a


MailSubmission resubmit queues on a mailbox server:

([xml](Get-ExchangeDiagnosticInfo -Process MSExchangeMailSubmission).result).Diagnostics.Components.RedundancyManager.ResubmitQueues


HT ResourceManager, which shows the settings and the current state in terms of pressure:

([xml](Get-ExchangeDiagnosticInfo –Process EdgeTransport –Component ResourceManager –Argument verbose)).Diagnostics.Components.ResourceManager.ResourceMonitors.ResourceMonitor | ft –a Type, Resourc*,*Pressure*


Note: For Exchange 2013 you can’t use the same. You can use only the one for HT ResourceManager and the following slightly changed for the component MailboxTransportSubmission instead of MailSubmission:

([xml](Get-ExchangeDiagnosticInfo -Process MSExchangeSubmission).result).Diagnostics.Components.MailboxTransportSubmission.MailboxTransportSubmissionAssistantInstances.MailboxTransportSubmissionAssistant | ft @{label="DB";expression=$}},concurrentEvents,messagesInRetry,shutdownInProgress


But in Exchange 2013 there are much more data, processes and components available, which could be queried, but this will be discussed in another post. Just to give you an idea:



One thought on “Get-ExchangeDiagnosticInfo One-liners

  1. Pingback: Get-ExchangeDiagnosticInfo: Deep dive | The clueless guy

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s