Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PowerShell Get服务返回结果的速度非常慢_Powershell - Fatal编程技术网

PowerShell Get服务返回结果的速度非常慢

PowerShell Get服务返回结果的速度非常慢,powershell,Powershell,我尝试了几种收集服务数据的方法,但似乎无法找到一种满足我所有需求的方法获取服务工作正常,但当我插入一对Where对象属性时速度非常慢获取CimInstance的速度要快得多,但我不知道如何排除服务。有什么想法吗 以下是我迄今为止的代码尝试。在我添加Where对象之前,这个是快速的。如果我这样做,则需要花费3倍的时间: Get-Service -DisplayName * -ComputerName $Name -Exclude $ExcludedServices | Where-Object {

我尝试了几种收集服务数据的方法,但似乎无法找到一种满足我所有需求的方法<代码>获取服务工作正常,但当我插入一对
Where对象
属性时速度非常慢<代码>获取CimInstance的速度要快得多,但我不知道如何排除服务。有什么想法吗

以下是我迄今为止的代码尝试。在我添加
Where对象之前,这个是快速的。如果我这样做,则需要花费3倍的时间:

Get-Service -DisplayName * -ComputerName $Name -Exclude $ExcludedServices | Where-Object { $_.status -eq 'Running' -or $_.StartType -eq 'Automatic' }
这一个工作得更快,但我不知道如果需要,如何排除服务列表:

Get-CimInstance -ClassName Win32_Service -ComputerName $Name | Where-Object { $_.state -eq 'Running' -or $_.StartMode -eq 'Auto' }
如果需要,我不知道如何排除服务列表

允许您对查询施加约束:

Get-CimInstance Win32_Service -Filter 'Name != "excludedSvc"'
您还可以根据查询中的
状态
开始模式
属性限制项目,这样远程计算机就不必发回所有服务:

Get-CimInstance Win32_Service -Filter 'Name != "excludedSvc" AND State = "Running" AND StartMode = "Auto"'

这确实对我有用。但是我如何排除多个服务而不是一个。。。我似乎在网上找不到任何有用的例子。啊,我用的是OR而不是AND。非常感谢。