/
Reboot-Node.ps1
40 lines (40 loc) · 1.01 KB
/
Reboot-Node.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
$OutTime = Get-Date
$TargetNode = "#!nodename!#"
$WarningText = "Rebooting: " + $TargetNode + " at " + $OutTime
Write-Warning $WarningText
Restart-Computer $TargetNode -Force
$Counter = 0
$vmOnline = $true
Do
{
$PingOut = Test-Connection $TargetNode -ErrorAction SilentlyContinue
If($PingOut.Count -lt 4)
{
$vmOnline = $false
}
$Counter++
Start-Sleep -s 10
}
While (($vmOnline -eq $true) -and ($Counter -ne 90))
$OutTime = Get-Date
$WarningText = $TargetNode + " offline at " + $OutTime
Write-Warning $WarningText
$Counter = 0
Do
{
Try
{
Get-Service -ComputerName $TargetNode | Where-Object { ($_.Name -eq "WinRM") } | Out-Null
$InitServices = $true
}
Catch
{
$InitServices = $false
Start-Sleep -s 10
$Counter++
}
}
While (($InitServices -ne $true) -and ($Counter -ne 60))
$OutTime = Get-Date
$WarningText = $TargetNode + " returns to service at " + $OutTime
Write-Warning $WarningText