Exportar informe de contraseñas de usuarios de Microsoft 365
Puede consultar la política de caducidad de contraseñas para toda su organización en el centro de administración de Microsoft 365. No muestra una lista de todos los usuarios individuales. Para obtener información detallada sobre la contraseña de cada usuario de Microsoft 365, debe ejecutar un script de PowerShell. En este artículo, aprenderá cómo exportar el informe de contraseñas de usuarios de Microsoft 365 a un archivo CSV.
Exportación de información Contraseña de usuarios de Microsoft 365 Script de PowerShell
Si su organización no ha establecido una política de caducidad de contraseñas, Microsoft recomienda configurar las contraseñas para que nunca caduquen. Cuando toda la organización tiene una política de caducidad de contraseña, aún podría haber usuarios individuales de Microsoft 365 con otra política. Ahí es donde el script de PowerShell viene al rescate.
Este script se ejecutará y recopilará la siguiente información por usuario:
- IDENTIFICACIÓN
- Nombre principal de usuario
- Correo
- Nombre para mostrar
- Políticas de contraseña
- Fecha y hora del último cambio de contraseña
- Fecha y hora de creación
- Dominio
- Edad máxima de la contraseña
- Edad de la contraseña
- Expira el
- Días restantes
Le mostraremos cómo obtener estos resultados en los siguientes pasos.
Exporte usuarios de Microsoft 365 a CSV con PowerShell
Sigamos los pasos y exportemos el informe de contraseñas de los usuarios de Microsoft 365 a un archivo CSV con PowerShell.
1. Instale Microsoft Graph PowerShell
Antes de ejecutar el script de PowerShell Export-M365PasswordReport.ps1, debe instalar el módulo Microsoft Graph PowerShell.
Ejecute el siguiente comando para instalar el módulo Microsoft Graph.
Install-Module Microsoft.Graph -Force2. Conéctese a Microsoft Graph PowerShell
Debe conectarse a MS Graph con los siguientes alcances.
Connect-MgGraph -Scopes "User.ReadWrite.All", "Group.ReadWrite.All", "Directory.ReadWrite.All"- Inicie sesión con sus credenciales de administrador
- Habilite el consentimiento en nombre de su organización
- Haga clic en Aceptar
3. Descargue el script de PowerShell Export-M365PasswordReport
Para descargar el script de PowerShell Export-M365PasswordReport, siga estos pasos:
- Descargue el script de PowerShell Export-M365PasswordReport.ps1
- O copie el siguiente script en el Bloc de notas y guárdelo como archivo Export-M365PasswordReport.ps1.
<#
.SYNOPSIS
.\Export-M365UsersPassword.ps1
.DESCRIPTION
Connect to Microsoft Graph PowerShell first.
The script exports the passwords report for all Microsoft 365 users to a CSV file.
.LINK
Export Microsoft 365 users password report
.NOTES
Written By: o365info
Website: o365info.com
.CHANGELOG
V1.00, 10/26/2023 - Initial version
#>
# Get all domain password expiration policies
$domains = Get-MgDomain | Select-Object Id, PasswordValidityPeriodInDays
$domains | ForEach-Object { if (!$_.PasswordValidityPeriodInDays) { $_.PasswordValidityPeriodInDays = 90 } }
# Get user information
$properties = "Id", "UserPrincipalName", "mail", "displayName", "PasswordPolicies", "LastPasswordChangeDateTime", "CreatedDateTime"
$users = Get-MgUser -Filter "userType eq 'member' and accountEnabled eq true" `
-Property $properties -CountVariable userCount `
-ConsistencyLevel Eventual -All -Verbose | `
Select-Object $properties | Where-Object {
"$(($_.userPrincipalName).Split('@')[1])" -in $($domains.id)
}
# Add properties to the $users objects
$users | Add-Member -MemberType NoteProperty -Name Domain -Value $null
$users | Add-Member -MemberType NoteProperty -Name MaxPasswordAge -Value 0
$users | Add-Member -MemberType NoteProperty -Name PasswordAge -Value 0
$users | Add-Member -MemberType NoteProperty -Name ExpiresOn -Value (Get-Date '1970-01-01')
$users | Add-Member -MemberType NoteProperty -Name DaysRemaining -Value 0
# Get the current datetime for calculation
$timeNow = Get-Date
foreach ($user in $users) {
# Get the user's domain
$userDomain = ($user.userPrincipalName).Split('@')[1]
# Check if the user has "disablepasswordexpiration" set
if ($user.PasswordPolicies -contains "DisablePasswordExpiration") {
# Set values to indicate that the password does not expire for this user
$passwordAge = (New-TimeSpan -Start $user.LastPasswordChangeDateTime -End $timeNow).Days
$user.MaxPasswordAge = "Password does not expire"
$user.PasswordAge = $passwordAge
$user.ExpiresOn = "N/A"
$user.DaysRemaining = "N/A"
}
else {
# Get the maximum password age based on the domain password policy
$maxPasswordAge = ($domains | Where-Object { $_.id -eq $userDomain }).PasswordValidityPeriodInDays
# Check if MaxPasswordAge is 2147483647
if ($maxPasswordAge -eq 2147483647) {
$passwordAge = (New-TimeSpan -Start $user.LastPasswordChangeDateTime -End $timeNow).Days
$user.MaxPasswordAge = "Password does not expire"
$user.PasswordAge = $passwordAge
$user.ExpiresOn = "N/A"
$user.DaysRemaining = "N/A"
}
else {
$passwordAge = (New-TimeSpan -Start $user.LastPasswordChangeDateTime -End $timeNow).Days
$expiresOn = (Get-Date $user.LastPasswordChangeDateTime).AddDays($maxPasswordAge)
$user.PasswordAge = $passwordAge
$user.ExpiresOn = $expiresOn
$user.DaysRemaining = $(
# If the remaining days is negative, show "Expired" instead
if (($daysRemaining = (New-TimeSpan -Start $timeNow -End $expiresOn).Days) -le 0) { "Expired" }
else { $daysRemaining }
)
$user.MaxPasswordAge = $maxPasswordAge
}
}
$user.Domain = $userDomain
}
# Display the results in Out-GridView
$users | Out-GridView
# Export the results to CSV file
$users | Export-Csv -Path "C:\temp\M365UsersPassword.csv" -NoTypeInformation -Encoding UTF8- Cree las carpetas scripts y temp en su unidad (C:) si aún no las tiene.
- Guarde el script de PowerShell Export-M365PasswordReport.ps1 en la carpeta C:\scripts.
Abra el archivo para verificar si está desbloqueado para evitar errores al ejecutar el script.
4. Ejecute el script de PowerShell Export-M365PasswordReport
Ejecute PowerShell como administrador y ejecute el script de PowerShell Export-M365PasswordReport.ps1.
C:\scripts\.\Export-M365PasswordReport.ps1El script de PowerShell comienza a escanear a todos los usuarios de Microsoft 365 de la organización. Puede tardar unos minutos si tienes muchos usuarios.
5. Informe de caducidad de contraseña de usuarios de Microsoft 365 de Out-GridView
La secuencia de comandos mostrará la lista de información de contraseñas de usuarios de Microsoft 365 en una ventana de vista de cuadrícula.
El Out-GridView aparece una vez finalizado el script. Muestra qué política de contraseñas (Ninguna, vacía, DisableStrongPassword o DisablePasswordExpiration) tiene cada usuario de Microsoft 365.
6. Abra el archivo CSV del informe de caducidad de contraseña de usuarios de Microsoft 365 en Excel
Encontrará el archivo M365UsersPassword.csv en la carpeta C:\temp.
Abra el archivo CSV con una aplicación como Microsoft Excel para ver los resultados.
Eso es todo.
Nota: Ahora que tiene un informe de contraseñas de usuarios de Microsoft 365, puede administrar la contraseña de los usuarios de Microsoft 365.
Leer más: Exportar informe de tamaño de buzón de Microsoft 365 con PowerShell »
Conclusión
Aprendió a exportar el informe de contraseñas de usuarios de Microsoft 365 a un archivo Out-GridView y CSV con PowerShell. El script de PowerShell Export-M365PasswordReport.ps1 muestra un informe de contraseña detallado para cada usuario. Obtendrá una descripción general estructurada que muestra qué política de contraseñas tiene cada usuario y cuándo caduca la contraseña.
Disfrutaste este artículo? También te puede interesar Exportar licencias de usuarios de Microsoft 365. No olvides seguirnos y compartir este artículo.




