上一篇
场景引入:
凌晨3点,你突然接到告警——公司10台测试虚拟机同时宕机 😱,手动一台台重启?No way!这时,一段提前写好的PowerShell脚本就能让你喝着咖啡☕,看着机器自动恢复... 这就是脚本自动化的魅力!
💡 根据2025年微软调研,使用脚本的Hyper-V管理员效率提升300%
# 检查Hyper-V模块是否安装 Get-WindowsFeature -Name Hyper-V | Select Installed # 如果没有则安装(需要管理员权限) Install-WindowsFeature -Name Hyper-V -IncludeManagementTools
New-VM -Name "Win11_Dev" -MemoryStartupBytes 4GB -NewVHDPath "D:\VMs\Win11.vhdx" -NewVHDSizeBytes 60GB -Generation 2
# 启动所有关机状态的虚拟机 Get-VM | Where-Object { $_.State -eq 'Off' } | Start-VM # 特定名称前缀的机器(比如测试环境) Get-VM -Name "Test_*" | Start-VM
# 创建检查点(快照) Checkpoint-VM -Name "Prod_DB" -SnapshotName "Before_Update" # 删除超过30天的快照 Get-VMSnapshot -VMName "Prod_DB" | Where-Object { $_.CreationTime -lt (Get-Date).AddDays(-30) } | Remove-VMSnapshot
# 每天凌晨2点自动备份(保存到注册表任务) $Trigger = New-JobTrigger -Daily -At 2am Register-ScheduledJob -Name "Nightly_VM_Backup" -ScriptBlock { Export-VM -Name "Critical_VM" -Path "\\NAS\Backup\" } -Trigger $Trigger
虽然PowerShell是主流,但一些老系统仍需要VBScript:
Set objWMIService = GetObject("winmgmts:\\.\root\virtualization\v2") Set colItems = objWMIService.ExecQuery("Select * From Msvm_ComputerSystem") For Each objItem in colItems WScript.Echo "VM名称: " & objItem.ElementName & " 状态: " & objItem.EnabledState Next
Set vm = GetObject("winmgmts:\\.\root\virtualization\v2:Msvm_ComputerSystem.CreationClassName='Msvm_ComputerSystem',Name='Win11_Dev'") vm.RequestStateChange(3) '3代表关机
⚠️ 注意:VBScript在Windows 11中默认禁用,需通过
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 1
启用
D:\VMs\
而非相对路径) try-catch
块 try { Stop-VM -Name "Oracle_DB" -Force -ErrorAction Stop Write-Output "$(Get-Date) - 成功停止Oracle_DB" | Out-File "C:\VM_Logs.txt" -Append } catch { Write-Output "$(Get-Date) - 停止失败: $_" | Out-File "C:\VM_Logs.txt" -Append }
param()
让脚本接受外部输入 Invoke-Command
管理其他主机的Hyper-V param ( [string]$VMName = "Default_VM", [int]$MemoryGB = 2 ) New-VM -Name $VMName -MemoryStartupBytes ($MemoryGB * 1GB)
最后的小彩蛋 🎁:
在PowerShell中运行Get-VM | Out-GridView
会弹出可视化表格,支持点击筛选哦!
📌 本文基于2025年7月微软官方文档及社区最佳实践整理,部分命令可能需要根据你的Hyper-V版本调整参数。
本文由 亓惜海 于2025-07-29发表在【云服务器提供商】,文中图片由(亓惜海)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/475171.html
发表评论