Powershell - Testez les informations d'identification de l'utilisateur dans AD, avec réinitialisation du mot de passe

8

Je peux utiliser Powershell avec succès pour savoir si un utilisateur s'authentifie dans Active Directory:

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

Test-ADAuthentication "test" "Password1"

Cependant, je ne peux pas pour la vie de moi trouver comment:

  1. Vérifiez si le mot de passe doit être réinitialisé,
  2. La vérification des informations d'identification envoyées a fonctionné sur leur dernier mot de passe.

Comment pourrait-on s'y prendre?

dthree
la source
solution un peu meilleure au même problème ici: stackoverflow.com/questions/7663219/…
Nick Kavadias

Réponses:

8

Les informations d'identification peuvent être testées en exécutant un processus. Un exemple ci-dessous,

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

Ou simplement:

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

Vous serez invité à entrer un mot de passe. Si vous devez lire le mot de passe dans une chaîne (mauvaise pratique), vous devez au préalable initialiser l'objet d'informations d'identification. Vous trouverez plus de détails sur cette méthode dans l'aide.

Get-Help Get-Credential
MFT
la source
Vous pourriez trouver que ce processus de démarrage ne fonctionnera pas de toute façon si l'utilisateur n'a pas de droits d'accès à distance .... J'ai trouvé les réponses ici utiles. serverfault.com/questions/276098/…
andrew pate