Sur une plate-forme Windows, existe-t-il un utilitaire de ligne de commande que je peux passer un username
, password
domain 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é)?
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.
À 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:\>
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!
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.