Hoy os traigo un pequeño script de Powershell con el que podréis obtener un listado de los usuarios de Active Directory junto con la fecha en el que le expirará la contraseña.
Listado de usuarios por consola
Para obtener el listado de usuarios activos junto con la fecha de expiración de la contraseña tendréis que ejecutar el siguiente script.
Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False -and userPrincipalName -like '*'} –Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" | Select-Object -Property "Displayname","userPrincipalName",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}} | Sort-Object -Property ExpiryDate
Listado de usuarios en CSV
Si queréis obtener la misma información del punto anterior pero en esta ocasión exportada en un fichero CSV el comando a ejecutar será el siguiente:
Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False -and userPrincipalName -like '*'} –Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" | Select-Object -Property "Displayname","userPrincipalName",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}} | Sort-Object -Property ExpiryDate | export-csv 'c:\temp\usuarios.csv'
Como siempre espero que esta entrada os haya sido de utilidad.
Entradas relacionadas
- Agregar información en el campo Teléfonos/Notas de un Usuario de Active Directory con PowerShell
- PowerShell: Como importar usuarios en Active Directory desde un fichero CSV
- Exchange: Mostrar y ocultar contactos, usuarios y grupos de la libreta de direcciones GAL en Office 365 mediante PowerShell
- PowerShell: Como obtener los miembros de los grupos de distribución existentes en Office 365
- PowerShell: Notificación por correo electrónico a los usuarios del tiempo restante hasta la caducidad de su contraseña de dominio
- PowerShell: Como exportar a Excel usuarios de Active Directory
- Obtener información de certificados en Windows conociendo sólo su huella digital (thumbprint) mediante Powershell
- Gestión de servicios de Windows con Powershell
- Como eliminar archivos con una antigüedad mayor a X días mediante PowerShell
- Obtener los grupos a los que pertenece un usuario de Active Directory mediante PowerShell
- Como copiar los miembros de un grupo de Active Directory a otro
- Importar Contactos a Active Directory desde un CSV
- Recuperación de elementos eliminados de la papelera de SharePoint Online mediante PowerShell
Me dedico a la Administración de Sistemas y he creado este blog para compartir mis conocimientos con toda la comunidad y así aportar mi granito de arena y ayudar a todo el que lo necesite.
Un saludo desde Colombia Excelente como siempre Sergio gracias por tus contribuciones!
Muchas gracias Luis.
Saludos desde España.
😉👏
Gracias por tu ayuda para esta entrada tocayo 😉
Un abrazo.
¡Un placer aportar mi granito de arena!
Hola, gracias por el aporte, pero a mi me sale como resultado, la fecha = 01/01/1601 en todas las cuentas excepto en 2 y no veo la diferencia entre los objetos de usuario, de echo todos tienen configurado el never expire a NO.
¿Alguna idea?
Gracias
Un saludo
Hola Jesús,
Es un comportamiento raro no sabría decirte la verdad el porque te ocurre eso, nunca me ha pasado, no obstante, si consigues averiguar el motivo te agradecería lo compartieras con la comunidad por si en el futuro le pasara a alguien más.
Saludos.
Hola Sergio, he visto que las dos cuentas que aparecen con la fecha de expiración correcta tienen rellenos los campos accountexpires y passwordlastset e intuyo que está poniendo la fecha 01/01/1601 porque el campo esta vacío y es por la que el ad empieza a contar (https://docs.microsoft.com/es-es/troubleshoot/windows-server/identify/covert-datetime-attributes-to-standard-format).
Lo que desconozco es el porqué el resto de objetos no tienen rellenos estos atributos.
Seguiré investigando.
Saludos
Hola Jesús,
Tiene pinta que el motivo es el que comentas y te pone eso al estar el campo en blanco. A ver si consigues averiguar el motivo.
Ánimo que seguro lo consigues 😉
Buenas tardes
me ocurrio el mismo problema y la solución que encontre fue simplemente ejecutar el powershell como administrador
por lo que pude averiguar hay algunos atributos que solo se pueden consultar con el powershell como administrador y entre esos esta el campo de la expiración de la contraseña
saludos como estan ?? quisiera saber como listar los usuarios eliminados y en que fecha fue realizado en active directory
Hola Jorge,
Actualmente no tengo hecho el script que comentas, no obstante, me lo apunto para hacerlo y compartirlo en una entrada con todos ustedes.
Agradecido Sergio feliz día
Y otro script para listar los usuarios activos, inactivo, desahabilitados
Buenos días, yo estaba buscando un script para ver los usuarios que nunca les caduca la contraseña
Excelente, muy buen aporte.
Gracias Albert.