powershell循环连续检查服务器是否已启动

Big*_*T41 3 powershell powershell-2.0

我想运行一个脚本来检查5台服务器是否已启动并且正在运行基于特定服务运行.如果该服务正在运行,那么我们就知道该服务器已启动且可访问.如果它没有回复回复,那么我希望它继续检查它.这是我到目前为止得到的:

Get-Service LANMANSERVER -ComputerName JOHNJ1
Get-Service LANMANSERVER -ComputerName JOHNJ2
Get-Service LANMANSERVER -ComputerName JOHND1
Get-Service LANMANSERVER -ComputerName JOHNM
Get-Service LANMANSERVER -ComputerName JOHNI
start-sleep 90
Run Code Online (Sandbox Code Playgroud)

And*_*ndi 6

你需要检查Status返回对象的属性,如下所示:

$servers = "JOHNJ1", "JOHNJ2"
foreach ($server in $servers) {
    $status = (get-service -Name lanmanserver -ComputerName $server).Status
    if ($status -eq "Running") {
        "Its Up!"
    } else {
        "Its Down!"
    }
}
Run Code Online (Sandbox Code Playgroud)

更新以下是如何等待服务器联机的示例:

$servers = "JOHNJ1", "JOHNJ2"
foreach ($server in $servers) {
    while ( (get-service -Name lanmanserver -ComputerName $server).Status -ne "Running" ) {
        "Waiting for $server ..."
        Start-Sleep -Seconds 10
    }
    "$server is Up!"
}
Run Code Online (Sandbox Code Playgroud)