Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
Script:
# Este script verifica quando a senha dos usuários do domínio irá expirar e envia um aviso por e-mail se estiver dentro do limite de dias especificado.
# Importa o módulo Active Directory
Import-Module ActiveDirectory
# Define o número de dias para aviso
$diasParaAviso = 5
# Obtém a data atual
$dataAtual = Get-Date
# Obtém todos os usuários do Active Directory
$usuarios = Get-ADUser -Filter * -Properties "msDS-UserPasswordExpiryTimeComputed", EmailAddress
foreach ($usuario in $usuarios) {
# Obtém a data de expiração da senha
$dataExpiracao = [datetime]::FromFileTime((Get-ADUser $usuario -Properties "msDS-UserPasswordExpiryTimeComputed")."msDS-UserPasswordExpiryTimeComputed")
# Calcula a diferença em dias entre a data de expiração e a data atual
$diasRestantes = ($dataExpiracao - $dataAtual).Days
# Se a senha expirar em menos ou igual aos dias especificados, envia um aviso
if ($diasRestantes -le $diasParaAviso -and $diasRestantes -ge 0) {
$assunto = "Aviso: Sua senha irá expirar em $diasRestantes dias"
$mensagem = "Olá $($usuario.Name),`n`nSua senha irá expirar em $diasRestantes dias. Por favor, altere sua senha antes do prazo para evitar problemas de acesso.`n`nAtenciosamente,`nEquipe de TI"
# Envia o e-mail (necessário configurar o servidor SMTP)
Send-MailMessage -To $usuario.EmailAddress -From "ti@empresa.com" -Subject $assunto -Body $mensagem -SmtpServer "smtp.empresa.com"
}
}
Como Executar o Script:
.ps1
, por exemplo, AvisoExpiracaoSenha.ps1
."smtp.empresa.com"
pelo endereço do seu servidor SMTP..\AvisoExpiracaoSenha.ps1
.