-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathad-email-senha.ps1
48 lines (38 loc) · 1.53 KB
/
ad-email-senha.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<#
.NAME
ad-email-senha
.DESCRIPTION
Envia um email para os Usuários avisando sobre a expiracao da senha do Active Diretory.
.EXAMPLE
PS C:\> .\ad-email-senha.ps1
.NOTES
Name: Marcos Henrique
E-mail: [email protected]
#>
$dias_expiracao = 15 # Dias restantes para a expiracao da senha
$usuarios = Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} –Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed","mail" `
| Where-Object {$_.mail -ne $null } `
| Select-Object -Property "Displayname",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}},"Mail","SamAccountName" `
| Where-Object {$_.ExpiryDate -lt (Get-Date).AddDays($dias_expiracao) -and $_.ExpiryDate -gt (Get-Date) }
# Enviar email
$de = "[email protected]"
$smtp = "192.168.0.67"
foreach($usuario in $usuarios)
{
$dias = (([DateTime]$usuario.ExpiryDate) - (get-date)).Days
$para = $usuario.mail
$usuario = $usuario.SamAccountName
$dominio = (Get-ADDomain).Forest
$assunto = "Sua senha expira em $dias dias!"
$mensagem = @"
A senha do seu usuario ($dominio\$usuario) expira em $dias dias.
Se voce esta trabalhando remotamente conecte-se na VPN, em seguida pressione as teclas Ctrl + Alt + Del e selecione Alterar uma senha.
--
Seguranca da Informacao
"@
$para
$assunto
$mensagem
'*' * 80
Send-MailMessage -Body $mensagem -From $de -SmtpServer $smtp -Subject $assunto -To $para
}