我遇到的情況是,我正在使用的 AD 網域具有足夠合理的密碼策略(例如,足夠高的PasswordHistoryCount
設定MinPasswordLength
等)。我可以使用 cmdlet 透過 PowerShell 輕鬆變更給定使用者的密碼Set-ADAccountPassword
,如下所示:
Set-ADAccountPassword
-Identity "Forename.Surname"
-NewPassword (ConvertTo-SecureString -AsPlainText "incorrectp0nypetrolnail" -Force)
-OldPassword (ConvertTo-SecureString -AsPlainText "correcth0rsebatterystaple" -Force)
ADPasswordComplexityException
當嘗試重新使用密碼時違反密碼原則時,上述內容也會引發預期,即顯示以下訊息:
"The password does not meet the length, complexity, or history requirement of the domain."
但是,重設密碼時不會強制執行密碼歷史記錄原則。當使用「Active Directory 使用者和電腦」UI 或使用 cmdlet 時Set-ADAccountPassword
(假設使用者之前已使用以下密碼),就會發生這種情況:
Set-ADAccountPassword
-Identity "Forename.Surname"
-Reset
-NewPassword (ConvertTo-SecureString -AsPlainText "correcth0rsebatterystaple" -Force)
我以為ADPasswordComplexityException
在這種情況下也會引發同樣的異常。
那麼,有什麼方法可以防止使用者在重設密碼時重複使用密碼嗎?如果不是,允許這樣做的合理理由是什麼?
答案1
這是預期的行為,也是設計使然。行政重置不受年齡或歷史要求的限制。