Get-ExchangeDiagnosticInfo
Get-ExchangeDiagnosticInfo is a command that is used to report information & the status of the Exchange Server based on the individual processes.
We will get the information in the form of XML data. As of now this command is reports info of the Hub Server role & the Mailbox Server role, also for sending & receiving emails (So it’s basically an Edge Transport Cmdlet).
So let’s see few example commands we can use to troubleshoot. Before we see some example commands let’s look at the list of processes we can see using this command Get-ExchangeDiagnosticInfo
Diagnostics
ProcessLocator
<count>2count
<Process>
<guid>…guid>
<id>2356id>
<name>MSExchangeMailSubmissionname
Process>
<Process>
<guid>…guid>
<id>3408id>
<name>EdgeTransportname
Process
ProcessLocator
Diagnostics
Out all the above processes, the two most useful ones are the Edge TransportName & the Mail SubmissionName. Basically Mail submission notifies the Hub transport role in the same AD Site about the email that is waiting to be processed further for delivery. Then the Edgetransport.exe process collects the mail & delivers it successfully.
When we run the Get-ExchangeDiagonisticInfo with the following switch it will gather the information about the above two processes:
Get-ExchangeDiagnosticInfo –Process EdgeTransport
Get-ExchangeDiagnosticInfo –Process MSExchangeMailSubmission
When we run the above command we will the report in XML data. Few useful XML data for troubleshooting are:
EdgeTransport:
TransportConfiguration
ResourceManager
TransportDumpster
RmsClientManager
ShadowRedundancy
SmtpOut
StoreDriver
MSExchangeMailSubmission:
MailSubmission
RedundancyManager.
We can use the following command to query the diagnostics of a specific process. Also this command shows us the information of which hub transport servers and smart hosts are functioning & are reachable. It also provides us the configuration data about the number of time Exchange checking the process to see if they are back online.
Get-ExchangeDiagnosticInfo -Process EdgeTransport -Component SmtpOut –Argument help
We can use verbose as another argument & run the following command:
Get-ExchangeDiagnosticInfo -Process EdgeTransport -Component SmtpOut –Argument verbose
Also an important point to note, the output from these commands returns a large amount of data. For Example if we take the ResourceManager Component displays the historical data of backpressure events. This fills the Exchange Management Shell with a large amount of the backpressure events.
Here’s a modified version of the above command (Get-ExchangeDiagnosticInfo -Process EdgeTransport -Component SmtpOut –Argument verbose), running the below command formats & provides us the following information:
=>The state of each backpressure monitor/ if it’s enabled.
=>The results of backpressure on the Server (currentpressure) along with the values: (the mediumPressureLimit),(the highPressureLimit),(the lowPressureLimit).
[xml]$diag = Get-ExchangeDiagnosticInfo –Server xxx –Process EdgeTransport –Component ResourceManager –Argument verbose
$diag.Diagnostics.Components.ResourceManager.CurrentComponentStates
$diag.Diagnostics.Components.ResourceManager.ResourceMonitors.ResourceMonitor | FT –a Type, Resourc*,*Pressure*
This command will help us in troubleshooting issues like backpressure, resources related problems, etc.
Ratish Nair
Microsoft MVP | Exchange Server
Team @MSExchangeGuru.com
May 29th, 2015 at 3:00 pm
Can I save it as .ps1
[xml]$diag = Get-ExchangeDiagnosticInfo –Server xxx –Process EdgeTransport –Component ResourceManager –Argument verbose
$diag.Diagnostics.Components.ResourceManager.CurrentComponentStates
$diag.Diagnostics.Components.ResourceManager.ResourceMonitors.ResourceMonitor | FT –a Type, Resourc*,*Pressure*
Is it applicable to all Exchange version? 2007 onwards?
May 30th, 2015 at 4:12 pm
Which version of Exchange is this command for?
June 1st, 2015 at 11:01 am
Exchange 2013