Exportar informe de usuarios inactivos de Microsoft 365
Quiere encontrar todos los usuarios inactivos de Microsoft 365. No hay ningún beneficio en mantener activas las cuentas de usuario cuando no hay actividad. Las cuentas de usuario inactivas se convierten en objetivos fáciles para los piratas informáticos y usted debe desactivarlas. En este artículo, aprenderá cómo exportar el informe de usuarios inactivos de Microsoft 365.
¿Qué son los usuarios inactivos de Microsoft 365?
Un usuario inactivo de Microsoft 365 es cuando el usuario no ha iniciado sesión durante los últimos días. Esto puede ser diferente para cada organización. Algunos consideran que una cuenta inactiva es válida cuando no se ha iniciado sesión en los últimos 60 o 90 días. Algunos encuentran que es un período de 30 días.
El Centro para la Seguridad de Internet (CIS) recomienda eliminar o deshabilitar cualquier cuenta inactiva después de un período de 45 días de inactividad, cuando sea compatible.
Consulte 5.3: Desactivar cuentas inactivas.
Importante: Necesita una licencia de edición Microsoft Entra ID P1 o P2 para ver la fecha del último inicio de sesión.
Verifique la fecha del último inicio de sesión del usuario en el centro de administración de Microsoft 365
Para verificar la fecha del último inicio de sesión del usuario de Microsoft 365 en el Centro de administración de Microsoft 365, siga estos pasos:
Iniciar sesión en el centro de administración de Microsoft 365
Expandir Usuarios
Haga clic en Usuarios activos
Seleccione el Usuario
Haga clic en Cuenta > Ver los últimos 30 días
Aparecen la fecha del último inicio de sesión, el estado y el motivo del error (si está disponible).
¿Qué sucede si desea exportar el último estado de inicio de sesión de todos los usuarios? PowerShell al rescate.
Exportar script de PowerShell de usuarios inactivos de Microsoft 365
El script de PowerShell Export-M365InactiveUsers.ps1 obtendrá todos los usuarios de Microsoft 365/Microsoft Entra ID y exportará un informe a un archivo CSV que muestra cuántos días han transcurrido desde su último inicio de sesión.
Nota: El valor LastSuccessfulSignInDate comenzará a aparecer en el informe dentro de 6 horas. Los datos de esta propiedad no se completan y los inicios de sesión comienzan a registrarse después del 1 de diciembre de 2023.
Para cada usuario, recopila la siguiente información:
Identificación
Nombre principal de usuario
Nombre para mostrar
Correo electrónico
Tipo de usuario
Cuenta habilitada
Última fecha de inicio de sesión exitosa
-
Días desde el último inicio de sesión
CreadoFechaHora
Tiene licencia
Prepare el script de PowerShell Export-M365InactiveUsers
Cree dos carpetas en la unidad (C:):
Temperatura
Guiones
Descargue el script de PowerShell Export-M365InactiveUsers.ps1 y colóquelo en la carpeta C:\scripts. El script exportará el archivo CSV a la carpeta C:\temp.
Asegúrese de que el archivo esté desbloqueado para evitar errores al ejecutar el script. Lea más en el artículo Error sin firma digital al ejecutar el script de PowerShell.
Otra opción es copiar y pegar el siguiente código en el Bloc de notas. Asígnale el nombre Export-M365InactiveUsers.ps1 y colócalo en la carpeta C:\scripts.
<#
.SYNOPSIS
Export-M365InactiveUsers.ps1
.DESCRIPTION
Export Microsoft 365/Microsoft Entra ID inactive users report.
.LINK
www.alitajran.com/export-microsoft-365-inactive-users/
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
.CHANGELOG
V1.00, 12/13/2023 - Initial version
V1.10, 02/26/2024 - Added IsLicensed column
V1.20, 04/02/2024 - Calculate DaysSinceLastSignIn from LastSuccessfulSignInDateTime property
#>
# Export path for CSV file
$CSVPath = "C:\Temp\InactiveUsers.csv"
# Parameters
$InactiveUsers = @()
# Connect to Microsoft Graph API
Connect-MgGraph -Scopes "User.Read.All", "AuditLog.Read.All"
# Get properties
$Properties = @(
'Id',
'DisplayName',
'Mail',
'UserPrincipalName',
'UserType',
'AccountEnabled',
'SignInActivity',
'CreatedDateTime',
'AssignedLicenses'
)
# Get all users along with the properties
$AllUsers = Get-MgBetaUser -All -Property $Properties | Select-Object $Properties
foreach ($User in $AllUsers) {
$LastSuccessfulSignInDate = if ($User.SignInActivity.LastSuccessfulSignInDateTime) {
$User.SignInActivity.LastSuccessfulSignInDateTime
}
else {
"Never Signed-in."
}
$DaysSinceLastSignIn = if ($User.SignInActivity.LastSuccessfulSignInDateTime) {
(New-TimeSpan -Start $User.SignInActivity.LastSuccessfulSignInDateTime -End (Get-Date)).Days
}
else {
"N/A"
}
# Check if the user is licensed
$IsLicensed = if ($User.AssignedLicenses) {
"Yes"
}
else {
"No"
}
# Collect data
if (!$User.SignInActivity.LastSuccessfulSignInDateTime -or (Get-Date $User.SignInActivity.LastSuccessfulSignInDateTime)) {
$InactiveUsers += [PSCustomObject]@{
Id = $User.Id
UserPrincipalName = $User.UserPrincipalName
DisplayName = $User.DisplayName
Email = $User.Mail
UserType = $User.UserType
AccountEnabled = $User.AccountEnabled
LastSuccessfulSignInDate = $LastSuccessfulSignInDate
DaysSinceLastSignIn = $DaysSinceLastSignIn
CreatedDateTime = $User.CreatedDateTime
IsLicensed = $IsLicensed
}
}
}
# Display data using Out-GridView
$InactiveUsers | Out-GridView -Title "Inactive Users"
# Export data to CSV file
try {
$InactiveUsers | Export-Csv -Path $CSVPath -NoTypeInformation -Encoding UTF8
Write-Host "Script completed. Results exported to $CSVPath." -ForegroundColor Cyan
}
catch {
Write-Host "Error occurred while exporting to CSV: $_" -ForegroundColor Red
}Línea 23: Editar ruta del archivo CSV
Conéctese a Microsoft Graph PowerShell
Antes de que podamos continuar y obtener el estado inactivo para todos los usuarios, debemos instalar y conectarnos a Microsoft Graph PowerShell.
Inicie Windows PowerShell como administrador y ejecute los siguientes comandos.
Install-Module Microsoft.Graph -ForceInstall-Module Microsoft.Graph.Beta -AllowClobber -ForceImportante: Instale siempre los módulos Microsoft Graph PowerShell y Microsoft Graph Beta PowerShell. Esto se debe a que algunos cmdlets aún no están disponibles en la versión final y no funcionarán. Actualice ambos módulos a la última versión antes de ejecutar un cmdlet o script para evitar errores y resultados incorrectos.
Ejecute el cmdlet Connect-MgGraph.
Connect-MgGraph -Scopes "User.Read.All", "AuditLog.Read.All"Ejecute el script de PowerShell Export-M365InactiveUsers
Obtenga todos los usuarios inactivos con PowerShell. Ejecute el siguiente comando para ejecutar el script Export-M365InactiveUsers.ps1.
c:\scripts\.\Export-M365InactiveUsers.ps1Vista fuera de la red
Un Out-GridView mostrará columnas con todos los usuarios inactivos y mucha más información.
Abrir el archivo CSV del informe de usuarios inactivos de Microsoft 365
El script de PowerShell Export-M365InactiveUsers.ps1 exportará la inactividad de los usuarios de Microsft 365 a un archivo CSV. Busque el archivo InactiveUsers.csv en la ruta C:\temp.
Abra el archivo CSV con su aplicación favorita. En nuestro ejemplo, es Microsoft Excel.
¿Esto le ayudó a exportar usuarios inactivos de Microsoft 365 a un archivo CSV?
Nota: ¿Quiere comprender las tres propiedades de inicio de sesión y cómo recuperarlas? Lea el artículo Exportar la fecha y hora del último inicio de sesión de los usuarios de Microsoft 365.
Leer más: Bloquear el inicio de sesión desde buzones de correo compartidos »
Conclusión
Aprendió a exportar usuarios inactivos desde Microsoft 365. Obtenga el informe de usuarios inactivos con el script de PowerShell Export-M365InactiveUsers y revíselo detenidamente. Compruebe por qué no hay actividad de inicio de sesión de usuarios y desactive las cuentas de usuarios inactivos para proteger su organización.
Disfrutaste este artículo? También te puede interesar Exportar usuarios de Azure AD a CSV con PowerShell. No olvides seguirnos y compartir este artículo.






