Сценарий истечения срока действия учетной записи AD и отправки по электронной почте - PullRequest
0 голосов
/ 04 ноября 2019

Следующий код, который я хочу использовать для отправки по электронной почте списка людей, срок действия рекламного аккаунта которых истекает. Однако я получаю эту ошибку:

Search-ADAccount: термин «Search-ADAccount» не распознается как имя командлета, функции, файла сценария или работоспособной программы. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку. В 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

Поиск-ADAccount: термин «Search-ADAccount» не распознается как имя командлета, функции, файла сценария или работоспособной программы. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку. В C: \ Users \ test \ Desktop \ ADAccount Test.PS1: 15 char: 17 + $ Message.body = Search-ADAccount -AccountExpiring -TimeSpan "30" |Select-Object ... + ~~~~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (Search-ADAccount: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

Код:

$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 Ответ

1 голос
/ 04 ноября 2019

Весь ваш синтаксис выглядит хорошо. Вы уверены, что модуль ActiveDirectory установлен на компьютере, на котором выполняется этот сценарий?

Поскольку вы прокомментировали, что сценарий выполняется вне переменной. Только для тестирования, попробуйте запустить эту команду вне переменной, но все еще в этом сценарии?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...