仮想マシン(VM)は非常に便利ですが、トラブルや誤操作で「元に戻せなくなる」リスクもあります。とくに業務で利用している場合、仮想マシンの障害は重大な損失につながります。
そこでおすすめなのが、「自動バックアップ」の仕組みを取り入れることです!
そこで今日は、Hyper-Vでの仮想マシンの自動バックアップの基本的な方法を、わかりやすく解説します。
なぜバックアップが必要なのか?
仮想マシンのバックアップを取るべき理由は以下のとおりです。
• Windows Updateやソフトのインストールによる不具合に備える
• 操作ミスによるファイル消失へのリスク対策
• ランサムウェアなどマルウェアの影響からの復旧を可能にする
• 開発環境のバージョンを「安全な状態で保存」しておける
バックアップは、チェックポイント(Checkpoint) だけでは不十分です。チェックポイントは一時的な保険であり、長期保管や障害対策としては「別媒体へのバックアップ」が必要です。

方法1:手動バックアップ(シンプルだが忘れやすい)
実は、Hyper-Vマネージャーから以下の操作で手動バックアップが可能です。
1. 対象VMをシャットダウン
2. エクスプローラーで「.vhdx」ファイルや構成ファイルを外付けHDDや別ドライブへコピー
3. フォルダ名に日付をつけて保存(例:VM_backup_20250511)
※VMが起動中だとファイルがロックされたり整合性が崩れることがあります。確実に残したい場合は、次の「Export-VM(エクスポート)」方式がおすすめです。
メリット
- 操作が直感的でわかりやすい
GUIでドラッグ&ドロップするだけなので、初心者でもすぐに実行可能です。 - 不要なデータを省いて保存できる
スナップショットや一時ファイルなどを除外して、必要なデータだけを選んで保存できます。 - 保存先を自由に選べる
USBメモリ、外付けHDD、NASなど、状況に応じて柔軟にバックアップできます。 - コピーしたフォルダをそのまま別PCへ移行可能
バックアップファイルを別のHyper-V環境へ持ち込むのも比較的容易です。
デメリット
- 作業を忘れやすい
人の手で行うため、忙しいときやトラブルが起きる前にバックアップを取っていなかった、という事態が起こりやすくなります。 - 定期性がない
決まったスケジュールで自動的に保存されるわけではないため、バックアップのタイミングが不規則になりがちです。結果として、必要なときに「最新の状態」が残っていない可能性があります。 - 複数VMの管理が手間になる
仮想マシンが1台ならともかく、複数のVMを運用している場合、1台ずつ手動でバックアップを行うのは非効率です。 - シャットダウンが必要な場合がある
仮想マシンが起動中だと、ファイルがロックされてコピーできないこともあり、シャットダウンの手間が発生する場合があります。
方法2:PowerShellスクリプトで自動バックアップ
Windows 10/11 ProやServerに標準搭載されているPowerShellを使えば、VMの自動バックアップが可能です。以下にシンプルなスクリプト例を示します。
=== Hyper-V VM Auto Backup (Export-VM) ===
管理者権限で実行してください
$backupRoot = “D:\VM_Backups” # 保存先
$vmName = “MyVM” # バックアップ対象のVM名
$keepDays = 14 # 保存世代(日数)
保存先フォルダを作成
New-Item -ItemType Directory -Force -Path $backupRoot | Out-Null
日付付きフォルダ名
$date = Get-Date -Format “yyyyMMdd_HHmmss”
$dest = Join-Path $backupRoot “$vmName`_$date”
New-Item -ItemType Directory -Force -Path $dest | Out-Null
仮想マシンをエクスポート
Export-VM -Name $vmName -Path $dest
古いバックアップを削除(世代管理)
Get-ChildItem -Path $backupRoot -Directory |
Where-Object {
$_.Name -like “$vmName`*” -and $.LastWriteTime -lt (Get-Date).AddDays(-$keepDays)
} |
Remove-Item -Recurse -Force
簡易ログ
“[$(Get-Date)] Backup completed: $dest” |
Out-File (Join-Path $backupRoot “backup.log”) -Append -Encoding UTF8
※このスクリプトは、Hyper-Vの標準機能(Export-VM)を使った安全なバックアップ方法です。
タスクスケジューラに登録する場合は、「最上位の特権で実行」にチェックを入れてください。
方法3:外部ソフトによる定期バックアップ
より高度な管理を行いたい場合は、次のような外部ソフトの利用もおすすめです
- Veeam Backup & Replication(無料版あり)
- Hornetsecurity VM Backup(旧 Altaro VM Backup)
- Windows Admin Center(WAC)経由のバックアップ連携
これらはGUIで操作でき、差分バックアップやスケジューリング、リモート復元機能も備えています。
*GUIとは?(簡単解説)
GUI(ジーユーアイ)とは、「Graphical User Interface(グラフィカル・ユーザー・インターフェース)」の略です。簡単に言うと、マウスでクリックしたり、ボタンや画面を見ながら操作できる画面のことを指します。
例えば
・ファイルをドラッグ&ドロップで移動させる
・「設定」画面でチェックを入れる
・アイコンをクリックしてアプリを開く
というような操作はすべてGUIによるものなのです!
バックアップの保存場所にも注意!
- 同じドライブ内には保存しない(障害時に同時に失われる)
- NASや外付けHDD、OneDrive、Google Driveなどを併用するのが理想
- 重要VMは「3-2-1ルール」に基づいた保存(3つのコピーを2種類のメディアに、1つはオフサイト)
せっかくバックアップを取っても、保存場所を間違えると意味がなくなってしまいます。
「安全に保管する」ことも、バックアップの大事な一部です。
まとめ:仮想マシンの「守り」は日々のバックアップから
仮想マシンは便利ですが、「事故はあるもの」と考えることが大切です。PowerShellや外部ツールを使えば、毎日のバックアップを自動化することも難しくありません。
環境を整えたら、ぜひバックアップの定期チェックと復元テストも実施して、いざというときに備えましょう。

