Question:
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:
1 2 3 4 5 6 7 |
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 |
Answer:
Yep you just need to check the Status
property on the returned object like this:
1 2 3 4 5 6 7 8 9 10 |
$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:
1 2 3 4 5 6 7 8 9 |
$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!" } |