Uso de registros de auditoría de buzones en Microsoft 365

Número de KB original: 4021960

Resumen

En Microsoft 365, puede ejecutar registros de auditoría de buzones para determinar cuándo se actualizó un buzón de correo de forma inesperada o si faltan elementos de un buzón. Es posible que tenga que hacerlo, por ejemplo, si los elementos se mueven o si se eliminan de forma inesperada o incorrecta.

Para el entorno vNext, tenga en cuenta que los registros de auditoría de buzones no están habilitados de forma predeterminada y deben estar activados para un usuario antes de iniciar una búsqueda.

Ejecución y comprobación de registros de auditoría de buzones

El registro de auditoría de buzones permite a los usuarios obtener información sobre las acciones que realizan los administradores y no propietarios. El registro de auditoría de buzones de correo está disponible para los miembros del grupo de autoservicio de buzones de informes de auditoría solo mediante Windows Remote PowerShell.

Nota:

  • De forma predeterminada, solo está habilitado el registro de auditoría del buzón de correo que no es propietario y el registro de auditoría de buzón de propietario está deshabilitado. Si tiene que realizar el registro de auditoría del buzón de correo del propietario para investigar un problema específico, puede habilitar temporalmente el proceso durante un período de dos semanas.
  • Es posible que algunas organizaciones no le permitan usar el registro de auditoría de buzones de correo y, por lo tanto, han desactivado la característica.

Para investigar este problema, cree y use un script de Windows PowerShell mediante el script de ejemplo que se proporciona en el paso 1 de esta sección y, a continuación, personalice una búsqueda. De forma predeterminada, puede investigar las acciones realizadas por administradores y no propietarios. Este script exporta contenido en un archivo simplificado de valores separados por comas (.csv) para ayudarle a solucionar problemas de informes sobre elementos que faltan o que se actualizaron inesperadamente.

Importante

Se recomienda a los clientes que usen el script proporcionado por Microsoft Online Services para ayudar en determinadas investigaciones. Los scripts de Microsoft Online Services son genéricos y deben ser utilizables en todos los entornos de cliente. Si se producen errores cuando se ejecuta un script, el contenido del script debe usarse como ejemplo para crear un script personalizado para un entorno de cliente determinado. Microsoft Online Services proporciona el script como una comodidad para los clientes de Microsoft 365 sin garantía, expresa o implícita.

Paso 1: Ejecución del script

Para ejecutar el script, siga estos pasos:

  1. Inicie el Bloc de notas y copie el código siguiente en el archivo. El código usa el search-mailboxAuditLog comando que forma parte 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. En el menú Archivo, haga clic en Guardar como.

  3. En el cuadro Guardar como tipo , haga clic en Todo el archivo.

  4. En el cuadro Nombre de archivo , escriba Run-MailboxAuditLogSearcher.ps1y, a continuación, haga clic en Guardar.

  5. Inicie Windows PowerShell y, a continuación, conéctese a Windows Remote PowerShell.

  6. Busque el directorio en el que guardó el script y, a continuación, ejecute el script.

    .\Run-MailboxAuditLogSearcher.ps1
    

    Nota:

    • Si ejecuta el script sin parámetros, se le pedirán los siguientes parámetros predeterminados:
      • Mailbox
      • StartDate
      • EndDate
    • Para buscar entradas del día actual, agregue un día al valor de fecha de finalización en la ventana de aviso. Por ejemplo, si la fecha actual es 14/3/2017 y desea incluir el día actual en la búsqueda, escriba 15/3/2017 como fecha de finalización.

En Microsoft 365, las entradas de registro de auditoría del buzón se conservan en el buzón durante 90 días. Se le pedirá que indique una fecha de inicio y una fecha de finalización para la búsqueda. Puede usar varios parámetros opcionales para personalizar la búsqueda. Para obtener una descripción de estos parámetros, consulte la sección "Más información".

Si se encuentran elementos después de ejecutar el script, recibirá un mensaje similar al siguiente:

Captura de pantalla del mensaje después de ejecutar el script.

Este mensaje de ejemplo indica que el proceso de búsqueda ha encontrado 11 entradas. De forma predeterminada, las entradas FolderBind se filtran y permanecen los siguientes tipos de operación:

  • Copiar
  • Crear
  • HardDelete
  • MessageBind
  • Mover
  • MoveToDeletedItems
  • SendAs
  • SendOnBehalf
  • SoftDelete
  • Actualizar

Nota:

La operación FolderBind indica las horas a las que un no propietario tiene acceso al buzón. Esta es la operación más común. No es necesario ver las operaciones FolderBind al investigar un elemento que se actualiza o elimina.

Revise la salida del archivo .csv. Se exportan las columnas más útiles y algunas de estas columnas se combinan para facilitar la revisión de la salida. Para obtener más información sobre las columnas que se exportan, consulte la sección "Más información".

Registro de auditoría del buzón de correo del propietario

De forma predeterminada. el registro de auditoría de propietario no está activado. Solo debe usarse si tiene que investigar una acción por parte del propietario del buzón. Debe usarse durante un período de tiempo limitado, aproximadamente dos semanas. Esto se debe a que las entradas del registro de auditoría se almacenan en el buzón de correo y esto puede hacer que el contenedor de contenedores de buzones supere el límite de tamaño.

Para habilitar el registro de auditoría de propietario, siga estos pasos:

  1. Determine si el registro de auditoría de buzones está habilitado. Para ello, ejecute el siguiente cmdlet:

    Get-Mailbox <useridentity> | ft AuditEnabled
    
  2. Si el resultado es True, omita este paso. Si el resultado es False, ejecute el siguiente cmdlet en Windows PowerShell:

    Set-Mailbox <useridentity> -AuditEnabled $true
    
  3. Habilite el registro de auditoría del propietario. Para ello, ejecute el siguiente cmdlet:

    Set-Mailbox <useridentity> -AuditOwner "Create,HardDelete,Move,MoveToDeletedItems,SoftDelete,Update"
    
  4. Vuelva a ejecutar el Run-MailboxAuditLogSearcher.ps1y revise los datos.

  5. Una vez completada la solución de problemas, deshabilite el registro de auditoría del propietario. Para ello, ejecute el siguiente cmdlet:

    Set-Mailbox <useridentity> -AuditOwner $none
    

Más información

Parámetros de script opcionales

En la lista siguiente se describen los parámetros opcionales que generan resultados diferentes cuando se usan junto con el Run-MailboxAuditLogSearcher script:

  • IncludeFolderBind: cuando se usa este modificador, la operación FolderBind no se filtra de la salida. Puede usar la información de FolderBind para investigar el problema de acceso al buzón.

    Por ejemplo, el siguiente cmdlet busca en el buzón "Probar usuario 1" e incluye todas las operaciones:

    .\Run-MailboxAuditLogSearcher.ps1 -IncludeFolderBind -Mailbox "<Test User 1gt;" -StartDate "<04/10/17gt;" -EndDate "<04/27/17gt;&quot
    
  • Asunto: al usar este modificador, puede especificar el asunto de un elemento para limitar la búsqueda de operaciones que se realizan en ese elemento.

    Por ejemplo, el siguiente cmdlet filtra todos los resultados excepto los elementos que tienen el asunto establecido como "Good News":

    .\Run-MailboxAuditLogSearcher.ps1 -Subject "<Good News>" -Mailbox "<test1@contoso.comgt;" -StartDate "<04/10/17gt;" -EndDate "<04/27/17gt;&quot
    
  • ReturnObject: cuando se usa este modificador, el resultado se muestra en la pantalla, pero no se exporta a un archivo .csv.

    Por ejemplo, el siguiente cmdlet muestra la salida en la pantalla:

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

Columnas exportadas desde el archivo .csv

Se exportan las columnas más útiles del archivo .csv. Algunas de estas columnas se combinan para facilitar la revisión de la salida. En la tabla siguiente se enumeran las columnas que se exportan.

Columna Descripción
Asunto Asunto del elemento
Operación Acciones que se realizan en el elemento
LogonUserDisplayName Nombre para mostrar del usuario que ha registrado o
LastAccessed Hora a la que se realizó la operación
DestFolderPathName Carpeta de destino para la operación de traslado
FolderPathName Ruta de acceso de la carpeta
ClientInfoString Detalles sobre el cliente que realiza la operación
LastAccessed Dirección IP del equipo cliente
ClientMachineName Nombre del equipo cliente
ClientProcessName Nombre del proceso de aplicación cliente
ClientVersion Versión de la aplicación cliente
LogonType El tipo de inicio de sesión del usuario que realiza la operación
Nota Tipos de inicio de sesión incluye lo siguiente:
- Delegado para no propietario
- Administrador
- Propietario del buzón (no registrado de forma predeterminada)
MailboxResolvedOwnerName Nombre resuelto del usuario
del buzónNota El nombre resuelto tiene el siguiente formato:
Domain\SamAccountName
OperationResult Estado de la operaciónNota Los resultados de la operación
incluyen lo siguiente:
- Error
- ParcialMenteSucceeded
- Correcto
CrossMailboxOperation Información sobre si la operación registrada es una operación entre buzones (por ejemplo, copiar o mover mensajes entre buzones)

Más información sobre el registro de auditoría de buzones

  • El cmdlet Search-MailboxAuditLog se usa en el script de ejemplo del paso 1 para buscar un único buzón de correo de forma sincrónica. También puede hacerlo ejecutando el cmdlet en Windows Remote PowerShell.

    Para obtener más información sobre el cmdlet, vaya al siguiente artículo de TechNet:

    Search-MailboxAuditLog

  • Puede buscar en uno o varios buzones de correo de forma asincrónica. Para ello, ejecute el siguiente cmdlet en Windows Remote PowerShell:

    New-MailboxAuditLogSearch
    

    Para obtener más información sobre este cmdlet, vaya al siguiente artículo de TechNet:

    New-MailboxAuditLogSearch

    Para obtener más información sobre las entradas de registro de auditoría de buzón predeterminadas, vaya a la sección "Entradas de registro de auditoría de buzón" del siguiente artículo de TechNet:

    Registro de auditoría de buzones en Exchange 2016