我已经尝试了以下几个位,我正在尝试创建一个函数来插入另一个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
变量。
答案 0 :(得分:1)
试试这个:
function start-OService {
$services = 'service1', 'service1'
foreach ($service in $services)
{
if ((Get-Service $service).Status -eq "Stopped")
{
Start-Service $service
}
}
}
答案 1 :(得分:1)
一个班轮:
"service1", "service2" | Get-Service | ?{ $_.Status -eq "Stopped" } | Start-Service
答案 2 :(得分:0)
为了启动在给定时间停止的所有服务,下面的脚本将是有用的
$StoppedServices=Get-Service | where {$_.Status -eq "Stopped"}
foreach ($item in $StoppedServices)
{
$Name=$item.Name
Start-Service -Name $Name
}
答案 3 :(得分:0)
function start-OService {
$services = 'service1', 'service1'
$services | % {
$service = get-service -name $_;
if($service.Status -eq [System.ServiceProcess.ServiceControllerStatus]::Stopped)
{
Write-Output "Starting $_"
$service.Start()
}
}
}