Cómo encontrar usuarios inactivos en Office 365 – TrucosInformaticos

General

Generalmente existen dos criterios para identificar a los usuarios inactivos de Office 365:

  • La cuenta de usuario no ha iniciado sesión dentro de un período específico.
  • La cuenta de usuario no tuvo actividades registradas en Exchange Online, SharePoint Online, Yammer, Teams y OneDrive, dentro de un período específico.

Los administradores pueden considerar uno o ambos criterios al analizar los usuarios inactivos de Office 365 para una posible limpieza y liberación de licencias no utilizadas.

El período por el cual las cuentas se consideran inactivas es subjetivo. Pueden ser los últimos 30 días, 90 días, etc. Deben ser la organización o los administradores quienes designen el período óptimo de inactividad.

Encuentre usuarios inactivos en Office 365 usando Microsoft Entra Admin Center antes de la fecha del último inicio de sesión

El Microsoft ingresa al Centro de administración (anteriormente Centro de administración de Azure Active Directory) proporciona una interfaz fácil de usar para administrar cuentas y actividades de usuarios. Para buscar usuarios inactivos según su última fecha de inicio de sesión, siga estos pasos:

  1. Inicia sesión en MicrosoftEntra y navegar a Identidad → Usuarios → Todos los usuarios.
  2. Hacer clic Administrar vista → Editar columnas.
    usuarios inactivos office 365
  3. Personalice las columnas, asegúrese de que «Hora del último inicio de sesión«La columna es visible y haga clic en Ahorrar.
    informe de usuarios inactivos de office 365
  4. Hacer clic Agregar filtro y seleccione el botón «Hora del último inicio de sesión» columna.
    usuarios inactivos de microsoft 365
  5. cambiar el Operador a «<=”(menor o igual a), especifique el Valor umbral (fecha) y haga clic en Aplicar. Este filtro solo muestra las cuentas que iniciaron sesión por última vez en la fecha seleccionada o antes.
    Informe de usuarios inactivos de o365
  6. Ahora tiene una lista de usuarios inactivos de Office 365 que no iniciaron sesión en sus cuentas dentro de los días anteriores. Haga clic en «Descargar usuarios”, ingrese el nombre del archivo para generar el archivo CSV del informe de usuarios inactivos de Office 365 y haga clic en Comenzar.
    obtener lista de buzones de correo inactivos office 365 powershell
  7. Haga clic en «Resultados de operaciones masivas”Hoja del menú y seleccione el informe de la lista. Tenga en cuenta que el estado debe ser «Terminado”antes de descargar el informe.
    usuarios inactivos en office 365
  8. Haga clic en el enlace «Descargar resultados», especifique el nombre del archivo y la ubicación, y haga clic en Ahorrar.
    Resultados de operaciones masivasYa ha descargado el informe de usuarios inactivos de Office 365.
    Encuentre usuarios inactivos en Office 365 usando el Centro de administración de Microsoft 365

Encuentre usuarios inactivos en Office 365 usando el Centro de administración de Microsoft 365 por la fecha de la última actividad

Antes de continuar con este método, siga las instrucciones «Los informes de Microsoft 365 muestran nombres de usuarios anónimos en lugar de nombres de usuarios reales”Instrucciones para garantizar que el informe de Microsoft 365 muestre los nombres de usuario.

Al igual que el método anterior, puede buscar usuarios inactivos según la fecha de su última actividad. Los datos se pueden encontrar en los informes de uso. He aquí cómo:

  1. Inicie sesión en el Centro de administración de Microsoft 365.
  2. Vaya a Informes → Uso → Aplicaciones de Microsoft 365 → Usuarios activos. Seleccione el período del informe, como «Últimos 90 días”. Al hacerlo, se mostrarán los registros de actividad de los últimos 90 días.
    Nombres de usuario de informes de Microsoft 365
  3. Aquí puede averiguar qué usuarios tienen licencias asignadas pero no realizaron actividades dentro del período de informe especificado.
    los usuarios tienen licencias asignadas pero no tenían actividades
  4. También puede exportar este informe haciendo clic en el Exportar y descargar el archivo CSV resultante.

Genere un informe de usuarios inactivos de Office 365 utilizando Microsoft Graph PowerShell hasta la fecha del último inicio de sesión

Este método requiere instalar la última versión de Microsoft Graph PowerShell v1.0 módulo en su computadora. Consulte esto Documento de Microsoft.

Para aquellos que prefieren un enfoque más automatizado, Microsoft Graph PowerShell puede ser una herramienta poderosa. Este método le permite generar informes detallados sobre usuarios inactivos según su última fecha de inicio de sesión. He aquí cómo:

  1. Primero, copie el siguiente script y guárdelo en su computadora como Get-InactiveUsersByLastLogInDate.ps1. También puedes descargar el código desde este enlace.
    # Get-InactiveUsersByLastLogInDate.ps1 
    
    [CmdletBinding()] 
    
    param ( 
    
    [Parameter(Mandatory)] 
    
    [int] 
    
    $DaysWithoutLogIn 
    
    ) 
    
    # Convert the date to datetimeoffset "yyyy-MM-ddThh:mm:ssZ" format. 
    
    $OnOrBefore = ((Get-Date).AddDays(-$DaysWithoutLogIn)).ToString("yyyy-MM-ddT00:00:00Z") 
    
    # Compose the API filter. 
    
    $filter = ('signInActivity/LastSignInDateTime le ' + $($OnOrBefore)) 
    
    try { 
    
    # Import the required module 
    
    Import-Module Microsoft.Graph.Users 
    
    # Get users and 
    
    Get-MgUser -All -Filter $filter -ErrorAction Stop -Property ` 
    
    'DisplayName', 'UserPrincipalName', 'Mail', 'UserType', 'AccountEnabled', 'SignInActivity' | 
    
    Select-Object 'DisplayName', 'UserPrincipalName', 'Mail', 'UserType', 'AccountEnabled', 
    
    @{n = 'LastLoginDate'; e = { 
    
    $( 
    
    if (!$_.SignInActivity.LastSignInDateTime) { 
    
    # If no LastSignInDateTime value, set it to the oldest datetime. 
    
    [datetime]::MinValue 
    
    } 
    
    else { 
    
    $_.SignInActivity.LastSignInDateTime 
    
    } 
    
    ) 
    
    } 
    
    }, 
    
    @{n = 'DaysWithoutLogIn'; e = { 
    
    $( 
    
    if (!$_.SignInActivity.LastSignInDateTime) { 
    
    # If no LastSignInDateTime value, set it to the oldest datetime. 
    
    (New-TimeSpan -Start ([datetime]::MinValue)).Days 
    
    } 
    
    else { 
    
    (New-TimeSpan -Start ($_.SignInActivity.LastSignInDateTime)).Days 
    
    } 
    
    ) 
    
    } 
    
    } 
    
    } 
    
    catch { 
    
    $_.Exception.Message | Out-Default 
    
    return $null 
    
    }
  2. Abra PowerShell y cambie el directorio de trabajo donde guardó el script.
    Set-Location <script location>
  3. Ejecute el siguiente comando para conectarse a Microsoft Graph. Esta conexión solicita explícitamente la Registro de auditoría.Leer.Todo y Usuario.Leer.Todo Permisos API.
    Import-Module Microsoft.Graph.Beta.Authentication 
    
    Connect-MgGraph -Scopes "AuditLog.Read.All", "User.Read.All" -TenantId <tenant ID>
  4. Haga clic en «Aceptar”para dar su consentimiento a los permisos solicitados.
    Genere un informe de usuarios inactivos de Office 365 con Microsoft Graph PowerShell
  5. Ejecute el script como se muestra a continuación. Ajustar el -Días sin iniciar sesión valor según sea necesario.
    .\Get-InactiveUsersByLastLogInDate.ps1 -DaysWithoutLogIn 30 | Sort-Object LastLoginDate

    Este ejemplo encontrará usuarios inactivos en Office 365 sin ningún registro de inicio de sesión en el pasado 30 días ordenados por Última fecha de inicio de sesión.
    Genere el informe de usuarios inactivos de Office 365 usando PowerShellTambién puede exportar los resultados a un archivo CSV conectándolo al Exportar-Csv cmdlet.

    .\Get-InactiveUsersByLastLogInDate.ps1 -DaysWithoutLogIn 30 | Export-Csv <csv file> -NoTypeInformation

Genere un informe de usuarios inactivos de Office 365 utilizando Microsoft Graph PowerShell hasta la fecha de la última actividad

De manera similar al método anterior, puede generar un informe de usuarios inactivos de Office 365 basado en la fecha de la última actividad.

Se espera que los usuarios con licencias asignadas, como Exchange, SharePoint, Teams, OneDrive for Business y Yammer, utilicen esos servicios. De lo contrario, sería mejor saber quién no utiliza sus servicios de Office 365.

  1. Copie el script a continuación y guárdelo en su computadora con el nombre de archivo Get-InactiveUsersByLastActivityDate.ps1. También puedes descargar el script desde este enlace.
    #Get-InactiveUsersByLastActivityDate.ps1 
    
    [CmdletBinding()] 
    
    param ( 
    
    [Parameter(Mandatory)] 
    
    [int] 
    
    $DaysWithoutActivity 
    
    ) 
    
    try { 
    
    Import-Module Microsoft.Graph.Reports 
    
    $tempCsv = "$env:temp\tmp_office365users.csv" 
    
    Get-MgReportOffice365ActiveUserDetail -Period D180 -OutFile $tempCsv -ErrorAction Stop -WarningAction SilentlyContinue 
    
    $data = Import-Csv -Path $tempCsv 
    
    } 
    
    catch { 
    
    $_.Exception.Message | Out-Default 
    
    return $null 
    
    } 
    
    try { 
    
    $data | ForEach-Object { 
    
    [System.Collections.ArrayList]$inactiveDays = @() 
    
    if ($_.'Has Exchange License' -eq 'TRUE') { 
    
    if ($_.'Exchange Last Activity Date') { 
    
    $null = $inactiveDays.Add($((New-TimeSpan -Start (Get-Date $_.'Exchange Last Activity Date')).Days)) 
    
    } 
    
    else { 
    
    $null = $inactiveDays.Add($((New-TimeSpan -Start (Get-Date $_.'Exchange License Assign Date')).Days)) 
    
    } 
    
    } 
    
    else { $null = $inactiveDays.Add(0) } 
    
    if ($_.'Has SharePoint License' -eq 'TRUE') { 
    
    if ($_.'SharePoint Last Activity Date') { 
    
    $null = $inactiveDays.Add($((New-TimeSpan -Start (Get-Date $_.'SharePoint Last Activity Date')).Days)) 
    
    } 
    
    else { 
    
    $null = $inactiveDays.Add($((New-TimeSpan -Start (Get-Date $_.'SharePoint License Assign Date')).Days)) 
    
    } 
    
    } 
    
    else { $null = $inactiveDays.Add(0) } 
    
    if ($_.'Has OneDrive License' -eq 'TRUE') { 
    
    if ($_.'OneDrive Last Activity Date') { 
    
    $null = $inactiveDays.Add($((New-TimeSpan -Start (Get-Date $_.'OneDrive Last Activity Date')).Days)) 
    
    } 
    
    else { 
    
    $null = $inactiveDays.Add($((New-TimeSpan -Start (Get-Date $_.'OneDrive License Assign Date')).Days)) 
    
    } 
    
    } 
    
    else { $null = $inactiveDays.Add(0) } 
    
    if ($_.'Has Teams License' -eq 'TRUE') { 
    
    if ($_.'Teams Last Activity Date') { 
    
    $null = $inactiveDays.Add($((New-TimeSpan -Start (Get-Date $_.'Teams Last Activity Date')).Days)) 
    
    } 
    
    else { 
    
    $null = $inactiveDays.Add($((New-TimeSpan -Start (Get-Date $_.'Teams License Assign Date')).Days)) 
    
    } 
    
    } 
    
    else { $null = $inactiveDays.Add(0) } 
    
    if ($_.'Has Yammer License' -eq 'TRUE') { 
    
    if ($_.'Yammer Last Activity Date') { 
    
    $null = $inactiveDays.Add($((New-TimeSpan -Start (Get-Date $_.'Yammer Last Activity Date')).Days)) 
    
    } 
    
    else { 
    
    $null = $inactiveDays.Add($((New-TimeSpan -Start (Get-Date $_.'Yammer License Assign Date')).Days)) 
    
    } 
    
    } 
    
    else { $null = $inactiveDays.Add(0) } 
    
    $DaysInactive = ($inactiveDays | Sort-Object)[0] 
    
    # $DaysInactive | Out-Default 
    
    if ($DaysInactive -ge $DaysWithoutActivity) { 
    
    [PSCustomObject]@{ 
    
    Name = $_.'Display Name' 
    
    Username = $_.'User Principal Name' 
    
    DaysWithoutActivity = $DaysInactive 
    
    } 
    
    } 
    
    } 
    
    } 
    
    catch { 
    
    $_.Exception.Message | Out-Default 
    
    }
  2. Abra PowerShell y cambie el directorio de trabajo donde guardó el script.
    Set-Location <script location>
  3. Ejecute el siguiente comando para conectarse a Microsoft Graph. Esta conexión solicita explícitamente la Informes.Leer.Todos Permiso API.
    Import-Module Microsoft.Graph.Beta.Authentication 
    
    Connect-MgGraph -Scopes "Reports.Read.All" -TenantId <tenant ID>
  4. Haga clic en «Aceptar”para dar su consentimiento a los permisos solicitados.
  5. Ejecute el script como se muestra a continuación. Ajustar el -DíasSinActividad valor según sea necesario.
    .\Get-InactiveUsersByLastActivityDate.ps1 -DaysWithoutActivity 30

    Este ejemplo encontrará usuarios inactivos en Office 365 cuya última actividad en Exchange, Teams, OneDrive, SharePoint y Yammer está más allá del pasado. 30 días.
    Genere el informe de usuarios inactivos de O365 usando PowerShellTambién puede exportar los resultados a un archivo CSV conectándolo al Exportar-Csv cmdlet.

    .\Get-InactiveUsersByLastActivityDate.ps1 -DaysWithoutActivity 30 | Export-Csv <csv file> -NoTypeInformation

Valora este post

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *