Exchange Server: eseguire ricerche nei log di rilevamento dei messaggi

La verifica messaggi consente di registrare le attività dei messaggi quando la posta attraversa la pipeline di trasporto oppure i server Cassette postali e Trasporto Edge. È possibile utilizzare il cmdlet Get-MessageTrackingLog in Exchange Management Shell per cercare le voci nel registro di verifica messaggi tramite specifici criteri di ricerca. Ad esempio:

  • Informazioni su cosa accade a un messaggio che viene inviato da un utente a un destinatario specifico.

  • Verificare se una regola del flusso di posta (nota anche come regola di trasporto) ha eseguito un'operazione su un messaggio.

  • Scoprire se un messaggio inviato da un mittente Internet ha raggiunto l'organizzazione di Exchange.

  • Trovare tutti i messaggi inviati da un utente specifico durante un intervallo di tempo determinato.

Che cosa è necessario sapere prima di iniziare

  • Tempo stimato per il completamento: 10 minuti

  • Per eseguire queste procedure, è necessario disporre delle autorizzazioni appropriate. Per sapere quali autorizzazioni sono necessarie, vedere "Tracciabilità messaggi" nell'argomento Autorizzazioni per il flusso di posta.

  • La ricerca nei registri di verifica messaggi richiede che il servizio di ricerca nei registri di trasporto di Microsoft Exchange sia in esecuzione. Se si disabilita o si interrompe questo servizio, non è possibile effettuare ricerche nei registri di verifica messaggi o eseguire rapporti di recapito. L'arresto di questo servizio non influisce tuttavia sulle altre funzionalità di Exchange.

  • I nomi dei campi visualizzati nei risultati del cmdlet Get-MessageTrackingLog sono simili ai nomi dei campi effettivi utilizzati nei file del log verifica messaggi. Le differenze principali sono:

    • I trattini vengono rimossi dai nomi dei campi. Ad esempio, internal-message-id viene visualizzato come InternalMessageId.

    • Il campo data-ora viene visualizzato come Timestamp.

    • Il campo destinatario-indirizzo viene visualizzato come Recipients.

    • Il campo sender-address viene visualizzato come Sender.

  • Nel campo date-time del registro di verifica messaggi le informazioni vengono archiviate nel formato ora UTC (Coordinated Universal Time). Tuttavia, è necessario immettere i criteri di ricerca data-ora per i parametri Start o End nel formato di data e ora a livello di area del computer in uso per eseguire la ricerca.

  • Non è possibile copiare i file di registro di verifica messaggi da un altro server di Exchange ed eseguire quindi una ricerca utilizzando il cdmlet Get-MessageTrackingLog. Inoltre, se si salva manualmente un file di registro di verifica messaggi esistente, la modifica dell'indicatore di data e ora nel file interrompe la logica della query utilizzata da Exchange per effettuare le ricerche nei registri di verifica messaggi.

  • In Exchange 2016, il cmdlet Get-MessageTrackingLog è in grado di eseguire ricerche nei log di rilevamento dei messaggi nei server Cassette postali di Exchange 2013 e nei server Trasporto hub di Exchange 2010 nello stesso sito di Active Directory. In Exchange 2019 il cmdlet Get-MessageTrackingLog è in grado di eseguire ricerche nei log di rilevamento dei messaggi nei server Cassette postali di Exchange 2016 ed Exchange 2013 nello stesso sito di Active Directory.

  • Per informazioni sui tasti di scelta rapida che è possibile utilizzare con le procedure in questo argomento, vedere Tasti di scelta rapida nell'interfaccia di amministrazione di Exchange.

Consiglio

Problemi? È possibile richiedere supporto nei forum di Exchange. I forum sono disponibili sui seguenti siti: Exchange Server, Exchange Online o Exchange Online Protection.

Utilizzo di Exchange Management Shell per eseguire ricerche nei registri di verifica messaggi

Per cercare specifici eventi nelle voci dei registri di verifica messaggi, utilizzare la seguente sintassi.

Get-MessageTrackingLog [-Server <ServerIdentity>] [-ResultSize <Integer> | Unlimited] [-Start <DateTime>] [-End <DateTime>] [-EventId <EventId>] [-InternalMessageId <InternalMessageId>] [-MessageId <MessageId>] [-MessageSubject <Subject>] [-Recipients <RecipientAddress1,RecipientAddress2...>] [-Reference <Reference>] [-Sender <SenderAddress>]

Per visualizzare le 1000 voci più recenti dei registri di verifica messaggi sul server, utilizzare il seguente comando:

Get-MessageTrackingLog

Questo esempio cerca nei log di rilevamento messaggi nel server locale tutte le voci dal 28/03/2015 dalle 8:00 alle 28/3/2015 17:00 per tutti gli eventi FAIL in cui il mittente del messaggio era pat@contoso.com.

Get-MessageTrackingLog -ResultSize Unlimited -Start "3/28/2015 8:00AM" -End "3/28/2015 5:00PM" -EventId "Fail" -Sender "pat@contoso.com"

Utilizzare la seguente sintassi.

Get-MessageTrackingLog <SearchFilters> | <Format-Table | Format-List> [<FieldNames>] [<OutputFileOptions>]

In questo esempio viene eseguita la ricerca nei registri di verifica messaggi utilizzando i seguenti criteri di ricerca:

  • Restituire i risultati per i primi 1000 eventi di invio.

  • Visualizzare i risultati in formato elenco.

  • Visualizzare solo i nomi di campo che iniziano con Send o Recipient.

  • Scrivere l'output in un nuovo file denominato D:\Send Search.txt

Get-MessageTrackingLog -EventId Send | Format-List Send*,Recipient* | Set-Content -Path "D:\Send Search.txt"

Utilizzo di Exchange Management Shell per cercare nei registri di verifica messaggi le voci dei messaggi su più server

In genere, il valore del campo di intestazione MessageID: resta costante mentre il messaggio viaggia nell'organizzazione di Exchange. La proprietà è denominata InternetMessageId nelle utilità di visualizzazione delle code e MessageId nelle utilità di visualizzazione dei registri di verifica messaggi. Dopo aver determinato il valore di MessageID: di uno specifico messaggio, è possibile cercare le informazioni sul messaggio nei registri di verifica messaggi su ogni server Cassette postali dell'organizzazione di Exchange.

Per cercare uno specifico messaggio in tutte le voci dei registri di verifica messaggi in tutti i server Cassette postali e Trasporto Hub di Exchange 2010, utilizzare la seguente sintassi.

$Servers = Get-ExchangeServer;  $Servers | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -MessageId <MessageID>  | Select-Object <CommaSeparatedFieldNames>  | Sort-Object -Property <FieldName>

In questo esempio la ricerca nei registri di verifica messaggi viene eseguita su tutti i server Cassette postali e Trasporto Hub di Exchange 2010 utilizzando i seguenti criteri di ricerca:

  • Trovare tutte le voci correlate a un messaggio con messageID: valore .<ba18339e-8151-4ff3-aeea-87ccf5fc9796@mailbox01.contoso.com> Si noti che è possibile omettere i caratteri parentesi angolari (<>). In caso contrario, è necessario racchiudere l'intero valore di MessageID: tra virgolette.

  • Per ogni voce, visualizzare i campi date-time, server-hostname, client-hostname, source, event-id e recipient-address.

  • Ordinare i risultati per campo date-time.

$Servers = Get-ExchangeServer; $Servers | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -MessageId ba18339e-8151-4ff3-aeea-87ccf5fc9796@mailbox01.contoso.com | Select-Object Timestamp,ServerHostname,ClientHostname,Source,EventId,Recipients | Sort-Object -Property Timestamp

Utilizzo di EAC per eseguire ricerche nei registri di verifica messaggi

È possibile utilizzare la funzionalità Rapporti di recapito per gli amministratori nell'Interfaccia di amministrazione di Exchange (EAC) per cercare nei registri di verifica messaggi le informazioni sui messaggi inviati o ricevuti da una specifica cassetta postale dell'organizzazione. Per ulteriori informazioni, vedere Tenere traccia dei messaggi con i rapporti di recapito.