8 votes

Vérifier la concordance des mots de passe dans Windows Powershell

Je suis en train de créer un script pour gérer la jonction de domaines sans surveillance pour le district scolaire où je travaille. Nous avons plusieurs informaticiens qui gèrent sysprep, donc je crée un script qui cryptera les mots de passe à utiliser pour Add-Computer.

Ce qui me pose problème est d'avoir un script qui prend deux entrées de mot de passe, et redémarre s'ils ne correspondent pas, mais continue s'ils correspondent. Ce que j'ai essayé jusqu'à présent :

$s = {write-host "running script}
&$s
$pwd1 = Read-Host -AsSecureString "Enter Password"
$pwd2 = Read-Host -AsSecureString "Enter Again"
If($pwd1 -ceq $pwd2) {
Write-host "match"
} else {
&$s
}

Je voudrais que le script fasse automatiquement réessayer l'utilisateur jusqu'à ce que les deux mots de passe correspondent.

EDIT : J'ai trouvé la solution ! Voici le code pour référence. Merci à RowdyVinson !

do {
Write-Host "I am here to compare the password you are entering..."
$pwd1 = Read-Host "Password" -AsSecureString
$pwd2 = Read-Host "Re-enter Password" -AsSecureString
$pwd1_text = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($pwd1))
$pwd2_text = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($pwd2))
}
while ($pwd1_text -ne $pwd2_text)
Write-Host "Passwords matched"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X