Le code suivant que je souhaite utiliser pour envoyer par e-mail une liste de personnes dont le compte publicitaire expire. Cependant, je reçois cette erreur:

Search-ADAccount: le terme «Search-ADAccount» n'est pas reconnu comme le nom d'une applet de commande, d'une fonction, d'un fichier de script ou d'un programme exécutable. Vérifiez l'orthographe du nom, ou si un chemin a été inclus, vérifiez que le chemin est correct et réessayez. Dans C: \ Users \ georgeh \ Desktop \ ADAccount Test.PS1: 8 char: 18 + $ Message.body = Search-ADAccount -AccountExpiring -TimeSpan "30" | Select-Objec ... + ~~~~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (Search-ADAccount: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

Search-ADAccount: le terme «Search-ADAccount» n'est pas reconnu comme le nom d'une applet de commande, d'une fonction, d'un fichier de script ou d'un programme exécutable. Vérifiez l'orthographe du nom, ou si un chemin a été inclus, vérifiez que le chemin est correct et réessayez. Dans C: \ Users \ test \ Desktop \ ADAccount Test.PS1: 15 car: 17 + $ Message.body = Search-ADAccount -AccountExpiring -TimeSpan "30" | Select-Object ... + ~~~~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (Search-ADAccount: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

Code:

$smtpServer = "test.local" 
$smtpFrom = "gh@test.com" 
$smtpTo = "gh@test.com"; 
$messageSubject = "These users AD Accounts are expiring"
$Message = New-Object System.Net.Mail.mailmessage $smtpFrom, $smtpTo 
$Message.Subject = $messageSubject
$content = 'TEST'

$Message.body =  Search-ADAccount -AccountExpiring -TimeSpan "30" |
        Select-Object Name,AccountExpirationDate |
        Sort-Object AccountExpirationDate |
        ConvertTo-HTML -Head $style 

$Message.IsBodyHtml = $true

$style = "<style>BODY{font-family: Arial; font-size: 10pt;}" 
$style = $style + "TABLE{border: 1px solid red; border-collapse: collapse;}" 
$style = $style + "TH{border: 1px solid red; background: #dddddd; padding: 5px; }" 
$style = $style + "TD{border: 1px solid red; padding: 5px; }" 
$style = $style + "</style>" 

$Message.body = Search-ADAccount -AccountExpiring -TimeSpan "30" |
    Select-Object Name,AccountExpirationDate |
    Sort-Object AccountExpirationDate |
    ConvertTo-HTML -Head $style 

$smtp = new-Object Net.Mail.SmtpClient($smtpServer) 

if ($content) {
    $smtp.Send($message) 
}
0
glh 4 nov. 2019 à 16:25

1 réponse

Toute votre syntaxe semble bonne. Êtes-vous sûr que le module ActiveDirectory est installé sur l'ordinateur qui exécute ce script?

Puisque vous avez commenté que le script s'exécute en dehors d'une variable. Pour les tests uniquement, essayez d'exécuter cette commande en dehors de la variable mais toujours dans ce script?

1
TheIdesOfMark 4 nov. 2019 à 13:49