创建用户,如果成功则响应,并输入两个密码



我想创建一个本地管理员帐户。如果操作成功或不成功,我如何实现输出?我怎么能意识到我需要输入相同的密码两次出于安全原因,例如我犯了一个错误?如果密码不正确,我需要输入一遍

$admin = read-host "Name"
$Password = Read-Host "Passwort" -AsSecureString
New-LocalUser -Name "$admin" -password $password -Description "$admin" -FullName      "$admin" 
Add-LocalGroupMember -Name "administrators" -Member "$admin"
Set-LocalUser -Name "$admin" -PasswordNeverExpires 1 -AccountNeverExpires -UserMayChangePassword 0

你可以在无限循环中这样做。

如下所示:

$userName          = Read-Host "Name"
$securePassword    = Read-Host "Password" -AsSecureString
$plainTextPassword = [System.Net.NetworkCredential]::new("someone", $securePassword).Password
while ($true) {
$securePassword2 = Read-Host "Retype the password. Leave empty to cancel." -AsSecureString
# convert the SecureString to plain text
$plainTextPassword2 = [System.Net.NetworkCredential]::new("someone", $securePassword2).Password
if ([string]::IsNullOrWhiteSpace($plainTextPassword2)) { return }  # cancel: exit the script
if ($plainTextPassword -ceq $plainTextPassword2) { break }         # both passwords are equal, break the loop
}
try {
$newUser = New-LocalUser -Name $userName -Password $securePassword -Description $userName -FullName $userName -ErrorAction Stop
$newUser | Set-LocalUser -PasswordNeverExpires $true -UserMayChangePassword $false -AccountNeverExpires -ErrorAction Stop
Add-LocalGroupMember -Group "Administrators" -Member $userName -ErrorAction Stop
}
catch {
throw $_.Exception.Message
}

最新更新