Powershell 在服务名称包含破折号的位置使用Get服务
我想使用PS脚本启动和停止特定服务。当我使用以下命令时:Powershell 在服务名称包含破折号的位置使用Get服务,powershell,service,sas,Powershell,Service,Sas,我想使用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 -
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 "SAS [SASConfig-Lev1] SASMeta - Metadata Server" | Start-Service
关于如何在服务名称中包含破折号以及如何让
获取服务
无误运行,您有什么建议吗?您需要进行一些转义,以便将方括号放入服务名称值中。开口括号前的两个主要墓碑(```)不是错误。转义将说服解析为而不是将第一个参数视为包含通配符
Get-Service "SAS ``[SASConfig-Lev1] SASMeta - Metadata Server"
来自我的powershell控制台的示例:
> Get-Service "SAS ``[BIserver-Lev1] Web Infrastructure Platform Data Server" | Format-List
Name : SAS [BIserver-Lev1] Web Infrastructure Platform Data Server
DisplayName : SAS [BIserver-Lev1] Web Infrastructure Platform Data Server
Status : Running
DependentServices : {}
ServicesDependedOn : {RPCSS}
CanPauseAndContinue : True
CanShutdown : True
CanStop : True
ServiceType : Win32OwnProcess
我猜当解析命令行时,
`
会被缩减为`
,并且`
会在Get Services解释中用括号转义,谢谢你,Richard。这是我现在工作的大多数项目。这非常有帮助,因为当我想按特定顺序启动和停止这些服务时,这将节省我很多时间。