sexta-feira, 16 de janeiro de 2015

Active Directory: Alterando a Data de Modificação de Senha

Esta semana precisávamos expirar a senha dos usuários aqui da rede AD, mas queríamos dar um prazo de alguns dias para eles não sofrerem tanto com isso. Mas como faremos para definir uma data específica para a expiração das senhas dos usuários no AD? Como expirar as senhas de diferentes contas ao mesmo tempo?

Como as Senhas Expiram?


Senhas expiram após um determinado período de tempo a partir da data de criação ou alteração da mesma. Por exemplo: A equipe de segurança decide que a partir de hoje as senhas dos usuários devem ser alteradas a cada 30 dias. O usuário que alterar sua senha hoje só será solicitado a troca-la daqui a 30 dias. Porém, o usuário que alterou sua senha semana passada, isto é, a 7 dias atrás, deverá altera-la novamente daqui a 23 dias. Usuários que alteraram sua senha a mais de 30 dias já serão solicitados a altera-la ainda hoje pois sua senha já expirou.

Desta forma fica impossível que o servidor solicite a troca da senha de todos os usuários ao mesmo tempo, afinal, cada conta teve sua senha alterada em diferentes datas. Precisamos então alterar a data de criação ou modificação da senha dos usuários para uma mesma data, e assim as senhas expirariam ao mesmo tempo

Como podemos alterar esta data?


Alterando o valor do atributo pwdLastSet na conta do usuário. Este atributo armazena a data em que a senha da conta foi criada ou modificada, porém só podemos utilizar os valores 0 ou -1. Não é possível alterar o campo para outro mesmo que este represente uma data e hora.

O valor 0 zera a data de alteração da senha, definido o valor do campo como "(nunca)". Então, só após a alteração da senha será definida a data de modificação pelo próprio sistema ao atributo pwdLastSet.

O valor -1 corresponde ao maior inteiro permitido a um atributo de 64-bit, 2^63-1. Isto fará com que o sistema preencha o atributo pwdLastSet com a data e hora atual.
 

Solução


Podemos alterar o atributo pwdLastSet das contas através do Console de Gerenciamento de Usuários e Computadores do Active Directory, ou via Power Shell Script.

Alterando via Console de Gerenciamento


1. Abra o Console de Gerenciamento de Usuários e Computadores do Active Directory e ative a opção Recursos Avançados (Advanced Features).


2. Abra as Propriedades de uma conta de usuário e clique na aba Editor de Atributos (Attribute Editor).


3. Desça até o atributo pwdLastSet, selecione-o e clique em Editar.



4. Altere o valor do campo para 0 (zero) e clique em OK.


5. Note que agora o valor do atributo é "(nunca)". Clique em OK novamente para confirmar e fechar a janela de Propriedades.

6. Abra novamente as Propriedades da conta, selecione a aba Editar Atributos e edite o campo pwdLastSet.

7. Altere o valor para -1, clique em OK para confirmar o valor e em OK novamente para fechar a janela de Propriedades.

8. Esta feito! Agora o valor do atributo pwdLastSet é a data a atual. Para conferir abra as Propriedades da conta, selecione a aba Editar Atributos e localize o campo pwdLastSet.


Alterando via PowerShell Script


1. Abra o console PowerShell e importe o módulo ActiveDirectory para carregar os cmdlets para esta sessão.

Import-Module ActiveDirectory

2. Execute o comando abaixo, substituindo a palavra nomedeusuario pelo SamAccountName da conta, para carregar o atributo pwdLastSet em uma variável.

$User = Get-ADUser nomedeusuario -properties pwdlastset

3. Defina o valor do atributo como 0 (zero) e confirme a alteração.

$User.pwdlastset = 0
Set-ADUser -Instance $User

4. Em seguida defina o valor para -1 e confirme a alteração.

$user.pwdlastset = -1
Set-ADUser -instance $User

5. Esta feito! Agora o valor do atributo pwdLastSet é a data a atual. Para conferir, execute os comandos abaixo, substituindo a palavra nomedeusuario pelo SamAccountName da conta:

$user = Get-ADUser nomedeusuario -Properties pwdlastset
Get-Date($user.pwdlastset)

Estas e outras dicas aqui no IT Way of Life.

Gostou? Compartilhe!

Nenhum comentário:

Postar um comentário