Bóson Treinamentos em Ciência e Tecnologia

Configurar Horário de Logon no Active Directory via PowerShell

Horário de Logon no AD via Windows PowerShell

Horário de Logon no ADDS via PowerShell

Neste tutorial vamos mostrar como criar um script que permite ajustar o horário de logon do AD para diversos usuários de uma só vez, poupando muito tempo de configuração do administrador.

Vamos usar um modelo (template) para o horário de logon, o que significa que teremos um usuário de teste de logon “teste01” já com o horário de logon desejado pré-configurado, e usaremos as informações desse usuário como modelo para os demais usuários que receberão a restrição de horários.

Nosso usuário atual de teste possui a seguinte configuração de horário de logon:

Neste modelo, o usuário não pode se logar aos sábados e domingos, e durante a semana o logon só é permitido entre as 08:00 e as 19:00, sendo negado nos demais horários.

Queremos aplicar essa mesma configuração a uma grupo de outros usuários sem ter de ajustar um por vez. Para isso usaremos um script do PowerShell associado a uma lista de usuários salva em um arquivo de texto. Vou chamar esse arquivo de “usuários.txt“, e salvá-lo no diretório raiz (C:\).

O arquivo usuários.txt deve conter os nomes de logon dos usuários que serão configurados, um por linha, como no exemplo:

Vamos ao script em si:

Comandos do script

Digite os comandos no Windows PowerShell ISE, executando-o como Administrador:

1 – Se necessário, importe o módulo do Windows PowerShell:

Import-Module ActiveDirectory -ErrorAction SilentlyContinue

2 – Vamos criar um array para armazenar os horários de logon configurados em nosso usuário de teste (teste01) que serão atribuídos aos demais usuários:

[array]$horaLogon = (Get-ADUser teste01 -Properties logonHours).logonHours

3 – Agora vamos ler o arquivo de texto que contém os nomes dos demais usuários que receberão os horários de logon, iterar sobre cada usuário e atribuir as configurações presentes no array $horaLogon (você deve estar o mesmo diretório onde o arquivo de usuários foi salvo, ou então fornecer o caminho completo até ele no comando):

foreach ($user in Get-Content C:\usuários.txt) { 
Get-ADUser -Identity $user | Set-ADUser -Add @{logonhours=$horaLogon} 
}

Veja o script completo e pronto para ser executado no PowerShell ISE:

Agora basta executar o script e verificar se o horário de logon foi alterado corretamente para os usuários listados no arquivo.

Observação: Caso o horário de logon já esteja configurado para os usuários, você deve substituir a opção -Add do comando por -Replace, ficando assim:

foreach ($user in Get-Content C:\usuários.txt) { 
Get-ADUser -Identity $user | Set-ADUser -Replace @{logonhours=$horaLogon} 
}

No próximo tutorial vamos explicar como funciona internamente o horário de logon no Active Directory, o que permitirá efetuar configurações mais avançadas, como ajustar manualmente cada horário e criar scripts mais específicos e flexíveis.

Sair da versão mobile