[This topic is in progress.]

Applies to: Exchange Server 2010 SP3, Exchange Server 2010 SP2

Topic Last Modified: 2011-05-04

Use the Get-MessageTrackingReport cmdlet to return the data for a specific message tracking report. This cmdlet requires you to specify the ID for the message tracking report you want to view. Therefore, first you need to use the Search-MessageTrackingReport cmdlet to find the message tracking report ID for a specific message. You then pass the message tracking report ID from the output of the Search-MessageTrackingReport cmdlet to the Get-MessageTrackingReport cmdlet. For more information, see Search-MessageTrackingReport. To learn more about message tracking, see Understanding Message Tracking.


Get-MessageTrackingReport -Identity <MessageTrackingReportId> [-BypassDelegateChecking <SwitchParameter>] [-DetailLevel <Basic | Verbose>] [-DomainController <Fqdn>] [-DoNotResolve <SwitchParameter>] [-RecipientPathFilter <SmtpAddress>] [-Recipients <String[]>] [-ReportTemplate <Summary | RecipientPath>] [-ResultSize <Unlimited>] [-Status <Unsuccessful | Pending | Delivered | Transferred | Read>] [-TraceLevel <Low | Medium | High>]

Detailed Description

You need to be assigned permissions before you can run this cmdlet. Although all parameters for this cmdlet are listed in this topic, you may not have access to some parameters if they're not included in the permissions assigned to you. To see what permissions you need, see the "Message tracking" entry in the Transport Permissions topic.


Parameter Required Type Description




The Identity parameter specifies the ID of the message tracking report ID to get.

You should run the Search-MessageTrackingReport cmdlet to find the message tracking report ID for the specific message you're tracking, and then pass the value of the MessageTrackingReportID field to this parameter.




The BypassDelegateChecking parameter allows Help desk staff and administrators to get message tracking reports for any user.

By default, each user can only see the message tracking reports for messages sent or received by the user. When you use this switch, Exchange allows you to view the message tracking reports for message exchanges among other users.




The DetailLevel parameter specifies the amount of detail to be displayed for the message tracking report. You can use one of the following values:

  • Basic

  • Verbose

If you specify Basic, simple delivery report information is displayed, which is more appropriate for information workers. If you specify Verbose, full report information is displayed, including server names and physical topology information.




The DomainController parameter specifies the fully qualified domain name (FQDN) of the domain controller that retrieves data from Active Directory.




The DoNotResolve parameter prevents the resolution of e-mail addresses to display names. This improves performance, but the end result may not be as easy to interpret because it's missing the display names.




The RecipientPathFilter parameter specifies the recipient for which the command returns the detailed tracking report.

Use this parameter when you're using the RecipientPath report template.




The Recipients parameter specifies the recipients for whom you want to get the message tracking data.

You can use this parameter to specify the recipients in the report details if you're using the Summary report template.




The ReportTemplate parameter specifies a predefined format for the output. You can either return a summary for all recipients or a detailed tracking report for one recipient. You can specify one of the following values:

  • RecipientPath

  • Summary




The ResultSize parameter specifies the maximum number of results to return. If you want to return all messages that match the search criteria, use unlimited for the value of this parameter. The default value is 1000.




The Status parameter specifies the delivery status codes you're interested in. You can specify one of the following values:

  • Delivered

  • Read

  • Pending

  • Transferred

  • Unsuccessful




The TraceLevel parameter specifies whether additional trace details are included in the output of the message tracking report. This parameter is intended to be used when troubleshooting message tracking issues.

The acceptable values for the TraceLevel parameter are:

  • Low   Minimal additional data is returned, including servers that were accessed, timing, message tracking search result counts, and any error information.

  • Medium   In addition to all the data returned for the Low setting, the actual message tracking search results are also returned.

  • High   Full diagnostic data is returned.

Input Types

To see the input types that this cmdlet accepts, see Cmdlet Input and Output Types. If the Input Type field for a cmdlet is blank, the cmdlet doesn’t accept input data.

Return Types

To see the return types, which are also known as output types, that this cmdlet accepts, see Cmdlet Input and Output Types. If the Output Type field is blank, the cmdlet doesn’t return data.



This example gets the message tracking report for messages sent from one user to another. This example returns the summary of the message tracking report for a message that David Jones sent to Wendy Richardson.

Copy Code
$Temp = Search-MessageTrackingReport -Identity "David Jones" -Recipients "wendy@contoso.com"
Get-MessageTrackingReport -Identity $Temp.MessageTrackingReportID -ReportTemplate Summary 


This example gets the message tracking report for the following scenario: The user Cigdem Akin was expecting an e-mail message from joe@contoso.com which never arrived. She contacted the Help desk, which needs to determine what happened. They need to generate the message tracking report on behalf of Cigdem, and they don't need to see the display names.

This example searches the message tracking data for the specific message tracking reports, and then returns detailed troubleshooting information for the specific recipient path.

Copy Code
Search-MessageTrackingReport -Identity "Cigdem Akin" -Sender "joe@contoso.com" -ByPassDelegateChecking -DoNotResolve | ForEach-Object { Get-MessageTrackingReport -Identity $_.MessageTrackingReportID -DetailLevel Verbose -BypassDelegateChecking -DoNotResolve -RecipientPathFilter "cigdem@fabrikam.com" -ReportTemplate RecipientPath }