Utilisation des journaux d’audit de boîte aux lettres dans Office 365

Notes

Office 365 ProPlus est renommé Applications Microsoft 365 pour les entreprises. Pour plus d’informations sur ce changement, lisez ce billet de blog.

Numéro de la base de connaissances initiale :   4021960

Résumé

Dans Microsoft Office 365, vous pouvez exécuter des journaux d’audit de boîte aux lettres pour déterminer quand une boîte aux lettres a été mise à jour de manière inattendue ou si des éléments sont manquants dans une boîte aux lettres. Vous devrez peut-être procéder ainsi, par exemple, si les éléments sont déplacés ou s’ils sont supprimés de manière inattendue ou incorrecte.

Pour l’environnement vNext, Notez que les journaux d’audit de boîte aux lettres ne sont pas activés par défaut et doivent être activés pour un utilisateur avant de lancer une recherche.

Comment exécuter et vérifier les journaux d’audit de boîte aux lettres

La journalisation d’audit de boîte aux lettres permet aux utilisateurs d’obtenir des informations sur les actions effectuées par des non-propriétaires et des administrateurs. La journalisation d’audit de boîte aux lettres est disponible pour les membres du groupe de boîtes aux lettres de rapports d’audit uniquement à l’aide de Windows PowerShell à distance.

Notes

  • Par défaut, seul le journal d’audit de boîte aux lettres non propriétaire est activé et la journalisation d’audit de boîte aux lettres de propriétaire est désactivée. Si vous devez effectuer un enregistrement d’audit de boîte aux lettres de propriétaire pour examiner un problème spécifique, vous pouvez activer temporairement le processus pendant une période de deux semaines.
  • Certaines organisations ne vous permettent pas d’utiliser l’enregistrement d’audit de boîte aux lettres et, par conséquent, ont désactivé la fonctionnalité.

Pour examiner ce problème, créez et utilisez un script Windows PowerShell à l’aide de l’exemple de script fourni à l’étape 1 de cette section, puis personnalisez une recherche. Par défaut, vous pouvez examiner les actions effectuées par des non-propriétaires et des administrateurs. Ce script exporte le contenu d’un fichier de valeurs séparées par des virgules (. csv) pour vous aider à résoudre les problèmes liés aux éléments manquants ou qui ont été mis à jour de manière inattendue.

Important

Les clients sont encouragés à utiliser le script fourni par Microsoft Online Services pour vous aider dans certaines enquêtes. Les scripts Microsoft Online Services sont génériques et ils doivent être utilisables dans tous les environnements de client. Si des erreurs se produisent lors de l’exécution d’un script, le contenu du script doit être utilisé à titre d’exemple pour créer un script personnalisé pour un environnement client particulier. Microsoft Online Services fournit un script pratique aux clients Office 365 sans garantie, expresse ou implicite.

Étape 1 : exécuter le script

Pour exécuter le script, procédez comme suit :

  1. Démarrez le bloc-notes, puis copiez le code suivant dans le fichier. Le code utilise la search-mailboxAuditLog commande qui fait partie de 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. Dans le menu Fichier, cliquez sur Enregistrer sous.

  3. Dans la zone type de fichier, cliquez sur tous les fichiers.

  4. Dans la zone nom de fichier , tapez Run-MailboxAuditLogSearcher.ps1, puis cliquez sur Enregistrer.

  5. Démarrez Windows PowerShell, puis connectez-vous à Windows Remote PowerShell.

  6. Recherchez le répertoire dans lequel vous avez enregistré le script, puis exécutez le script.

    .\Run-MailboxAuditLogSearcher.ps1
    

    Notes

    • Si vous exécutez le script sans paramètres, vous serez invité à indiquer les paramètres par défaut suivants :
      • Boîte aux lettres
      • StartDate
      • EndDate
    • Pour rechercher des entrées à partir du jour actuel, ajoutez un jour à la valeur de date de fin dans la fenêtre d’invite. Par exemple, si la date actuelle est 3/14/2017et que vous voulez inclure le jour actuel dans votre recherche, entrez 4/15/2017   comme date de fin.

Dans Office 365, les entrées de journalisation d’audit de boîte aux lettres sont conservées dans la boîte aux lettres pendant 90 jours. Vous êtes invité à indiquer une date de début et une date de fin pour la recherche. Vous pouvez utiliser plusieurs paramètres facultatifs pour personnaliser la recherche. Pour obtenir une description de ces paramètres, reportez-vous à la section « plus d’informations ».

Si des éléments sont trouvés après l’exécution du script, vous recevez un message semblable à celui-ci :

Capture d’écran du message après l’exécution d’un script

Cet exemple de message indique que le processus de recherche a trouvé 11 entrées. Par défaut, les entrées FolderBind sont filtrées et les types d’opération suivants sont conservés :

  • Copy
  • Create
  • HardDelete
  • MessageBind
  • Move
  • MoveToDeletedItems
  • SendAs
  • SendOnBehalf
  • SoftDelete
  • Update

Notes

L’opération FolderBind indique les heures auxquelles la boîte aux lettres est accessible par un non-propriétaire. Il s’agit de l’opération la plus courante. Vous n’avez pas besoin d’afficher les opérations FolderBind lorsque vous examinez un élément qui est mis à jour ou supprimé.

Examinez la sortie du fichier. csv. Les colonnes les plus utiles sont exportées, et certaines de ces colonnes sont fusionnées pour faciliter la lecture de la sortie. Pour plus d’informations sur les colonnes exportées, reportez-vous à la section « plus d’informations ».

Journalisation d’audit de boîte aux lettres propriétaire

Par défaut. la journalisation d’audit du propriétaire n’est pas activée. Il doit être utilisé uniquement si vous devez examiner une action effectuée par le propriétaire de la boîte aux lettres. Elle doit être utilisée pendant une période limitée, environ deux semaines. Cela est dû au fait que les entrées du journal d’audit sont stockées dans la boîte aux lettres, ce qui peut entraîner un dépassement de la limite de taille de la boîte aux lettres.

Pour activer la journalisation d’audit du propriétaire, procédez comme suit :

  1. Déterminez si la journalisation d’audit des boîtes aux lettres est activée. Pour ce faire, exécutez l’applet de commande suivante :

    Get-Mailbox <useridentity> | ft AuditEnabled
    
  2. Si le résultat est true, ignorez cette étape. Si le résultat est false, exécutez l’applet de commande suivante dans Windows PowerShell :

    Set-Mailbox <useridentity> -AuditEnabled $true
    
  3. Activez la journalisation d’audit du propriétaire. Pour ce faire, exécutez l’applet de commande suivante :

    Set-Mailbox <useridentity> -AuditOwner "Create,HardDelete,Move,MoveToDeletedItems,SoftDelete,Update"
    
  4. Réexécutez l' Run-MailboxAuditLogSearcher.ps1et passez en revue les données.

  5. Une fois la résolution des problèmes terminée, désactivez la journalisation d’audit du propriétaire.Pour ce faire, exécutez l’applet de commande suivante :

    Set-Mailbox <useridentity> -AuditOwner $none
    

Informations supplémentaires

Paramètres de script facultatifs

La liste suivante décrit les paramètres facultatifs qui génèrent des résultats différents lorsqu’ils sont utilisés avec le Run-MailboxAuditLogSearcher script :

  • IncludeFolderBind: lorsque vous utilisez ce commutateur, l’opération FolderBind n’est pas filtrée à partir de la sortie. Vous pouvez utiliser des informations FolderBind pour examiner le problème d’accès aux boîtes aux lettres.

    Par exemple, l’applet de commande suivante recherche la boîte aux lettres « test User 1 » et inclut toutes les opérations :

    .\Run-MailboxAuditLogSearcher.ps1 -IncludeFolderBind -Mailbox "<Test User 1gt;" -StartDate "<04/10/17gt;" -EndDate "<04/27/17gt;&quot
    
  • Objet: lorsque vous utilisez ce commutateur, vous pouvez spécifier l’objet d’un élément afin de limiter la recherche pour les opérations effectuées sur cet élément.

    Par exemple, l’applet de commande suivante filtre toutes les sorties, à l’exception des éléments dont l’objet est défini sur « bonne information » :

    .\Run-MailboxAuditLogSearcher.ps1 -Subject "<Good News>" -Mailbox "<test1@contoso.comgt;" -StartDate "<04/10/17gt;" -EndDate "<04/27/17gt;&quot
    
  • ReturnObject: lorsque vous utilisez ce commutateur, le résultat est affiché à l’écran, mais il n’est pas exporté dans un fichier. csv.

    Par exemple, l’applet de commande suivante affiche le résultat à l’écran :

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

Colonnes exportées du fichier. csv

Les colonnes les plus utiles du fichier. csv sont exportées. Certaines de ces colonnes sont fusionnées pour faciliter la lecture de la sortie. Le tableau suivant répertorie les colonnes exportées.

Colonne Description
Sujet Objet de l’élément
Opération Actions effectuées sur l’élément
LogonUserDisplayName Nom d’affichage de l’utilisateur qui a ouvert une session o
LastAccessed Heure à laquelle l’opération a été effectuée
DestFolderPathName Dossier de destination pour l’opération de déplacement
FolderPathName Chemin d’accès du dossier
ClientInfoString Détails sur le client qui effectue l’opération
LastAccessed Adresse IP de l’ordinateur client
ClientMachineName Nom de l’ordinateur client
ClientProcessName Nom du processus de l’application cliente
ClientVersion Version de l’application cliente
LogonType Type d’ouverture de session de l’utilisateur qui effectue l’opération
Note Les types d’ouverture de session incluent les éléments suivants :
-Délégué pour les non-propriétaires
-Administrateur
-Propriétaire de la boîte aux lettres (non enregistré par défaut)
MailboxResolvedOwnerName Nom résolu de l’utilisateur de boîte aux lettres
Note Le nom résolu est au format suivant :
Domain\SamAccountName
OperationResult État de l’opération
Note Les résultats de l’opération incluent les éléments suivants :
– Échec
-Partiallysucceded
-Réussite
CrossMailboxOperation Informations indiquant si l’opération enregistrée est une opération entre boîtes aux lettres (par exemple, la copie ou le transfert de messages entre des boîtes aux lettres)

Plus d’informations sur l’enregistrement d’audit de boîte aux lettres

  • La cmdlet Search-MailboxAuditLog   est utilisée dans l’exemple de script de l’étape 1 pour rechercher une seule boîte aux lettres de manière synchrone. Vous pouvez également effectuer cette opération en exécutant l’applet de commande dans Windows Remote PowerShell.

    Pour plus d’informations sur l’applet de commande, reportez-vous à l’article TechNet suivant :

    Search-MailboxAuditLog

  • Vous pouvez rechercher une ou plusieurs boîtes aux lettres de manière asynchrone. Pour ce faire, exécutez l’applet de commande suivante dans Windows Remote PowerShell :

    New-MailboxAuditLogSearch
    

    Pour plus d’informations sur cette applet de commande, reportez-vous à l’article TechNet suivant :

    New-MailboxAuditLogSearch

    Pour plus d’informations sur les entrées de journalisation d’audit de boîte aux lettres par défaut, consultez la section « entrées du journal d’audit de boîte aux lettres » de l’article TechNet suivant :

    Journalisation d’audit de boîte aux lettres dans Exchange 2016