使用PowerShell脚本检测Hyper-V虚拟机是否死机,自动重启虚机

33次阅读

共计 1311 个字符,预计需要花费 4 分钟才能阅读完成。

我想问一下大家,有没有这样的脚本啊。最近几天跑网心云 x86,爱快经常死机,然后一直卡着,非要我手动重启。网心云 X86 倒是没出问题,就是爱快出问题。想问一下有没有这样的脚本,自动检测 Hyper- V 虚拟机是否死机,并自动重启虚拟机?yanzhiling2002 2023-06-22 21:41 2 你观察一下,VPS 死机的时候,tcping or ping VPS 有回应吗,没有回应就以 ping 为触发条件。快乐快乐的 2023-06-22 21:42 3 以下是一个 PowerShell 脚本示例,可以检测 Hyper- V 虚拟机是否死机,并自动重启虚机:# 设置变量 $VMName = "MyVM"$RetryCount = 3$RetryInterval = 10 # 单位为秒# 循环检测虚机状态 for ($i = 1; $i -le $RetryCount; $i++) {    $VMStatus = Get-VM -Name $VMName | Select-Object -ExpandProperty State    if ($VMStatus -eq "Running") {        Write-Host " 虚机 $VMName 正在运行。"        break   }    elseif ($VMStatus -eq "Off") {        Write-Host " 虚机 $VMName 已关闭。正在启动虚机 …"        Start-VM -Name $VMName   }    elseif ($VMStatus -eq "Paused") {        Write-Host " 虚机 $VMName 已暂停。正在恢复虚机 …"        Resume-VM -Name $VMName   }    elseif ($VMStatus -eq "Saved") {        Write-Host " 虚机 $VMName 已保存状态。正在恢复虚机 …"        Start-VM -Name $VMName   }    elseif ($VMStatus -eq "Stopping") {        Write-Host " 虚机 $VMName 正在关闭。"   }    elseif ($VMStatus -eq "Starting") {        Write-Host " 虚机 $VMName 正在启动。"   }    elseif ($VMStatus -eq "Pausing") {        Write-Host " 虚机 $VMName 正在暂停。"   }    elseif ($VMStatus -eq "Resuming") {        Write-Host " 虚机 $VMName 正在恢复。"   }    else {        Write-Host " 虚机 $VMName 状态未知。"   }    Start-Sleep -Seconds $RetryInterval}# 如果虚机仍未运行,则重启虚机 if ($VMStatus -ne "Running") {    Write-Host " 虚机 $VMName 未能成功启动。正在尝试重启虚机 …"    Restart-VM -Name $VMName} 请注意,此脚本仅适用于检测虚拟机是否死机,并尝试自动重启虚拟机。如果虚拟机出现其他故障或错误,可能需要进一步调试和修复。

正文完
 0