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
Powershell 有没有办法在Get service和Get WmiObject命令中包含服务实例?_Powershell_Windows Services - Fatal编程技术网

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

Powershell 有没有办法在Get service和Get WmiObject命令中包含服务实例?,powershell,windows-services,Powershell,Windows Services,我正在尝试编写一个脚本,如果服务存在,它将停止服务。我要停止的服务有多个实例,我试图根据给定的实例名获取服务(它显示为ServiceName$InstanceName) 奇怪的是,当我运行以下命令时: Get-Service -Name "ServiceName*" | Format-List -Property Name 或 结果如下: Name : ServiceName$InstanceNameA Name : ServiceName$InstanceNameB Name : Ser

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

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

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

结果如下:

Name : ServiceName$InstanceNameA

Name : ServiceName$InstanceNameB

Name : ServiceName$InstanceNameC

Name : ServiceName$InstanceNameD

Name : ServiceName$InstanceNameE

Name : ServiceName$InstanceNameF
鉴于上述结果,我假设如果我想用
InstanceNameC
实例搜索名为
ServiceName
的服务,我可以执行以下操作

Get-Service -Name "ServiceName$InstanceNameC"

但它并不像我预期的那样有效


我想一个冗长的问题是:我是否可以通过传递正确的服务名称
ServiceName$InstanceName
来查找/获取特定的服务实例?

我显然没有使用powershell的经验,但只是发现添加backtick(`)转义将服务名与实例名分开的美元符号可以使Get服务按预期工作

以下是有效的方法:

Get-Service -Name "ServiceName`$InstanceNameC"

我显然没有使用powershell的经验,但我发现添加backtick(`)以转义将服务名称与实例名称分开的美元符号可以让Get服务按我的预期工作

以下是有效的方法:

Get-Service -Name "ServiceName`$InstanceNameC"

您试图检索的服务的名称是什么?您可以使用
Get Service | Get Member
查看您可以使用
Where Object
@过滤掉的属性,这些属性不正确请参见我的答案。我在发布我的问题后找到了这个答案:可能是@TheIncorrigible1的复制品,希望我们能找到更好的复制品。这一个并没有真正解释正在发生的事情,也没有给出其他简单的解决方案。您试图检索的服务的名称是什么?您可以使用
Get Service | Get Member
查看您可以使用
Where Object
@过滤掉的属性,这些属性不正确请参见我的答案。我在发布我的问题后找到了这个答案:可能是@TheIncorrigible1的复制品,希望我们能找到更好的复制品。这并不能真正解释正在发生的事情,也不能给出其他简单的解决方案。
$
用于变量。它们将在双引号内展开。它试图找到名为“ServiceName”的服务名称,因为您没有名为
$instancename
的变量。这也会起作用:
Get WmiObject-Class Win32_Service-Filter'name=“ServiceName$InstanceNameC”
起作用,而我的原因(看起来非常相似)似乎是因为我在单引号之外有双引号。
$
用于变量。它们将在双引号内展开。它试图找到名为“ServiceName”的服务名称,因为您没有名为
$instancename
的变量。这也会起作用:
Get WmiObject-Class Win32_Service-Filter'name=“ServiceName$InstanceNameC”
起作用了,而我没有这样做的原因(看起来非常相似)似乎是因为我在单引号之外有双引号。
Get-Service -Name "ServiceName`$InstanceNameC"