【 Move-VMStorage 】コマンドレット――Hyper-V仮想マシンの「記憶域」を移動するWindows PowerShell基本Tips(153)

本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Move-VMStorage」コマンドレットを解説します。

» 2026年03月04日 05時00分 公開
[後藤諭史株式会社ネットワールド]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「Hyper-V」の仮想マシンの「記憶域」を移動する「Move-VMStorage」コマンドレットです。

Move-VMStorageコマンドレットとは?

 これまでも解説してきた通り、Hyper-Vの仮想マシンの実態は、Hyper-Vホスト上にある「設定ファイル」と「仮想ハードディスクファイル」です。これらのファイル群は、当然のことながらHyper-Vホストに接続されたHDD(Hard Disk Drive)やSSD(Solid State Drive)といった物理ディスク上に存在します。

 物理ディスクの容量枯渇やより高速な物理ディスク上で仮想マシンを動かしたいといった、さまざまな理由で仮想マシンを構成するファイル群を別のドライブ(ディスク)に移動する場合、GUI(グラフィカルユーザーインタフェース)ツールである「Hyper-Vマネージャー」であれば、仮想マシンを選択して「移動」を実行します。すると仮想マシンの「移動ウィザード」が起動するので、「仮想マシンの記憶域を移動する」を選択することで、仮想マシンの格納先ドライブやフォルダを変更(移動)できます(画面1)。

ALT 画面1 「Hyper-Vマネージャー」で「移動」を選択することで「移動ウィザード」が起動する

 移動操作はPowerShellでも可能で、今回紹介するMove-VMStorageコマンドレットを使用します。

【注】Move-VMStorageは「Windows PowerShell用Hyper-Vモジュール」に含まれるコマンドレットになります。GUIの「Windowsの機能の有効化」や「役割と機能の追加」からHyper-Vを有効化するか、PowerShellから「Enable-WindowsOptionalFeature」コマンドレットを使用して有効化します。


Move-VMStorageコマンドレットの書式

Move-VMStorage [オプション]


Move-VMStorageコマンドレットの主なオプション

オプション 意味
-Name 仮想マシン名を指定する
-DestinationStoragePath 移動先のフォルダパスを指定する。他の移動先を指定するオプションを使用する際は省略可能
-VirtualMachinePath 仮想マシンの構成ファイルの移動先を指定する。省略可能
-SnapshotFilePath 仮想マシンのチェックポイントフォルダの移動先を指定する。省略可能
-SmartPagingFilePath 仮想マシンのスマートページングフォルダの移動先を指定する。省略可能
-Vhds 仮想マシンの仮想ハードディスクの移動先を指定する。省略可能
-ComputerName リモートのHyper-Vホストの仮想マシンを起動する場合にコンピュータ名を指定。省略可能

仮想マシンのファイル群を全て同じフォルダに移動する

 移動したい仮想マシンの名前を必須オプションである「-Name」オプションで、移動先のフォルダを「-DestinationStoragePath」で指定し、Move-VMStorageコマンドレットを実行することで、仮想マシンの記憶域を移動できます(画面2)。なお、Move-VMStorageコマンドレットは管理者権限での実行が必要となります。

コマンドレット実行例

Move-VMStorage -Name "Test-VM01" -DestinationStoragePath "E:\Hyper-V\Test-VM01"

ALT 画面2 必須オプションの「-Name」オプションと「-DestinationStoragePath」オプションを指定することで、仮想マシンの記憶域を移動できる

 なお、仮想マシンの状態には指定がなく、電源オンの状態でも無停止で記憶域の移動が可能です。

 仮想マシンの記憶域の移動先フォルダを確認すると、画面3のように「-DestinationStoragePath」オプションで指定したフォルダ配下に自動的に各種フォルダが作成されます。例えば、仮想ハードディスクは「Virtual Hard Disks」フォルダ下に移動しています。これらのサブフォルダは自動的に作成されます。

ALT 画面3 「-DestinationStoragePath」オプションで指定したフォルダ配下にサブフォルダが自動的に作成される

仮想マシンのファイル群を全て個別のフォルダに移動する

 例えば、仮想ハードディスクだけを別のドライブに移動したいなどの個別の要件がある場合には、ファイル群それぞれの移動先フォルダを個別に指定できます。

 個別のフォルダを指定したい場合、主なオプションにもある通り「-VirtualMachinePath」オプションや「-SnapshotFilePath」などを使用します。

 例えば、「Test-VM01」の記憶域を移動する際、構成ファイルは「E:\VMConfig\Test-VM01」、チェックポイントとスマートページングは「E:\VMFiles\Test-VM01」、仮想ハードディスクは「E:\VHDs\Test-VM01」に移動したいといった場合は、以下のようなコマンドレットを実行します(画面4)。

コマンドレット実行例

Move-VMStorage -Name "Test-VM01" -VirtualMachinePath "E:\VMConfig\Test-VM01" -SnapshotFilePath "E:\VMFiles\Test-VM01" -SmartPagingFilePath "E:\VMFiles\Test-VM01" -VHDs @(@{"SourceFilePath" = "D:\Hyper-V\Test-VM01\Virtual Hard Disks\Win2022_20240526.vhdx"; "DestinationFilePath" = "E:\VHDs\Test-VM01\Win2022_20240526.vhdx"})

ALT 画面4 仮想マシンの各ファイルの移動先を個別に指定して仮想マシンの記憶域を移動した

 「-Vhds」オプションは配列で指定することが必須で、仮想ハードディスクの移動元のフルパスを「SourceFilePath」で、移動先のフルパスを「DestinationFilePath」で指定する必要があります。

 画面4の例では仮想ハードディスクは1つでしたが、仮想ハードディスクが2つ接続されている仮想マシンでは個別に移動先を指定する必要があり、以下のコマンドレット実行例のように「-VHDs」オプションで個々の仮想ハードディスクの移動先を配列で指定します(画面5)。

コマンドレット実行例

Move-VMStorage -Name "Test-VM02" -VirtualMachinePath "E:\VMConfig\Test-VM02" -SnapshotFilePath "E:\VMFiles\Test-VM02" -SmartPagingFilePath "E:\VMFiles\Test-VM02" -VHDs @(@{"SourceFilePath" = "D:\Hyper-V\Test-VM02\Virtual Hard Disks\Win2022_20240526.vhdx"; "DestinationFilePath" = "E:\VHDs\Test-VM02\Win2022_20240526.vhdx"},@{"SourceFilePath" = "D:\Hyper-V\Test-VM02\Virtual Hard Disks\Test-VM02_Data01.vhdx"; "DestinationFilePath" = "F:\VHDs\Test-VM02\Test-VM02_Data01.vhdx"})

ALT 画面5 複数の仮想ハードディスクを持つ仮想マシンでは、仮想ハードディスクの移動先も個別に指定できる

仮想マシンの仮想ハードディスクだけを移動する

 構成ファイルなどはそのままの状態で、仮想ハードディスクだけを移動したい場合もあるでしょう。

 その場合は「-VHDs」オプションのみを指定することで、仮想ハードディスクだけを移動できます(画面6)。

コマンドレット実行例

Move-VMStorage -Name "Test-VM02" -VHDs @(@{"SourceFilePath" = "D:\Hyper-V\Test-VM02\Virtual Hard Disks\Win2022_20240526.vhdx"; "DestinationFilePath" = "E:\VHDs\Test-VM02\Win2022_20240526.vhdx"},@{"SourceFilePath" = "D:\Hyper-V\Test-VM02\Virtual Hard Disks\Test-VM02_Data01.vhdx"; "DestinationFilePath" = "F:\VHDs\Test-VM02\Test-VM02_Data01.vhdx"})

ALT 画面6 「-VHDs」オプションのみ指定して仮想マシンの記憶域を移動した

筆者紹介

後藤 諭史(ごとう さとし)

株式会社ネットワールド所属。Microsoft MVP for Cloud and Datacenter Management(2012-2026)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

アイティメディアからのお知らせ

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2026
人に頼れない今こそ、本音で語るセキュリティ「モダナイズ」
4AI by @IT - AIを作り、動かし、守り、生かす
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。