私が使用している AD ドメインには、十分に適切なパスワード ポリシー (十分に高いPasswordHistoryCount
、設定など) が導入されています。次のように、コマンドレットMinPasswordLength
を使用して、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 を使用する場合、またはSet-ADAccountPassword
次のようなコマンドレットを使用する場合に発生します (以下のパスワードはユーザーが以前に使用したことがあるものと想定します)。
Set-ADAccountPassword
-Identity "Forename.Surname"
-Reset
-NewPassword (ConvertTo-SecureString -AsPlainText "correcth0rsebatterystaple" -Force)
この状況でも同じADPasswordComplexityException
例外が発生すると予想していました。
では、パスワードのリセット時にユーザーがパスワードを再利用できないようにする方法はあるのでしょうか? ない場合、これを許可する合理的な理由は何でしょうか?
答え1
これは想定された動作であり、設計によるものです。管理リセットには、経過時間や履歴の要件は適用されません。