Esse é o comportamento esperado e é por design. As redefinições administrativas não estão sujeitas a requisitos de idade ou histórico.
Eu tenho uma situação em que um domínio do AD com o qual estou trabalhando tem uma política de senha sensata o suficiente (por exemplo, PasswordHistoryCount
, MinPasswordLength
configurações, etc.). Posso alterar a senha de um determinado usuário por meio do PowerShell com bastante facilidade usando o cmdlet Set-ADAccountPassword
, assim:
Set-ADAccountPassword
-Identity "Forename.Surname"
-NewPassword (ConvertTo-SecureString -AsPlainText "incorrectp0nypetrolnail" -Force)
-OldPassword (ConvertTo-SecureString -AsPlainText "correcth0rsebatterystaple" -Force)
O acima também gera uma exposição ADPasswordComplexityException
quando a política de senha é violada ao tentar reutilizar uma senha, ou seja, com a mensagem:
"The password does not meet the length, complexity, or history requirement of the domain."
No entanto, a política do histórico de senhas não está sendo aplicada quando as senhas são redefinidas. Isso ocorre ao usar a interface do usuário "Usuários e computadores do Active Directory" ou ao usar o cmdlet Set-ADAccountPassword
(suponha que a senha abaixo tenha sido usada anteriormente pelo usuário):
Set-ADAccountPassword
-Identity "Forename.Surname"
-Reset
-NewPassword (ConvertTo-SecureString -AsPlainText "correcth0rsebatterystaple" -Force)
Eu esperava que a mesma exceção de ADPasswordComplexityException
tivesse sido levantada nessa situação.
Então - existe alguma maneira de impedir que um usuário reutilize senhas quando uma redefinição de senha é feita? Se não, quais são as razões sensatas para permitir isso?