У нас возникают проблемы при использовании команды Invoke-Command в Powershell для ручного запуска удаленной запланированной задачи в другой системе.
Вот ситуация: на сервере XXX есть запланированное задание, которое запускает скрипт Powershell. Внутри этого скрипта в какой-то момент он запускает следующую строку кода: Invoke-Command -Computer "SLMTL-WSUS01.XXX.inc "-ScriptBlock {schtasks /run /tn" Центр обновления Windows - Отчеты по электронной почте "}. Вызванная запланированная задача просто вызывает другой сценарий Powershell, который получает содержимое из файла HTML и отправляет его по электронной почте.
Проблема заключается в следующем: когда запланированная задача вызывается с помощью команды Invoke-Command
, запускается сценарий Powershell задачи, но электронное письмо не отправляется.
Если я запускаю задачу вручную, она работает нормально, и письмо отправляется.
Обе запланированные задачи выполняются как СИСТЕМА, если это имеет значение.
Причина, по которой мы делаем это удаленно, заключается в том, что мы не хотим разрешать нескольким серверам отправлять электронную почту внутри и хотим ограничить это одним.
Кто-то знает, почему это происходит?
Заранее спасибо!
РЕДАКТИРОВАТЬ: Вот правильно отформатированный скрипт:
$Content = Get-Content "\\slmtl-wsus01.XXX.inc\Update_Reports\*.html"
$messageParameters = @{
Subject = "Windows Update report - $((Get-Date).ToShortDateString())"
Body = $Content | Out-String
from = "wsusalerts@XXX.com"
To = "apilon@XXX.com"
SmtpServer = "smtp.XXX.com"
}
Send-MailMessage @messageParameters -BodyAsHtml