如果停止,则启动多个Windows服务

如果停止,则启动多个Windows服务,windows,powershell,Windows,Powershell,我已经尝试了以下几点,我正在尝试创建一个函数以插入到另一个powershell脚本中 function start-OService{ Get-Service service1|?{$_.Status -eq 'Stopped'}|Start-Service Get-Service service2|?{$_.Status -eq 'Stopped'}|Start-Service } 而这个 function start-OService { $services = 'service1', '

我已经尝试了以下几点,我正在尝试创建一个函数以插入到另一个powershell脚本中

function start-OService{
Get-Service service1|?{$_.Status -eq 'Stopped'}|Start-Service
Get-Service service2|?{$_.Status -eq 'Stopped'}|Start-Service
}
而这个

function start-OService {
$services = 'service1', 'service1'

Get-Service | ? {
$services -contains $_.Name -and $_.Status -eq 'Stopped'
} | Start-Service

}
第一个代码段似乎运行不正确,但我没有收到错误。我可以单独运行每一行,但不能按设置方式运行。 第二个是我最初的尝试,是从另一个SO问题中提取的。
Get Service
似乎不喜欢包含多个服务的
$services
变量

试试这个:

function start-OService {
$services = 'service1', 'service1'

    foreach ($service in $services)
    {
        if ((Get-Service $service).Status -eq "Stopped")
        {
        Start-Service $service
        }
    }

}
试试这个:

function start-OService {
$services = 'service1', 'service1'

    foreach ($service in $services)
    {
        if ((Get-Service $service).Status -eq "Stopped")
        {
        Start-Service $service
        }
    }

}

对于启动在给定时间停止的所有服务,下面的脚本将非常有用

$StoppedServices=Get-Service | where {$_.Status -eq "Stopped"}
foreach ($item in $StoppedServices)
{
$Name=$item.Name
    Start-Service -Name $Name
}

对于启动在给定时间停止的所有服务,下面的脚本将非常有用

$StoppedServices=Get-Service | where {$_.Status -eq "Stopped"}
foreach ($item in $StoppedServices)
{
$Name=$item.Name
    Start-Service -Name $Name
}
一艘班轮:

"service1", "service2" | Get-Service | ?{ $_.Status -eq "Stopped" } | Start-Service 
一艘班轮:

"service1", "service2" | Get-Service | ?{ $_.Status -eq "Stopped" } | Start-Service 

尝试过这个-似乎什么都没有发生。我两个都“停止”了,但它们都没有启动,或者当我尝试一个“停止”的时候,哦,明白了。我这边的打字错误!一行:“service1”、“service2”|获取服务|?{$|.Status-eq“Stopped”}启动服务只是想保持OP结构,所以他更容易理解并尝试了这一点-似乎什么都没有发生。我两个都“停止”了,但它们都没有启动,或者当我尝试一个“停止”的时候,哦,明白了。我这边的打字错误!一行:“service1”、“service2”|获取服务|?{$|.Status-eq“Stopped”}启动服务只是想保持OP结构,这样他更容易理解