我正在尝试使用以下方法启动多个服务:
Get-Service SERVICE* | Start-Service
当 Get-Service 返回已禁用的服务时,我遇到以下错误:
+ CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service],
ServiceCommandException
+ FullyQualifiedErrorId : CouldNotStartService,Microsoft.PowerShell.Commands.StartServiceCommand
如何过滤掉已禁用的服务?
答案1
您可以使用以下代码。这将停止所有已启动的服务,然后启动所有服务,即使它们之前没有启动过,但也没有被禁用:
get-service SERVICE* | where-object {$_.Status -eq "Running"} `
| stop-service
get-service SERVICE* | where-object {$_.StartType -ne "Disabled" `
-and $_.Status -eq "Stopped"} `
| start-service
如果所有服务都应该启动(如果没有禁用),则可以使用此代码来简化此过程:
get-service SERVICE* | restart-service