显示count等于value的结果

时间:2016-11-08 10:38:07

标签: powershell count where-clause

我想通过几秒钟内的平均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

什么都不返回。

1 个答案:

答案 0 :(得分:1)

使用Group-Object cmdlet代替Measure对结果进行分组。我想你只想获得UserName属性:

$Result = $TopProcess | 
    Where {$_.CPU -gt $Threshold} | 
    group 'User Name' |  
    Where Count -eq $NoRS | 
    select Name