2014/11/17

PowerShell ISO ファイルをVHDX ファイルにコンバートしたい

検証作業中に、ISOファイルをVHDXファイルにコンバートしなければならない状況が発生しました。
探してみると、Script Centerに非常に便利なコンバーターがありましたのでメモ。
開発者に方に感謝!
なお、SSD環境下でもコンバートは結構な時間が必要です。
2014.11.26 -Edition パラメータについて加筆しました。

ISOファイルからVHDXファイルにコンバートする手順

  1. Convert-WindowsImage.ps1 ファイルのダウンロード
  2. Windows PowerShellからConvert-WindowsImage.ps1 ファイルを実行
C:\scripts\Convert-WindowsImage.ps1 -VHDFormat vhdx -sizebytes 128GB –sourcepath C:\OEMEssentials.iso -vhdpath C:\OEMEssentials.vhdx
上記サンプルは、
  • C:\Scripts フォルダーにコピー
  • ディスク容量128GBのvhdxファイル
  • ファイルはC:\に生成
となります。
注意点として、ps1ファイルはWindows 8/Windows Server 2012以上を対象としている点です。
これでHyper-Vの仮想マシンが比較的簡単に作れますね。

-Edition パラメータが必要になる場合あり!

msdn サブスクリプションから「Windows 7 Home Premium」のISOファイルをダウンロードしVHDファイルを作成してみると、「Windows 7のEditionを指定しろ!」とのエラーが表示されました。
WIMの中に複数のイメージが入っているようです。

この場合は、エディションを指定する事でVHDファイルが生成されます。
C:\Scripts> .\Convert-WindowsImage.ps1 -SourcePath C:\Users\\Downloads\ja_windows_7_home_premium_with_sp1_x86_dvd_u_676708.iso -VHDPath "D:\Hyper-V\Win7-HP-01\Virtual Hard Disks\Win7-HP-01-fixed.vhd" -SizeBytes 40GB -VHDFormat VHD -VHDType Fixed -Edition HomePremium

-RemoteDesktopEnable パラメータもある!

スクリプト ファイルを見ていて面白いなぁと思った事は、-RemoteDesktopEnable パラメータ。
ほとんどのOSの初期設定はリモート デスクトップ接続が出来ない設定になっていますが、この設定を$Trueにしてあげるとリモート デスクトップ接続が出来るようになるそうです。
ただし、ファイア ウォールの設定はされていないようなので、ここは手動で設定が必要かも。
.PARAMETER RemoteDesktopEnable
Enable Remote Desktop to connect to the OS inside the VHD(x) upon provisioning.
Does not include Windows Firewall rules (firewall exceptions). The default is False

ダウンロード

Convert-WindowsImage.ps1

スポンサーリンク

スポンサーリンク