цикл PowerShell для непрерывной проверки работоспособности сервера - PullRequest
3 голосов
/ 01 февраля 2012

Я хочу запустить сценарий, чтобы проверить, запущены ли и работают ли 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

1 Ответ

6 голосов
/ 02 февраля 2012

Да, вам просто нужно проверить свойство 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!"
    }
}

Обновление Вот пример того, как ждать, пока сервер станетонлайн:

$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!"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...