Obtener la fecha de vencimiento de la contraseña en PowerShell [2 formas]
Usando el cmdlet Get-ADUser
Utilice el cmdlet Get-ADUser para obtener la fecha de vencimiento de la contraseña de un usuario específico en Active Directory.
Utilice el cmdlet Get-ADUser:
Get-ADUser -Identity Administrator
-Properties "SamAccountName", "msDS-UserPasswordExpiryTimeComputed" |
Select-Object -Property "SamAccountName",
@{Name="PasswordExpiryDate";Expression={[DateTime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}PRODUCCIÓN :
SamAccountName PasswordExpiryDate
-------------- ------------------
Administrator 8/27/2023 4:35:46 PMEl cmdlet Get-ADUser se utiliza para obtener uno o varios usuarios de un directorio activo. Lo usamos con el parámetro -Identity para obtener solo el usuario Administrator con las propiedades SamAccountName y msDS-UserPasswordExpiryTimeComputed. Especificamos estas propiedades usando el parámetro -Property.
Canalizamos los detalles (obtenidos del cmdlet Get-ADUser) al cmdlet Select-Object para seleccionar los valores de SamAccountName y Propiedades ContraseñaExipryDate. ¿De dónde vino la propiedad PasswordExpiryDate mientras recuperamos msDS-UserPasswordExpiryTimeComputed usando Get-ADUser?
Usamos una HashTable para definir un objeto PowerShell personalizado para crear una propiedad calculada/personalizada cuyo nombre sería PasswordExpiryDate y el valor se calcularía usando la propiedad msDS-UserPasswordExpiryTimeComputed.
Al crear una propiedad calculada, la expresión calculó el valor de la propiedad PasswordExpiryDate. Utilizó el método FromFileTime() de la clase DateTime para convertir el msDS-UserPasswordExpiryTimeComputed en un objeto DateTime.
El motivo para hacerlo fue hacer que el resultado fuera más fácil de entender. En HashTable, el punto y coma se utilizó como separador. Si no desea usarlo, defina Nombre y Expresión en líneas separadas presionando Entrar en el teclado.
Utilice el cmdlet Get-ADUser para obtener la fecha de vencimiento de la contraseña para todos los usuarios en un Active Directory.
Utilice el cmdlet Get-ADUser:
Get-ADUser -Filter {Enabled -eq $True -and PasswordNeverExpires -eq $False}
-Properties "SamAccountName", "msDS-UserPasswordExpiryTimeComputed" |
Select-Object -Property "SamAccountName",
@{Name="PasswordExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}PRODUCCIÓN :
SamAccountName PasswordExpiryDate
-------------- ------------------
Administrator 8/27/2023 4:35:46 PMEste ejemplo se parece al anterior, pero obtuvimos la fecha de vencimiento para todos los usuarios en un directorio activo utilizando las condiciones especificadas. Aquí, utilizamos el parámetro -Filter para seleccionar solo aquellos usos cuyas propiedades Enabled y PasswordNeverExpires fueran iguales a $True y $False, respectivamente. Usamos -eq para determinar la igualdad, mientras que -and era un operador lógico AND, lo que hace que la expresión condicional sea verdadera si ambas condiciones son verdaderas.
En nuestro caso, las condiciones solo se cumplieron para el usuario Administrador, por lo que obtuvimos la fecha de vencimiento de su contraseña.
Utilice el siguiente script si desea exportar la salida ordenada a un archivo CSV.
Utilice el cmdlet Get-ADUser:
Get-ADUser -Filter {Enabled -eq $True -and PasswordNeverExpires -eq $False}
-Properties "SamAccountName", "msDS-UserPasswordExpiryTimeComputed" |
Select-Object -Property "SamAccountName",
@{Name="PasswordExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}|
Sort-Object "PasswordExpiryDate" | Out-File C:\PasswordExpiryDates.csvSALIDA: Contenido de PasswordExpiryDates.csv:
SamAccountName PasswordExpiryDate
-------------- ------------------
Administrator 8/27/2023 4:35:46 PMEste fragmento de código es el mismo que el anterior con dos cmdlets adicionales. Usamos el cmdlet Sort-Object para ordenar la entrada recibida según PasswordExpiryDate y la canalizamos al cmdlet Out-File, que la escribió. en el archivo especificado. En nuestro caso, fue PasswordExpiryDates.csv
El
Sort-Objectordena de forma predeterminada en orden ascendente. Utilice el parámetro-Descendingpara ordenar en orden descendente.
Usando el comando net user
Utilice el comando net user para obtener la fecha de vencimiento de la contraseña en el directorio activo. Por lo general, este comando se utiliza cuando desea recuperar rápidamente la fecha de vencimiento de la contraseña de un usuario en particular.
Utilice el comando de usuario neto:
net user Administrator /domain | find "Password expires"PRODUCCIÓN :
Password expires 8/27/2023 4:35:46 PMTomemos otro ejemplo a continuación.
Utilice el comando de usuario neto:
net user john.powell /domain | find "Password expires"PRODUCCIÓN :
Password expires Never
No olvide reemplazar Administrator y john.powell con su nombre de usuario.
Se trata de obtener la fecha de vencimiento de la contraseña en PowerShell.
