Quantcast
Channel: @jsakamoto
Viewing all articles
Browse latest Browse all 144

コマンドライン (PowerShell) で Windows 11 上の Hyper-V を有効化し、Windows 11 Pro の仮想マシンをインストール開始できるようにする

$
0
0
先日、Qiita のほうに以下の記事を書いた。


上記記事は、タイトルのとおり、Windows 11 Pro PC 上に、さらに動作検証用の Windows 11 Pro 環境を、Windows の Hyper-V 機能を使って仮想マシンとして構築する手順を、スクリーンショットを中心に説明したものである。


ただ、この手のスクリーンショット満載の "手順書" は、わかりやすいのはいいものの、そのいっぽうで、スクリーンショットと見比べながら GUI をマウスでぽちぽちするのは、実は効率が悪かったりする。おまけに、GUI の設定画面というのは、OS やプラットフォームのバージョンアップに伴ってデザインやレイアウトが変更され、せっかくの "手順書" がどんどん陳腐化しやすい、という性質もある。


ところで、Hyper-V の有効化や、仮想マシンの作成とその構成などは、実は、コマンドライン (PowerShell) からコマンド実行にて実行することが可能だ。このコマンドラインインターフェース (CLI) を使って手順書を作っておくと、前述のような "手順書の陳腐化" が起きにくい。加えて、CLI ベースの手順書は、実行すべきコマンドを手順書上から「コピペ」で実行できるため、GUI ベースの手順書と比べて、手順書どおりの実行が圧倒的に効率的で、且つ、間違いも少ないだろう。


ということで今回は、上記 Qiita 記事中にある手順のうち、「Hyper-V の有効化」と「Hyper-V 上に仮想マシンを作成する」の手順を、PowerShell 上のコマンドラインで実行する手順を紹介してみる。


前提
まず前提として、本記事の手順は、Windows 11 Pro (x64) 日本語版の上の、PowerShell v7.4.2 上での動作を確認している。


また、PowerShell のコンソール (ターミナル) は、管理者モードで起動・開いておく。


Hyper-V の有効化
まずは「Hyper-V の有効化」。こちらは GUI 方式でもそこまで手順が多いわけではないが、いちおう、PowerShell 方式を以下に示す。ずばり、以下のように「Enable-WindowsOptionalFeature」コマンドレットを以下のコマンドライン引数を指定して実行すればよい。



PS> Enable-WindowsOptionalFeature `
-Online `
-FeatureName Microsoft-Hyper-V `
-All





上記を実行すると、以下のように再起動を聞かれる場合がある。



この操作を完了するために、今すぐコンピューターを再起動しますか?
[Y] Yes  [N] No  [?] Help (default is "Y"):






この場合は指示に従っていちど実機 PC を再起動しておく。


Hyper-V 上に仮想マシンを作成する
次は「Hyper-V 上に仮想マシンを作成する」の手順である。
まずは変数「$VMWare」に、これから作成する仮想マシンの名前を設定しておく。



 PS> $VMName = "Windows 11 Pro"






次に仮想マシンの作成を以下のとおり「New-VM」コマンドレットで実行する。



PS> New-VM -Name "$VMName" `
    -Generation 2 `
    -SwitchName (Get-VMSwitch).Name `
    -MemoryStartupBytes 4096MB `
    -NewVHDPath "$env:ProgramData\Microsoft\Windows\Virtual Hard Disks\$VMName.vhdx" `
    -NewVHDSizeBytes 128GB






上記で、Hyper-V 第2世代の仮想マシンを、起動時メモリ 4GB の構成で、且つ、最大容量 128 GB の仮想ディスクを新規作成ならびにアタッチした仮想マシンができあがる。


続けて、プロセッサの数と自動チェックポイントの無効化を適用する。




PS> Set-VM -Name $VMName `
    -ProcessorCount 2 `
    -AutomaticCheckpointsEnabled $false






上記ではこの仮想マシンに割り当てる CPU コア数を 2 としてある。



さらに続けて、トラステッドプラットフォームモジュール (TPM) を有効にする。これは以下のとおり「Set-VMKeyProtector」コマンドレットおよび「Enable-VMTPM」コマンドレットの 2 つのコマンドレットを続けて実行する。



PS> Set-VMKeyProtector -VMName $VMName -NewLocalKeyProtector
PS> Enable-VMTPM -VMName $VMName






次いで、別途ダウンロードしておいた、Windows 11 Pro のインストールメディア (.iso ファイル) を、仮想マシンの光学デバイスとしてマウントする。以下のコマンドで行なうが、下記例の中、「{.iso ファイルの名前}」の部分は実際のファイル名に置き換えてから実行すること。



PS> Add-VMDvdDrive -VMName $VMName `
-Path "$env:USERPROFILE\Downloads\{.iso ファイルの名前}"






最後の仕上げとして、起動デバイスの優先順位を、光学デバイス > ディスク > Network の順に変更する。コマンド行数がちょっとかさばるが、まぁ、コピペで実行して構わないので問題ないだろう。



 PS> $bootDevices = (Get-VMFirmware -VMName $VMName).BootOrder
 PS> $bootDisk = $bootDevices | `
where { $_.Device.GetType().Name -eq "HardDiskDrive" }
 PS> $bootNetworkAdapter = $bootDevices | `
where { $_.Device.GetType().Name -eq "VMNetworkAdapter" }
 PS> $bootDvd = $bootDevices | `
where { $_.Device.GetType().Name -eq "DvdDrive" }
 PS> Set-VMFirmware -VMName $VMName `
-BootOrder @($bootDvd, $bootDisk, $bootNetworkAdapter)





以上で完成だ。


引き続きの作業
あとは Hyper-V マネージャーを起動し、こうして作成した仮想マシンを仮想マシン接続ウィンドウから接続・起動すると、Windows 11 のインストールメディアから起動し、Windows のセットアップ処理が始まる。


_d0079457_21192344.png



なお、この後は引き続き、Windows のインストール処理を GUI 上でマウスでぽちぽちしながら進めることになるのだが、これもまた、事前の設定等で自動化できるはずである。ただ、自分はその分野に疎く、本ブログ記事ではここまでとする。


まとめ
以上のとおり、Windows 11 Pro の PC 上で、コマンドライン (PowerShell) を用いて、Hyper-V 機能の有効化と、仮想マシンの作成、各種設定値の構成を行なうことができた。


将来の Windows のバージョンにおいても、GUI のスクリーンショットに基づく "手順書" よりは、このコマンドライン版手順書のほうが、改訂なく継続して活用できることを期待したい。また、コマンドラインをコピペで実行できるので、手間と間違いが減ることも、あわせて期待したいところだ。



Viewing all articles
Browse latest Browse all 144

Trending Articles