【发布时间】:2020-08-05 14:07:50
【问题描述】:
我希望此脚本向我显示当前正在运行的 WinWord 进程并发送电子邮件警报。目前,如果有 WinWord 进程正在运行,则第一个脚本有效,并在电子邮件中列出它们,但如果它们不是运行脚本的 WinWord 进程,则会失败,建议参数为空或 null,找不到进程。
第二个脚本在没有进程的情况下有效,如果没有 WinWord 进程在运行,则不会抛出 null 或空参数,但仅通过电子邮件显示 true 或 false。不是正在运行的进程列表。还想在脚本中添加一些写主机以供电子邮件输出说。以下是运行的 WinWord 进程数。
我是 PowerShell 的新手。我边走边学。我还为第一个脚本使用了 -erroraction quietlycontinue,但是当输出到电子邮件时,它仍然失败,参数为空或空。
以下是脚本。
如果进程没有运行则不起作用,不能接受 null 或空的参数。如果进程运行正常。
$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
如果参数为 null 或为空,但电子邮件警报显示为 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
【问题讨论】:
-
请用代码格式包装您的代码,以便于阅读。说明链接在您用于创建问题的页面上...