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)
}
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?
De nouvelles questions
powershell
PowerShell est une ligne de commande multiplateforme et un utilitaire de script de Microsoft. Utilisez cette balise pour les questions sur l'écriture et l'exécution des scripts PowerShell UNIQUEMENT. Les questions de programmation spécifiques à la version multiplateforme PowerShell Core (Windows, macOS et Linux) doivent être étiquetées [powershell-core]. Les questions sur l'administration du système doivent être posées sur Super User ou Server Fault.