我想通过几秒钟内的平均CPU使用率来确定前几个进程。每个结果都需要列出PID,进程名称和用户ID。 该脚本需要在另一个域中同时在多个服务器上运行。这些服务器的凭据与运行它的计算机不同。
我无法让A circular reference has been detected (configured limit: 1).
工作,因为它不接受Get-Process
参数。
由于脚本限制在这些服务器上,–credentials
将无效。
我在Invoke-Command
中最终得到的是:
$TopProcess
但是我只需要列出CPU超过15且列出三次的结果,但只列出每次一次
User Name CPU ID Description
--------- --- -- -----------
User73 25 68680 App89.exe
User73 25 68888 App57.exe
LOCAL SERVICE 2.5 63868 WmiPrvSE.exe
User48 0 66308 App38.exe
User48 0 62608 App54.exe
User73 25 68888 App57.exe
User73 25 68680 App89.exe
LOCAL SERVICE 2.5 63868 WmiPrvSE.exe
User48 0 59336 dwm.exe
User48 0 52528 App57.exe
User73 25 68888 App57.exe
User73 25 68680 App89.exe
User39 19.5 48792 App43.exe
User39 2.5 65996 App48.exe
LOCAL SERVICE 2.5 63868 WmiPrvSE.exe
什么都不返回。
答案 0 :(得分:1)
使用Group-Object
cmdlet代替Measure
对结果进行分组。我想你只想获得UserName
属性:
$Result = $TopProcess |
Where {$_.CPU -gt $Threshold} |
group 'User Name' |
Where Count -eq $NoRS |
select Name