powershell loop to continous check if server is up

21,432

Yep you just need to check the Status property on the returned object like this:

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

Update Here is an example of how to wait for a server to become online:

$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!"
}
Share:
21,432
BigCAT41
Author by

BigCAT41

Updated on February 15, 2020

Comments

  • BigCAT41
    BigCAT41 about 4 years

    I want to run a script to check if 5 servers are up and running based on a specific service is running.If that service is running then we know that server is up and accesible. If it does not reply with a response back then I want it to continously check for it. Heres what I got so far:

    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