全球主机交流论坛
标题:
使用PowerShell脚本检测Hyper-V虚拟机是否死机,自动重启虚机
[打印本页]
作者:
wjhhxl
时间:
2023-6-22 21:24
标题:
使用PowerShell脚本检测Hyper-V虚拟机是否死机,自动重启虚机
我想问一下大家,有没有这样的脚本啊。
最近几天跑网心云x86,爱快经常死机,然后一直卡着,非要我手动重启。
网心云X86倒是没出问题,就是爱快出问题。
想问一下有没有这样的脚本,
自动检测Hyper-V虚拟机是否死机,并自动重启虚拟机?
作者:
yanzhiling2002
时间:
2023-6-22 21:41
你观察一下,小鸡死机的时候,tcping or ping小鸡有回应吗,没有回应就以ping为触发条件。
作者:
快乐快乐的
时间:
2023-6-22 21:42
本帖最后由 快乐快乐的 于 2023-6-22 21:43 编辑
以下是一个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
}
复制代码
作者:
wjhhxl
时间:
2023-6-22 23:18
快乐快乐的 发表于 2023-6-22 21:42
以下是一个PowerShell脚本示例,可以检测Hyper-V虚拟机是否死机,并自动重启虚机:
非常感谢,
做了简单修改
但还是有小问题,
见我的贴子
https://fd.vvwvv.eu.org/thread-1181510-1-1.html
欢迎光临 全球主机交流论坛 (https://fd.vvwvv.eu.org/)
Powered by Discuz! X3.4