PowerShell非常新。我必须写一个
将首先根据命名方案找到VM,然后是
查询每个VM以查找是否有PowerShell进程在特定用户,例如";userA";,如果在任何VM上都找不到进程然后
它将编译一个没有进程的VM的列表运行,然后通过电子邮件发送。
我已经弄清楚了第一部分,但是,我在第二部分遇到了困难。下面的代码总是返回"0";进程未运行";当我知道它在虚拟机上运行时。我认为问题在于PowerShell进程不止一个。有人能指引我吗?
$process = Invoke-Command -ComputerName "vmonnetwork" -ScriptBlock { Get-Process -name "powershell" -IncludeUserName } | Select-Object UserName
if ($process -eq "userA") {
Write-Host "Process is running"
}
else {
Write-host "Process is not running"
}
尝试对代码进行以下更改之一(而不是同时进行(:
将if ($process -eq "userA")
更改为if ($process.UserName -eq "userA")
或
将Select-Object UserName
更改为Select-Object -ExpandProperty UserName