本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「New-VM」コマンドレットを解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、コンピュータ上で動作する仮想マシンを新規作成する「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」コマンドレットを実行して有効化します。
オプション | 意味 |
---|---|
-Name | 作成する仮想マシンの名前を指定する。省略可能 |
-MemoryStartupBytes | 作成する仮想マシンに割り当てるメモリ量を指定する。省略可能 |
-BootDevice | 作成する仮想マシンのブートデバイスを指定する。省略可能 |
-SwitchName | 作成する仮想マシンの接続先仮想スイッチを指定する。省略可能 |
-NewVHDPath | 作成する仮想マシンに新規仮想ハードディスクを作成/接続する場合に、作成する仮想ハードディスク格納先パスを指定する。省略可能 |
-NewVHDSizeBytes | 作成する仮想マシンに新規仮想ハードディスクを作成/接続する場合に、作成する仮想ハードディスクサイズを指定する。省略可能 |
-VHDPath | 作成する仮想マシンに既存の仮想ハードディスクを接続する場合に、既存の仮想ハードディスクパスを指定する。省略可能 |
-Path | 作成する仮想マシンの格納先フォルダパスを指定する。省略可能 |
-Generation | 作成する仮想マシンの世代を指定する。省略可能 |
New-VMコマンドレットをオプションを指定せずに実行した場合、デフォルト(初期設定値)の仮想マシンが作成されます(画面1)。なお、New-VMコマンドレットは管理者権限で実行する必要があります。
New-VM
GUIツールであるHyper-Vマネージャーで作成された仮想マシンの情報を参照すると、以下の画面2のような仮想マシンが作成されていることが分かります。もちろん、本連載118回で紹介した「Get-VM」コマンドレットを使用して情報を取得することも可能です。
オプションを指定しない場合、「新しい仮想マシン」という仮想マシン名が自動付与され、最小設定の第1世代の仮想マシンが作成されます。また、仮想マシンの構成ファイルはHyper-Vホストのデフォルトのパスに保存されます。
デフォルトのパスは、Hyper-Vの設定の「仮想マシン」の項目で確認できます(画面3)。
仮想マシン名や仮想マシンの世代を指定したい場合は、オプションを付与してNew-VMコマンドレットを実行します。同様に、仮想マシンの格納先フォルダを指定したい場合は、「-Path」オプションでフォルダパスを指定します(画面4)。
New-VM -Name "Test-VM01" -Generation 2 New-VM -Name "Test-VM02" -Generation 2 -Path D:\Hyper-V\Test-VM02
画面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
なお、「-MemoryStartupBytes」オプションはデフォルトでは「B(バイト)」の数値指定となりますが、「MB」「GB」などに単位を変更して指定することも可能です。最小値は「32MB」で、それ以下のメモリ量を指定した場合はエラーになります。また、「2MBの倍数」から外れた値(例えば、2023MB)を指定した場合も同様にエラーになるので注意してください。
「-NewVHDPath」オプションと「-NewVHDSizeBytes」オプションを使用することで、仮想マシン作成と同時に接続する仮想ハードディスクを作成することが可能です(画面6)。
New-VM -Name "Test-VM01" -Generation 2 -NewVHDPath "Test-VM01.vhdx" -NewVHDSizeBytes 127GB
なお、「-NewVHDSizeBytes」オプションも割り当てメモリ量を指定する「-MemoryStartupBytes」オプション同様に、デフォルトでは「B(バイト)」での数値指定となりますが、「MB」「GB」「TB」などに単位を変更して指定することも可能です。また、「-NewVHDPath」オプションでは仮想ハードディスクのファイル名を指定する必要がありますが、拡張子は「VHDX」のみが指定可能であり、「VHD」を指定した場合にはエラーとなるので注意してください。
「-NewVHDPath」オプションでファイル名のみを指定した場合、仮想ハードディスクは画面6で確認できるHyper-Vホストのデフォルトの仮想ハードディスク保管フォルダに作成されます。
これを仮想マシンの格納先同様、格納先フォルダを指定したい場合には「-NewVHDPath」オプションでフォルダパスも併せて指定します(画面8)。
New-VM -Name "Test-VM01" -Generation 2 -NewVHDPath "Test-VM01.vhdx" -NewVHDSizeBytes 127GB
仮想マシン作成後に、本連載107回で紹介した「Get-VHD」コマンドレットで仮想ハードディスクを確認していますが、指定したパスに仮想ハードディスクがあることが分かります。
なお、仮想マシン作成と同時に仮想ハードディスクを作成する場合、Get-VHDコマンドレットの出力結果の通り、容量可変ディスクとして作成されます。このため、容量固定ディスクを使用した場合には、別途仮想ハードディスクを作成後、仮想マシンに接続する作業が必要となります。
Microsoft MVP for Cloud and Datacenter Management(2012-2025)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.