Automatizar atividades começa a virar um vício quando você percebe que não faz sentido ficar ativando e desativando as contas do AD dos usuários que saem e voltam de férias. Partindo do princípio de que as férias normalmente são agendadas com muita antecedência e de que o RH possui essas informações, fica fácil montar um script que leia um arquivo de texto, por exemplo.
O arquivo base possui os campos separados por “,” e ficaria assim:
Nome,usuario,datainic,datafim
Caroline Souza,caroline.souza,01/10/2018,21/10/2018
O script vai ler o arquivo e verificar se a data de hoje bate com a data de início das férias, se for igual a conta é desabilitada e é enviado um e-mail para a TI, RH ou quem quer que seja informando que a conta foi desabilitada.
Para a liberação da conta a comparação não é feita com a data de hoje, mas a de ontem, até porque a data final das férias ainda é um dia de férias e colaborador só volta a trabalhar no dia posterior. Ou seja, se o fim das férias foi ontem, então libere a conta do colaborador hoje. E da mesma forma que o anterior, um e-mail é enviado.
$Date = Get-Date -format d
$yesterday = (Get-Date).adddays(-1).ToString(“dd/MM/yyyy”)Import-Csv “D:\ScriptsAD\ferias.txt” | ForEach-Object {
If ($_.datainic -eq $Date) {
Disable-ADAccount -Identity $_.usuario
Send-MailMessage -to “meu-email@meu_dominio.com.br” -From “server1@meu_dominio.com.br” -Subject “Usuario $($_.usuario) iniciou as ferias em $($_.datainic).” -body “Usuario $($_.usuario) iniciou as ferias em $($_.datainic).” -SmtpServer 127.0.0.1
}
If ($_.datafim -eq $yesterday) {
Enable-ADAccount -Identity $_.usuario
Send-MailMessage -to “meu-email@meu_dominio.com.br” -From “server1@meu_dominio.com.br” -Subject “Usuario $($_.usuario) voltou de ferias em $($Date).” -body “Usuario $($_.usuario) voltou de ferias em $($Date).” -SmtpServer 127.0.0.1
}
}