PSHyperV 模組:CodePlex 下載 (含 PSHyperv-R2.pdf 完整文件)Set-ExecutionPolicy RemoteSigned# 開機 Start-VM -VM "VM名稱" -Server "主機名" -Wait -Force # 關機 (硬關機,等同按電源鈕) Stop-VM -VM "VM名稱" -Force # 正常關機 (Guest OS 關機流程) Shutdown-VM -VM "VM名稱" -Force # PS V1 為 Shutdown-VM,V2+ 為 Invoke-VMShutdown # 保存狀態 (休眠) Save-VM -VM "VM名稱" -Force # PS V1 為 Suspend-VM # 重啟 Restart-VM -VM "VM名稱" -Force
# 關閉所有運行中 VM Get-VM -Running | Stop-VM -Force # 開啟所有已保存 VM Get-VM -Saved | Start-VM
# 匯出完整 VM (含狀態) Export-VM -VM "VM名稱" -Path "D:\VMBackup" -CopyState -Preserve # 匯入 Import-VM -Path "D:\VMBackup\VM名稱\Virtual Machines\.xml"
# 所有 VM 狀態 Get-VM | Select Name, State, CPUCount, MemoryAssigned, Uptime # 記憶體詳細 Get-VMMemory -VM "VM名稱" # CPU 設定 Get-VMCPUCount -VM "VM名稱" # 磁碟資訊 Get-VMDisk -VM "VM名稱"
| 參數 | 說明 |
|---|---|
| -VM | 虛擬機名稱,支援萬用字元 * % |
| -Server | Hyper-V 主機名,預設 "." (本機) |
| -Wait | 等待作業完成再執行下一條,串聯操作必加 |
| -Force | 略過確認提示,自動化腳本必加 |
| -CopyState | Export-VM 時包含運行狀態,否則僅匯出配置 |
| -Preserve | 保留匯入用 XML 封裝檔 |
$date = Get-Date -Format "yyyyMMdd"
$path = "D:\VMBackup\$date"
Get-VM -Running | ForEach-Object {
Export-VM -VM $_.Name -Path $path -CopyState -Force
}
配合工作排程器執行。