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"