web-dev-qa-db-fra.com

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

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?

8
dthree

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é à saisir 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
8
MFT