Так что у меня проблема.
Я пытаюсь написать сценарии, которые проверяют список имен хостов во внешнем файле .txt, и отправлять оповещения по электронной почте, если один из них выходит из строя. У меня есть несколько проблем с этим, но главная из них сейчас заключается в том, что я не могу найти способ вставить переменную в строку темы или текст сообщения. Код, который я использую для отправки оповещения по электронной почте, теперь выглядит следующим образом:
send-mailmessage -to "$alertRecipient" -from "$alertSender" -subject "$alertSubject" -body "$alertBody" -smtpServer "$smtpServer"
Теперь я использовал много значений переменных в этой команде, и все они работают в некоторой степени. Я в основном смотрю на $alertSubject
и $alertBody
. Значения обеих этих переменных извлекаются из другого файла .txt и оба равны «$ selHost is offline!».
$selHost
- это переменная, которую я использую в скрипте, чтобы она равнялась имени хоста, над которым работает скрипт в любой момент времени. Если я сделаю write-host $selHost
любом месте скрипта, я получу что-то вроде «SomeComputerName» или «192.168.1.123», и его значение меняется каждый раз, когда скрипт переключается на следующий хост.
Я хочу, чтобы буквенное значение $selHost
было в теле сообщения оповещения при его отправке, но, как я его написал, когда отправляется оповещение, он просто говорит: «$ selHost находится в автономном режиме!» давая мне совершенно бесполезный уровень понимания природы потенциальной проблемы.
Вставьте ссылку на мой скрипт, как сейчас.
Команда Send-Mail-Message
в строке 30, $selHost
определена в строке 23, $alertSubject
определена в строке 10, $alertBody
определена в строке 12.
TL; DR: я хочу встроить значение переменной в аргументы команды Send-MailMessage
, но вместо этого я просто получаю имя переменной и не знаю, что делать.