Búsqueda de sitios web

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:

  1. IDENTIFICACIÓN
  2. Nombre principal de usuario
  3. Correo
  4. Nombre para mostrar
  5. Políticas de contraseña
  6. Fecha y hora del último cambio de contraseña
  7. Fecha y hora de creación
  8. Dominio
  9. Edad máxima de la contraseña
  10. Edad de la contraseña
  11. Expira el
  12. 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 -Force

2. 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"
  1. Inicie sesión con sus credenciales de administrador
  2. Habilite el consentimiento en nombre de su organización
  3. Haga clic en Aceptar

3. Descargue el script de PowerShell Export-M365PasswordReport

Para descargar el script de PowerShell Export-M365PasswordReport, siga estos pasos:

  1. Descargue el script de PowerShell Export-M365PasswordReport.ps1
  2. 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
  1. Cree las carpetas scripts y temp en su unidad (C:) si aún no las tiene.
  2. 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.ps1

El 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.

Artículos relacionados