Powershell: prueba las credenciales de usuario en AD, con restablecimiento de contraseña

Powershell: prueba las credenciales de usuario en AD, con restablecimiento de contraseña

Puedo usar Powershell con éxito para saber si un usuario se autentica en Active Directory:

Function Test-ADAuthentication {
    param($username,$password)
    (new-object directoryservices.directoryentry "",$username,$password).psbase.name -ne $null
}

Test-ADAuthentication "test" "Password1"

Sin embargo, por mi vida no puedo descubrir cómo:

  1. Compruebe si es necesario restablecer la contraseña, mientras
  2. La verificación de las credenciales enviadas funcionó con su última contraseña.

¿Cómo se podría hacer esto?

Respuesta1

Las credenciales se pueden probar ejecutando un proceso. Un ejemplo a continuación,

Start-Process -FilePath cmd.exe /c -Credential (Get-Credential -UserName $username -Message 'Test Credential')

O simplemente:

Start-Process -FilePath cmd.exe /c -Credential (Get-Credential)

Se le presentará un mensaje para que ingrese una contraseña. Si necesita leer la contraseña de una cadena (mala práctica), debe inicializar el objeto de credencial de antemano. Se pueden encontrar más detalles sobre ese método en la ayuda.

Get-Help Get-Credential

Respuesta2

A continuación se muestra una manera de obtener los días restantes para un usuario determinado antes de que caduque su contraseña:

(([datetime]::FromFileTime((Get-ADUser user -Properties "msDS-UserPasswordExpiryTimeComputed")."msDS-UserPasswordExpiryTimeComputed")) - (Get-Date)).TotalDays

Si el número es 0 o negativo, entonces la contraseña ha caducado.

Este comando comprobará si la cuenta de usuario está bloqueada:

(Get-ADUser user -Properties LockedOut).LockedOut

En cuanto a la segunda pregunta, si entendí correctamente, desea ver si la contraseña ingresada actualmente es la misma que la utilizada anteriormente.

Hasta donde yo sé, esto no es posible: con ciertas políticas, AD puede mantener un registro de contraseñas anteriores, pero no están expuestas al acceso externo.

información relacionada