2K
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:
- Inicia sesión en MicrosoftEntra y navegar a Identidad → Usuarios → Todos los usuarios.
- Hacer clic Administrar vista → Editar columnas.
- Personalice las columnas, asegúrese de que «Hora del último inicio de sesión«La columna es visible y haga clic en Ahorrar.
- Hacer clic Agregar filtro y seleccione el botón «Hora del último inicio de sesión» columna.
- 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.
- 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.
- 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.
- Haga clic en el enlace «Descargar resultados», especifique el nombre del archivo y la ubicación, y haga clic en Ahorrar.
Ya 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 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:
- Inicie sesión en el Centro de administración de Microsoft 365.
- 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.
- Aquí puede averiguar qué usuarios tienen licencias asignadas pero no realizaron actividades dentro del período de informe especificado.
- 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:
- 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 }
- Abra PowerShell y cambie el directorio de trabajo donde guardó el script.
Set-Location <script location>
- 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>
- Haga clic en «Aceptar”para dar su consentimiento a los permisos solicitados.
- 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.
Tambié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.
- 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 }
- Abra PowerShell y cambie el directorio de trabajo donde guardó el script.
Set-Location <script location>
- 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>
- Haga clic en «Aceptar”para dar su consentimiento a los permisos solicitados.
- 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.
Tambié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