Get-MessageTrackingReport
This cmdlet is functional only in on-premises Exchange.
Use the Get-MessageTrackingReport cmdlet to return data for a specific message tracking report. This cmdlet is used by the delivery reports feature.
In Exchange Online, delivery reports has been replaced by message trace (the Get-MessageTrace and Get-MessageTraceDetail cmdlets).
For information about the parameter sets in the Syntax section below, see Exchange cmdlet syntax.
Syntax
Get-MessageTrackingReport
[-Identity] <MessageTrackingReportId>
[-BypassDelegateChecking]
[-DetailLevel <MessageTrackingDetailLevel>]
[-DomainController <Fqdn>]
[-DoNotResolve]
[-RecipientPathFilter <SmtpAddress>]
[-Recipients <String[]>]
[-ReportTemplate <ReportTemplate>]
[-ResultSize <Unlimited>]
[-Status <DeliveryStatus>]
[-TraceLevel <TraceLevel>]
[<CommonParameters>]
Description
This cmdlet requires the ID for the message tracking report that 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, and then pass the results to this cmdlet. For more information, see Search-MessageTrackingReport.
You need to be assigned permissions before you can run this cmdlet. Although this topic lists all parameters for the cmdlet, you may not have access to some parameters if they're not included in the permissions assigned to you. To find the permissions required to run any cmdlet or parameter in your organization, see Find the permissions required to run any Exchange cmdlet.
Examples
Example 1
$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 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.
Example 2
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 }
This example gets the message tracking report for the following scenario: The user Cigdem Akin was expecting an email message from joe@contoso.com that never arrived. She contacted the Help desk, which needs to generate the message tracking report on behalf of Cigdem and doesn'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.
Parameters
-BypassDelegateChecking
The BypassDelegateChecking switch allows Help desk staff and administrators to retrieve message tracking reports for any user. You don't need to specify a value with this switch.
By default, each user can only see the message tracking reports for messages that they send or receive from their own mailbox. When you use this switch, you can view the message tracking reports for message exchanges among other users.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online |
-DetailLevel
The DetailLevel parameter specifies the amount of detail to return in the results. Valid values are:
- Basic: Simple delivery report information is returned, which is more appropriate for users.
- Verbose: Full report information is returned, including server names and physical topology information.
Type: | MessageTrackingDetailLevel |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019 |
-DomainController
The DomainController parameter specifies the domain controller that's used by this cmdlet to read data from or write data to Active Directory. You identify the domain controller by its fully qualified domain name (FQDN). For example, dc01.contoso.com.
Type: | Fqdn |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019 |
-DoNotResolve
The DoNotResolve switch specifies whether to prevent the resolution of email addresses to display names. You don't need to specify a value with this switch.
Using this switch improves performance, but the lack of display names might make the results more difficult to interpret.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online |
-Identity
The Identity parameter specifies the message tracking report ID that you want to view.
You need to run the Search-MessageTrackingReport cmdlet to find the message tracking report ID for the specific message that you're tracking, and then pass the value of the MessageTrackingReportID field to this parameter.
Type: | MessageTrackingReportId |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online |
-RecipientPathFilter
The RecipientPathFilter parameter specifies the email address of the recipient when you use the ReportTemplate parameter with the value RecipientPath.
Type: | SmtpAddress |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online |
-Recipients
The Recipients parameter specifies the email addresses of the recipients when you use the ReportTemplate parameter with the value Summary. You can specify multiple email addresses separated by commas.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online |
-ReportTemplate
The ReportTemplate parameter specifies a predefined format for the output. Valid values are:
- RecipientPath: Returns a detailed tracking report for one recipient of the message. You specify the recipient by using the RecipientPathFilter parameter.
- Summary: Returns a summary for all recipients of the message. You specify the recipients by using the Recipients parameter.
Type: | ReportTemplate |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online |
-ResultSize
The ResultSize parameter specifies the maximum number of results to return. If you want to return all requests that match the query, use unlimited for the value of this parameter. The default value is 1000.
Type: | Unlimited |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online |
-Status
The Status parameter filters the results by the specified delivery status codes. Valid values are:
- Delivered
- Read
- Pending
- Transferred
- Unsuccessful
Type: | _DeliveryStatus |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online |
-TraceLevel
The TraceLevel parameter specifies the details to include in the results. Valid values 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 the data returned for the Low setting, the actual message tracking search results are also returned.
- High: Full diagnostic data is returned.
You only need to use this parameter for troubleshooting message tracking issues.
Type: | TraceLevel |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019 |
Inputs
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.
Outputs
Output 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.