我正在尝试编写一个停止服务的脚本(如果存在)。我想要停止的服务有多个实例,我试图根据给定的实例名称获取服务(它显示为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
的正确服务名来查找/获取特定服务实例吗?
答案 0 :(得分:1)
我显然没有使用powershell,但只是发现添加反引号(`)以转义将服务名称与实例名称分开的美元符号,这样Get-Service就可以按照我的预期工作。 / p>
以下是有效的:
Get-Service -Name "ServiceName`$InstanceNameC"