有没有办法在Get-Service和Get-WmiObject命令中包含服务实例?

时间:2017-08-18 15:34:39

标签: powershell windows-services

我正在尝试编写一个停止服务的脚本(如果存在)。我想要停止的服务有多个实例,我试图根据给定的实例名称获取服务(它显示为ServiceName$InstanceName)。

奇怪的是当我运行以下命令时:

Get-Service -Name "ServiceName*" | Format-List -Property Name

Get-WmiObject -Class Win32_Service -Filter "name like 'ServiceName%'" | Format-List -Property Name

结果如下:

Name : ServiceName$InstanceNameA

Name : ServiceName$InstanceNameB

Name : ServiceName$InstanceNameC

Name : ServiceName$InstanceNameD

Name : ServiceName$InstanceNameE

Name : ServiceName$InstanceNameF

鉴于上述结果,我假设如果我想搜索名为ServiceName的服务,其实例为InstanceNameC,我可以执行类似

的操作
Get-Service -Name "ServiceName$InstanceNameC"

Get-WmiObject -Class Win32_Service -Filter "name='ServiceName$InstanceNameC'"

但它没有像我期望的那样工作。

我想长篇大论的问题是:我可以通过传递ServiceName$InstanceName的正确服务名来查找/获取特定服务实例吗?

1 个答案:

答案 0 :(得分:1)

我显然没有使用powershell,但只是发现添加反引号(`)以转义将服务名称与实例名称分开的美元符号,这样Get-Service就可以按照我的预期工作。 / p>

以下是有效的:

Get-Service -Name "ServiceName`$InstanceNameC"