【 New-VM 】コマンドレット――Hyper-V仮想マシンを新規作成するWindows PowerShell基本Tips(119)

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

» 2024年11月28日 05時00分 公開
[後藤諭史@IT]

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

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

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、コンピュータ上で動作する仮想マシンを新規作成する「New-VM」コマンドレットです。

New-VMコマンドレットとは?

 Microsoftのハードウェア仮想化技術「Hyper-V」は「Windows Subsystem for Linux」(WSL)をはじめとするさまざまな機能で利用されていますが、本質的な利用方法は仮想マシンを稼働させるための仮想化基盤でしょう。

 仮想マシンを作成、起動させるためのインタフェースとしてGUI(グラフィカルユーザーインタフェース)の管理ツール「Hyper-Vマネージャー」があります。GUI管理ツールが標準で用意されていることがWindowsの強みでもありますが、100台の仮想マシンを作成するといったシナリオにはやはりWindows PowerShellが最適であることは言うまでもありません。

 New-VMはHyper-V上で動作する仮想マシンを新規作成するコマンドレットであり、Hyper-Vで仮想化基盤を構築する場合には、押さえておきたいコマンドレットとなります。

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


New-VMコマンドレットの書式

New-VM [オプション]


New-VMコマンドレットの主なオプション

オプション 意味
-Name 作成する仮想マシンの名前を指定する。省略可能
-MemoryStartupBytes 作成する仮想マシンに割り当てるメモリ量を指定する。省略可能
-BootDevice 作成する仮想マシンのブートデバイスを指定する。省略可能
-SwitchName 作成する仮想マシンの接続先仮想スイッチを指定する。省略可能
-NewVHDPath 作成する仮想マシンに新規仮想ハードディスクを作成/接続する場合に、作成する仮想ハードディスク格納先パスを指定する。省略可能
-NewVHDSizeBytes 作成する仮想マシンに新規仮想ハードディスクを作成/接続する場合に、作成する仮想ハードディスクサイズを指定する。省略可能
-VHDPath 作成する仮想マシンに既存の仮想ハードディスクを接続する場合に、既存の仮想ハードディスクパスを指定する。省略可能
-Path 作成する仮想マシンの格納先フォルダパスを指定する。省略可能
-Generation 作成する仮想マシンの世代を指定する。省略可能

仮想マシンを新規作成する

 New-VMコマンドレットをオプションを指定せずに実行した場合、デフォルト(初期設定値)の仮想マシンが作成されます(画面1)。なお、New-VMコマンドレットは管理者権限で実行する必要があります。

コマンドレット実行例

New-VM

ALT 画面1 オプションを指定せずにデフォルトの仮想マシンを作成した

 GUIツールであるHyper-Vマネージャーで作成された仮想マシンの情報を参照すると、以下の画面2のような仮想マシンが作成されていることが分かります。もちろん、本連載118回で紹介したGet-VM」コマンドレットを使用して情報を取得することも可能です。

ALT 画面2 作成されたデフォルト設定の仮想マシン

 オプションを指定しない場合、「新しい仮想マシン」という仮想マシン名が自動付与され、最小設定の第1世代の仮想マシンが作成されます。また、仮想マシンの構成ファイルはHyper-Vホストのデフォルトのパスに保存されます。

 デフォルトのパスは、Hyper-Vの設定の「仮想マシン」の項目で確認できます(画面3)。

ALT 画面3 Hyper-Vホストの設定にて仮想マシン保存先フォルダを確認できる

 仮想マシン名や仮想マシンの世代を指定したい場合は、オプションを付与してNew-VMコマンドレットを実行します。同様に、仮想マシンの格納先フォルダを指定したい場合は、「-Path」オプションでフォルダパスを指定します(画面4)。

コマンドレット実行例

New-VM -Name "Test-VM01" -Generation 2
New-VM -Name "Test-VM02" -Generation 2 -Path D:\Hyper-V\Test-VM02

ALT 画面4 「-Name」オプションと「-Generation」オプション、「-Path」オプションを使用して仮想マシンを作成した

 画面4では、「-Name」オプションで仮想マシン名、「-Generation」オプションで仮想マシンの世代を指定して作成した場合と、追加で「-Path」オプションを併用して仮想マシンを作成した場合の2つを例示しています。

 作成後にGet-VMコマンドレットで仮想マシンの情報を取得していますが、両例とも「Generation」の値が「2」であり、第2世代仮想マシンとして作成されていることが確認できます。

 また、「Path」の値を取得することで作成先フォルダを確認していますが、「-Path」オプションを併用して作成された仮想マシン(Test-VM02)は、指定されたパスに仮想マシンが作成されていることが分かります。


指定したメモリ量を割り当てた仮想マシンを作成する

 オプション指定せずにNew-VMコマンドレットで仮想マシンを作成すると、割り当てメモリ量が「1GB」の仮想マシンが作成されます。現在のモダンなOSでは1GBのメモリ量は若干少なめであるといえるでしょう。仮想マシンの作成時点で割り当てメモリ量を増やすには、「-MemoryStartupBytes」オプションを使用します(画面5)。

コマンドレット実行例

New-VM -Name "Test-VM01" -Generation 2 -MemoryStartupBytes 4GB

ALT 画面5 4GBのメモリ量を割り当てた仮想マシンを作成した

 なお、「-MemoryStartupBytes」オプションはデフォルトでは「B(バイト)」の数値指定となりますが、「MB」「GB」などに単位を変更して指定することも可能です。最小値は「32MB」で、それ以下のメモリ量を指定した場合はエラーになります。また、「2MBの倍数」から外れた値(例えば、2023MB)を指定した場合も同様にエラーになるので注意してください。


新規仮想ハードディスクを接続した仮想マシンを作成する

 「-NewVHDPath」オプションと「-NewVHDSizeBytes」オプションを使用することで、仮想マシン作成と同時に接続する仮想ハードディスクを作成することが可能です(画面6)。

コマンドレット実行例

New-VM -Name "Test-VM01" -Generation 2 -NewVHDPath "Test-VM01.vhdx" -NewVHDSizeBytes 127GB

ALT 画面6 「-NewVHDPath」オプションと「-NewVHDSizeBytes」オプションを使用して仮想マシンを作成した

 なお、「-NewVHDSizeBytes」オプションも割り当てメモリ量を指定する「-MemoryStartupBytes」オプション同様に、デフォルトでは「B(バイト)」での数値指定となりますが、「MB」「GB」「TB」などに単位を変更して指定することも可能です。また、「-NewVHDPath」オプションでは仮想ハードディスクのファイル名を指定する必要がありますが、拡張子は「VHDX」のみが指定可能であり、「VHD」を指定した場合にはエラーとなるので注意してください。

 「-NewVHDPath」オプションでファイル名のみを指定した場合、仮想ハードディスクは画面6で確認できるHyper-Vホストのデフォルトの仮想ハードディスク保管フォルダに作成されます。

ALT 画面7 Hyper-Vホストのデフォルトの仮想ハードディスク保管先

 これを仮想マシンの格納先同様、格納先フォルダを指定したい場合には「-NewVHDPath」オプションでフォルダパスも併せて指定します(画面8)。

コマンドレット実行例

New-VM -Name "Test-VM01" -Generation 2 -NewVHDPath "Test-VM01.vhdx" -NewVHDSizeBytes 127GB

ALT 画面8 「-NewVHDPath」オプションで、格納先フォルダパスも併せて指定した

 仮想マシン作成後に、本連載107回で紹介したGet-VHD」コマンドレットで仮想ハードディスクを確認していますが、指定したパスに仮想ハードディスクがあることが分かります。

 なお、仮想マシン作成と同時に仮想ハードディスクを作成する場合、Get-VHDコマンドレットの出力結果の通り、容量可変ディスクとして作成されます。このため、容量固定ディスクを使用した場合には、別途仮想ハードディスクを作成後、仮想マシンに接続する作業が必要となります。

筆者紹介

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

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


Copyright © ITmedia, Inc. All Rights Reserved.

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

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

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

メールマガジン登録

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