Como utilizar registos de auditoria de caixas de correio no Microsoft 365

Número original da BDC: 4021960

Resumo

No Microsoft 365, pode executar registos de auditoria de caixa de correio para determinar quando uma caixa de correio foi atualizada inesperadamente ou se os itens estão em falta numa caixa de correio. Poderá ter de fazê-lo, por exemplo, se os itens forem movidos ou se tiverem sido eliminados de forma inesperada ou incorreta.

Para o ambiente vNext, tenha em atenção que os registos de auditoria da caixa de correio não estão ativados por predefinição e precisam de ser ativados para um utilizador antes de iniciar uma pesquisa.

Como executar e verificar os registos de auditoria da caixa de correio

O registo de auditoria da caixa de correio permite que os utilizadores obtenham informações sobre as ações executadas por não proprietários e administradores. O registo de auditoria da caixa de correio só está disponível para membros do grupo self-service Caixa de Correio de Relatórios de Auditoria através do Windows Remote PowerShell.

Nota

  • Por predefinição, apenas o registo de auditoria da caixa de correio não proprietário está ativado e o registo de auditoria da caixa de correio do proprietário está desativado. Se tiver de efetuar o registo de auditoria da caixa de correio do proprietário para investigar um problema específico, pode ativar temporariamente o processo durante um período de duas semanas.
  • Algumas organizações podem não permitir que utilize o registo de auditoria da caixa de correio e, por conseguinte, desativaram a funcionalidade.

Para investigar este problema, crie e utilize um script Windows PowerShell com o script de exemplo fornecido no Passo 1 nesta secção e, em seguida, personalize uma pesquisa. Por predefinição, pode investigar ações executadas por não proprietários e administradores. Este script exporta conteúdo num ficheiro de valores simplificados e separados por vírgulas (.csv) para o ajudar a resolver problemas de relatórios sobre itens em falta ou que foram atualizados inesperadamente.

Importante

Os clientes são encorajados a utilizar o script fornecido pelo Microsoft Online Services para ajudar em determinadas investigações. Os scripts do Microsoft Online Services são genéricos e devem ser utilizáveis em todos os ambientes dos clientes. Se ocorrerem erros quando um script é executado, o conteúdo do script deve ser utilizado como exemplo para criar um script personalizado para um ambiente de cliente específico. O Microsoft Online Services fornece o script como uma conveniência para os clientes do Microsoft 365 sem garantia, expressa ou implícita.

Passo 1: executar o script

Para executar o script, siga estes passos:

  1. Inicie o Bloco de Notas e, em seguida, copie o seguinte código para o ficheiro. O código utiliza o search-mailboxAuditLog comando que faz parte do Microsoft Exchange Server.

     param ([PARAMETER(Mandatory=$TRUE,ValueFromPipeline=$FALSE)]
    [string]$Mailbox,
    [PARAMETER(Mandatory=$TRUE,ValueFromPipeline=$FALSE)]
    [string]$StartDate,
    [PARAMETER(Mandatory=$TRUE,ValueFromPipeline=$FALSE)]
    [string]$EndDate,
    [PARAMETER(Mandatory=$FALSE,ValueFromPipeline=$FALSE)]
    [string]$Subject,
    [PARAMETER(Mandatory=$False,ValueFromPipeline=$FALSE)]
    [switch]$IncludeFolderBind,
    [PARAMETER(Mandatory=$False,ValueFromPipeline=$FALSE)]
    [switch]$ReturnObject)
    BEGIN {
      [string[]]$LogParameters = @('Operation', 'LogonUserDisplayName', 'LastAccessed', 'DestFolderPathName', 'FolderPathName', 'ClientInfoString', 'ClientIPAddress', 'ClientMachineName', 'ClientProcessName', 'ClientVersion', 'LogonType', 'MailboxResolvedOwnerName', 'OperationResult')
      }
      END {
        if ($ReturnObject)
        {return $SearchResults}
        elseif ($SearchResults.count -gt 0)
        {
        $Date = get-date -Format yyMMdd_HHmmss
        $OutFileName = "AuditLogResults$Date.csv"
        write-host
        write-host -fore green "Posting results to file: $OutfileName"
        $SearchResults | export-csv $OutFileName -notypeinformation -encoding UTF8
        }
        }
        PROCESS
        {
        write-host -fore green 'Searching Mailbox Audit Logs...'
        $SearchResults = @(search-mailboxAuditLog $Mailbox -StartDate $StartDate -EndDate $EndDate -LogonTypes Owner, Admin, Delegate -ShowDetails -resultsize 50000)
        write-host -fore green '$($SearchREsults.Count) Total entries Found'
        if (-not $IncludeFolderBind)
        {
        write-host -fore green 'Removing FolderBind operations.'
        $SearchResults = @($SearchResults | ? {$_.Operation -notlike 'FolderBind'})
        write-host -fore green 'Filtered to $($SearchREsults.Count) Entries'
        }
        $SearchResults = @($SearchResults | select ($LogParameters + @{Name='Subject';e={if (($_.SourceItems.Count -eq 0) -or ($_.SourceItems.Count -eq $null)){$_.ItemSubject} else {($_.SourceItems[0].SourceItemSubject).TrimStart(' ')}}},
        @{Name='CrossMailboxOp';e={if (@('SendAs','Create','Update') -contains $_.Operation) {'N/A'} else {$_.CrossMailboxOperation}}}))
        $LogParameters = @('Subject') + $LogParameters + @('CrossMailboxOp')
        If ($Subject -ne '' -and $Subject -ne $null)
        {
        write-host -fore green 'Searching for Subject: $Subject'
        $SearchResults = @($SearchResults | ? {$_.Subject -match $Subject -or $_.Subject -eq $Subject})
        write-host -fore green 'Filtered to $($SearchREsults.Count) Entries'
        }
        $SearchResults = @($SearchResults | select $LogParameters)
        }
    
  2. No menu Ficheiro , clique em Guardar Como.

  3. Na caixa Guardar com o tipo , clique em Todos os Ficheiros.

  4. Na caixa Nome do ficheiro , escreva Run-MailboxAuditLogSearcher.ps1e, em seguida, clique em Guardar.

  5. Inicie Windows PowerShell e, em seguida, ligue-se ao Windows Remote PowerShell.

  6. Localize o diretório no qual guardou o script e, em seguida, execute o script.

    .\Run-MailboxAuditLogSearcher.ps1
    

    Nota

    • Se executar o script sem parâmetros, ser-lhe-ão pedidos os seguintes parâmetros predefinidos:
      • Caixa de correio
      • Data De Início
      • DataDadosEncom efeitos Finais
    • Para procurar entradas a partir do dia atual, adicione um dia ao valor de data de fim na janela de pedido. Por exemplo, se a data atual for 14/03/2017 e quiser incluir o dia atual na sua pesquisa, introduza 15/03/2017 como a data de fim.

No Microsoft 365, as entradas de registo de auditoria de caixa de correio são mantidas na caixa de correio durante 90 dias. É-lhe pedido que indique uma data de início e uma data de fim para a pesquisa. Pode utilizar vários parâmetros opcionais para personalizar a pesquisa. Para obter uma descrição destes parâmetros, veja a secção "Mais Informações".

Se forem encontrados itens após a execução do script, receberá uma mensagem semelhante à seguinte:

Captura de ecrã da mensagem depois de executar o script.

Esta mensagem de exemplo indica que o processo de pesquisa encontrou 11 entradas. Por predefinição, as entradas folderBind são filtradas e os seguintes tipos de operação permanecem:

  • Copiar
  • Criar
  • HardDelete
  • MessageBind
  • Mover
  • MoveToDeletedItems
  • SendAs
  • SendOnBehalf
  • SoftDelete
  • Update

Nota

A operação FolderBind indica as horas em que a caixa de correio é acedida por um não proprietário. Esta é a operação mais comum. Não tem de ver as operações folderBind quando investiga um item que é atualizado ou eliminado.

Reveja o resultado do ficheiro .csv. As colunas mais úteis são exportadas e algumas destas colunas são unidas para facilitar a revisão da saída. Para obter mais informações sobre as colunas exportadas, consulte a secção "Mais Informações".

Registo de auditoria da caixa de correio do proprietário

Por predefinição. o registo de auditoria do proprietário não está ativado. Só deve ser utilizada se tiver de investigar uma ação do proprietário da caixa de correio. Deve ser utilizado durante um período de tempo limitado, aproximadamente duas semanas. Isto deve-se ao facto de as entradas do registo de auditoria estarem armazenadas na caixa de correio, o que pode fazer com que o contentor de lixo da caixa de correio exceda o limite de tamanho.

Para ativar o registo de auditoria do proprietário, siga estes passos:

  1. Determine se o registo de auditoria da caixa de correio está ativado. Para tal, execute o seguinte cmdlet:

    Get-Mailbox <useridentity> | ft AuditEnabled
    
  2. Se o resultado for Verdadeiro, ignore este passo. Se o resultado for Falso, execute o seguinte cmdlet no Windows PowerShell:

    Set-Mailbox <useridentity> -AuditEnabled $true
    
  3. Ative o registo de auditoria do proprietário. Para tal, execute o seguinte cmdlet:

    Set-Mailbox <useridentity> -AuditOwner "Create,HardDelete,Move,MoveToDeletedItems,SoftDelete,Update"
    
  4. Execute novamente oRun-MailboxAuditLogSearcher.ps1e reveja os dados.

  5. Após a conclusão da resolução de problemas, desative o registo de auditoria do proprietário. Para tal, execute o seguinte cmdlet:

    Set-Mailbox <useridentity> -AuditOwner $none
    

Mais Informações

Parâmetros de script opcionais

A lista seguinte descreve os parâmetros opcionais que geram resultados diferentes quando são utilizados juntamente com o Run-MailboxAuditLogSearcher script:

  • IncludeFolderBind: quando utiliza este comutador, a operação FolderBind não é filtrada a partir da saída. Pode utilizar as informações do FolderBind para investigar o problema de acesso à caixa de correio.

    Por exemplo, o cmdlet seguinte procura na caixa de correio "Testar Utilizador 1" e inclui todas as operações:

    .\Run-MailboxAuditLogSearcher.ps1 -IncludeFolderBind -Mailbox "<Test User 1gt;" -StartDate "<04/10/17gt;" -EndDate "<04/27/17gt;&quot
    
  • Assunto: quando utiliza este comutador, pode especificar o assunto de um item para limitar a pesquisa de operações executadas nesse item.

    Por exemplo, o cmdlet seguinte filtra todos os resultados, exceto os itens que têm o assunto definido como "Boas Notícias":

    .\Run-MailboxAuditLogSearcher.ps1 -Subject "<Good News>" -Mailbox "<test1@contoso.comgt;" -StartDate "<04/10/17gt;" -EndDate "<04/27/17gt;&quot
    
  • ReturnObject: quando utiliza este comutador, o resultado é apresentado no ecrã, mas não é exportado para um ficheiro .csv.

    Por exemplo, o cmdlet seguinte apresenta a saída no ecrã:

    .\Run-MailboxAuditLogSearcher.ps1 -ReturnObject -Mailbox "<Test User 1gt;" -StartDate "<04/10/17gt;" -EndDate "<04/27/17gt;&quot
    

Colunas exportadas do ficheiro .csv

As colunas mais úteis do ficheiro .csv são exportadas. Algumas destas colunas são unidas para facilitar a revisão da saída. A tabela seguinte lista as colunas que são exportadas.

Coluna Descrição
Assunto Assunto do item
Operação Ações executadas no item
LogonUserDisplayName Nome a apresentar do utilizador com sessão iniciada
Último Acesso Hora em que a operação foi executada
DestFolderPathName Pasta de destino para a operação de movimentação
FolderPathName Caminho da pasta
ClientInfoString Detalhes sobre o cliente que executa a operação
Último Acesso Endereço IP para o computador cliente
ClientMachineName Nome do computador cliente
ClientProcessName Nome do processo da aplicação cliente
ClientVersion Versão da aplicação cliente
LogonType O tipo de início de sessão do utilizador que executa a operação
Tipos de Início de Sessão deNota inclui o seguinte:
- Delegado para não proprietário
- Administrador - Proprietário
da caixa de correio (não registado por predefinição)
MailboxResolvedOwnerName Nome resolvido do utilizador
da caixa de correioNota O nome resolvido está no seguinte formato:
Domain\SamAccountName
OperationResult Estado da operação Os resultados da Operação
deNota incluem o seguinte:
- Com falhas
- ParcialmenteSucceeded
- Com êxito
CrossMailboxOperation Informações sobre se a operação registada é uma operação entre caixas de correio (por exemplo, copiar ou mover mensagens entre caixas de correio)

Mais informações sobre o registo de auditoria de caixa de correio

  • O cmdlet Search-MailboxAuditLog é utilizado no script de exemplo no Passo 1 para procurar uma única caixa de correio de forma síncrona. Também pode fazê-lo ao executar o cmdlet no Windows Remote PowerShell.

    Para obter mais informações sobre o cmdlet, aceda ao seguinte artigo da TechNet:

    Search-MailboxAuditLog

  • Pode procurar uma ou mais caixas de correio de forma assíncrona. Para tal, execute o seguinte cmdlet no Windows Remote PowerShell:

    New-MailboxAuditLogSearch
    

    Para obter mais informações sobre este cmdlet, aceda ao seguinte artigo da TechNet:

    New-MailboxAuditLogSearch

    Para obter mais informações sobre as entradas de registo de auditoria de caixa de correio predefinidas, aceda à secção "Entradas de registo de auditoria da caixa de correio" do seguinte artigo da TechNet:

    Registo de Auditoria de Caixa de Correio no Exchange 2016