Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.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,我以前这样做过,但记不起正确的命令(我想我使用的是instring或soemthign?) 我想列出所有运行中包含“sql”一词的windows服务 列出的所有windows服务如下所示: Get-Service 有没有一个instring函数可以这样做 Get-Service -Name *sql* 一个较长的备选方案是: Get-Service | where-object {$_.name -like '*sql*'} 许多cmdlet提供内置筛选并支持通配符。如果您检查帮助文件(获

我以前这样做过,但记不起正确的命令(我想我使用的是instring或soemthign?)

我想列出所有运行中包含“sql”一词的windows服务

列出的所有windows服务如下所示:

Get-Service
有没有一个instring函数可以这样做

Get-Service -Name *sql*
一个较长的备选方案是:

Get-Service | where-object {$_.name -like '*sql*'}
许多cmdlet提供内置筛选并支持通配符。如果您检查帮助文件(获取帮助获取服务-完整),您将看到

 -name <string[]>
     Specifies the service names of services to be retrieved. Wildcards are
     permitted. By default, Get-Service gets all of the services on the comp
     uter.

     Required?                    false
     Position?                    1
     Default value                *
     Accept pipeline input?       true (ByValue, ByPropertyName)
     Accept wildcard characters?  true
-名称
指定要检索的服务的服务名称。通配符是
被允许默认情况下,Get Service获取comp上的所有服务
尤特。
必修的?假的
位置?1.
默认值*
接受管道输入?true(按值、按属性名称)
是否接受通配符?真的
通常,如果cmdlet内置了过滤功能,这是首选方法,因为它通常更快、更高效。

在这种情况下,可能不会有太多的性能优势,但在V2中,您可以从远程计算机提取服务并进行过滤,这将是首选方法(发送回调用计算机的数据更少)。

您可以获得所有正在运行且具有sql的服务

 Get-Service | Where-Object {$_.Status -eq "Running"} | Where-Object {$_.Name -like "*sql*"}
如果您想了解更多信息,请参见此(没有太大区别)


希望它有帮助…

请输入以下命令:

Get-Service -Name '*<search string>*'
获取服务-名称'**'

以上答案很好,但这更有用:

Get-WmiObject -ComputerName <INSERT COMPUTER NAME> -Class Win32_Service | where-object {$_.name -like '*sql*'}
Get wmioobject-ComputerName-Class Win32_服务|其中对象{$\u.name-like'*sql*}

它允许在远程计算机上进行此查询。

搜索字符串可能在显示名称或服务名称中(例如,搜索
“*SQL*”
的服务名称不包括SQL集成服务…),因此我会过滤这两种:

get-service | Where-Object {$_.DisplayName -like "*MySearchString*" -or $_.ServiceName -like "*MySearchString*"}