Listado de usuarios de Active Directory junto con la fecha de expiración de la contraseña

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

17 comentarios en «Listado de usuarios de Active Directory junto con la fecha de expiración de la contraseña»

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

    Responder
    • 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.

      Responder
  2. 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

    Responder
    • 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 😉

      Responder
      • 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

        Responder
  3. saludos como estan ?? quisiera saber como listar los usuarios eliminados y en que fecha fue realizado en active directory

    Responder
    • 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.

      Responder

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.