我正在創建一個腳本來處理我工作的學區的無人蔘與域加入。我們有幾個處理sysprep的IT人員,所以我創建了一個腳本來加密密碼以用於Add-Computer。在Windows中驗證密碼匹配Powershell
我遇到的麻煩是腳本需要兩個密碼條目,如果它們不匹配就重新啓動,但如果它們繼續,則繼續。我已經嘗試到目前爲止:
$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
}
我想讓腳本自動使用戶重試,直到兩個密碼匹配。
編輯:想通了!這裏是供參考的代碼。感謝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"
一般來說加密的密碼是錯誤的解決方案,當攻擊者獲得管理員權限時,他將得到包含加密密碼和加密密鑰的數據庫。 – zaph
我認爲,但我們是一個相對較小的地區,而且我的同事們每次都厭倦了爲域加入而輸入證書,所以我的腳本在第一次登錄時運行,然後(通過unattend.xml)另一次C:\ Windows \ Panther中的批處理文件刪除所有內容,一旦域加入。此外,加密的密碼是作爲主圖像創建的,在域加入之前永遠不會獲得互聯網訪問權限。只要域加入,文件就會再見。有人不得不偷盜硬盤。 –