Я хочу, чтобы этот скрипт показывал мне процессы WinWord, которые выполняются в данный момент, и отправлял оповещение по электронной почте. В настоящее время 1-й сценарий работает, если есть запущенные процессы WinWord, и перечисляет их в электронном письме, НО, если они не являются процессами WinWord, выполняющими сценарий, происходит сбой, сообщая, что параметр пуст или пуст, не может найти процесс.
Второй сценарий работает, если нет никаких процессов и не выдает пустой или нулевой параметр, если нет запущенных процессов WinWord, а только показывает true или false по электронной почте. Не список запущенных процессов. Также хотел бы добавить хост записи в скрипт для вывода электронной почты, чтобы сказать. Ниже приведено количество запущенных процессов WinWord.
Я новичок ie в PowerShell. Я учусь как я go. Я также использовал -erroraction silentlycontinue для первого сценария, но при выводе на электронную почту он по-прежнему завершается с пустым или нулевым параметром.
Ниже приведены сценарии.
Не работает, если процесс не запущен, не может принять аргумент, который является нулевым или пустым. Если процесс работает идеально.
$winwords = (get-process -ComputerName Dummyserver -Name Winword |where-object { $_.Count -gt 0})| Out-String
Send-MailMessage -To "Dummyemail.co.uk" -From " Dummyemail.co.uk" -Subject "WinWord Check" -SmtpServer " Dummy.priv" -Body $winwords
Работает, если аргумент нулевой или пустой, но отсутствует оповещение по электронной почте, в котором говорится, что false или true, НО не отображает количество процессов, запущенных как первый скрипт.
$processname = "Winword"
$instanceisrunning = (get-process -ComputerName Dummyserver| where-object { $_.Name -eq $processname }).count -gt 0 | Out-String
Send-MailMessage -To "Dummyemail co.uk" -From "Dummyemail.co.uk" -Subject "WinWord Check" -SmtpServer " Dummyemail.priv" -Body $isrunning