Bonjour,

J'ai fait un script PowerShell récupérant dans l'active directory les dates d'expirations des utilisateurs du mois à venir, les mettant dans un tableau et les envoyant par mail.
Les informations de mon tableau sont triées de la sorte :
Nom Date de création Date d'expiration Jours restants

Ma problématique c'est que je reçoit correctement le mail mais vide... il n'arrive pas a prendre les infos depuis mon AD et je ne comprend pas vraiment pourquoi, voici le script en question

Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
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)


Avez-vous une idée de mon erreur c'est un script que j'ai trouver sur le NET et qui fonctionne chez d'autre personne...
Je fais le test sur mes 2 DC, même problème sur les deux

Je vous remercie d'avance de votre aide.
Cordialement.