在服务名带破折号的地方使用Get-Service

问题描述 投票:1回答:1

我想使用PS脚本启动和停止特定服务。当我使用以下内容时:

Get-Service "SAS [SASConfig-Lev1] SASMeta - Metadata Server" | Where {$_.status –eq 'Stopped'} | Start-Service

我收到错误:

Get-Service : The specified wildcard character pattern is not valid: SAS [SASConfig-Lev1] SASMeta - Metadata Server

At line:1 char:1

+ Get-Service "SAS [SASConfig-Lev1] SASMeta - Metadata Server" | Where  ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Get-Service], WildcardPatternException
    + FullyQualifiedErrorId : RuntimeException,Microsoft.PowerShell.Commands.GetServiceCommand

问题不在Where子句中,因为如果删除它,我将得到相同的错误。

Get-Service "SAS [SASConfig-Lev1] SASMeta - Metadata Server" | Start-Service

我已经尝试过]

Get-Service 'SAS [SASConfig-Lev1] SASMeta - Metadata Server' | Start-Service

和此

Get-Service "SAS [SASConfig`-Lev1] SASMeta - Metadata Server" | Start-Service

但出现相同的错误。

有关如何在服务名称中包含破折号以及如何使Get-Service正常运行的任何建议?

我想使用PS脚本启动和停止特定服务。当我使用以下代码时:获取服务“ SAS [SAS [SASConfig-Lev1] SASMeta-元数据服务器””其中{$ _。status –eq'Stopped'} |开始-...

powershell service sas
1个回答
2
投票

您需要进行一些转义操作才能将方括号放入服务名称值中。开头括号前的两个前导坟墓标记(``)没错。转义使Get-Service command解析为not

© www.soinside.com 2019 - 2024. All rights reserved.