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 49 50 51 52 53 54 55 56 57 58
| Import-Module ActiveDirectory
$date = Get-Date # met la date dans la variable date
$exp = $date.AddMonths(1) # Ajoute un mois à la date pour prendre tout ce qui est entre aujourd'hui et un mois de plus
$file = "$HOME\Expiresous1mois.htm"
$comptes = Get-ADUser -Filter {AccountExpirationDate -ge $date -and AccountExpirationDate -le $exp} -Properties Name,WhenCreated,AccountExpirationDate
Write-Host -NoNewLine $comptes
$head = @'
<head>
<title>Compte expire sous 1 mois</title>
<style = type="text/css">
body {
background-color:white;
}
table {
border-width: 3px; border-style: solid;border-color: black;border-collapse: collapse;
}
th {
border-width: 1px;padding: 0px;border-style: solid;border-color: blue;
}
td {
text-align: center;border-width: 1px;padding: 5px;border-style: solid;border-color: blue;
}
</style>
</head>
<body>
<H2>Expiration prochaine des comptes AD (<1mois)</H2>
</body>
</html>
'@
$comptes |
select-object @{e={$_.Name};n='Nom commun'},
@{e={$_.whencreated};n='Date de création'},
@{e={$_.AccountExpirationDate};n='Expire'},
@{e={(($_.AccountExpirationDate) - $date).days};n='Jours restants'}|
Sort-Object 'Jours restants'|
ConvertTo-Html -Property "Nom commun","Date de création","Expire","Jours restants" -head $head | Out-File $file
$mail_from = "XXXXXX"
$mail_to = "XXXXXXX"
$mail_server = "XXXXXXX"
$mail_object = 'Expiration prochaine des comptes AD'
$mail_content = get-content $file
$message = new-object System.Net.Mail.MailMessage $mail_from, $mail_to, $mail_object, $mail_content
#$attachment = new-object System.Net.Mail.Attachment $file
#$message.Attachments.Add($attachment)
$message.IsBodyHtml = $true
$SMTPclient = new-object System.Net.Mail.SmtpClient $mail_server
$SMTPclient.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
$SMTPclient.Send($message) |
Partager