web-dev-qa-db-fra.com

Existe-t-il un utilitaire de ligne de commande Windows pour vérifier les informations d'identification de l'utilisateur?

Sur une plate-forme Windows, existe-t-il un utilitaire de ligne de commande que je peux passer un username, passworddomain name à afin de vérifier les informations d'identification (ou éventuellement donner une erreur indiquant que le compte est désactivé, n'existe pas ou a expiré)?

19
wiki

Vous pouvez utiliser la commande Net Use En spécifiant le nom d'utilisateur et le mot de passe sur la ligne de commande (sous la forme Net Use \\unc\path /user:username password Et vérifier le errorlevel retourné pour vérifier si un justificatif d'identité est valide.

La commande runas fonctionnerait également, sauf que vous aurez plus de mal à tester la sortie.

Tester une information d'identification pour l'existence d'un compte serait une question d'utiliser Net User Ou dsquery. La commande Net User Ne vous dira pas si un compte est verrouillé, mais l'interrogation de l'attribut lockoutTime du compte d'utilisateur pourrait vous le dire.

14
Evan Anderson

À Powershell:

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

PS C:\> Test-ADAuthentication "dom\myusername" "mypassword"
True
PS C:\>

Référence: https://stackoverflow.com/questions/7663219/how-to-authenticate-an-user-in-activedirectory-with-powershell

14
user224310

Je voulais juste ajouter que puisque AD est un serveur LDAP, vous pouvez utiliser un outil de ligne de commande LDAP pour le "lier", confirmant ainsi s'il est actif ou non. Vous pouvez également vous lier en tant qu'utilisateur avec des privilèges plus élevés, puis rechercher AD en utilisant les principes LDAP.

Mais bon - rien de mal avec Powershell!

1
Gerard ONeill

Essaye ça:

Net Use \\%userdnsdomain% /user:%userdomain%\%username% *

% Errorlevel% est 0 si le mot de passe est OK.

Un astérisque à la fin de la phrase oblige à demander un mot de passe.

1
Vicente G.