Windows

日本語版WindowsPEメディアを作成する方法

More than 1 year has passed since last update.

概要

WindowsADKがあればイメージ取得や展開にも使えるWindowsPEを作成できるけど、何も考えず作ったものだと色々と具合が悪い。何が具合悪いかというと日本語に対応していなかったりドライバ不足でストレージやNICが見えなかったりする...
これらの諸々の問題を解決するためのWindowsPEメディアの作成方法をまとめておく。

検証環境:

  • Windows10 Enterprise 評価版 1709 x64
  • WindowsADK Windows10 1709用

WindowsADKのインストール

WindowsADK入手先: https://developer.microsoft.com/ja-jp/windows/hardware/windows-assessment-deployment-kit
手順に従ってインストールする。次へ次へ進めていってインストールしてもいいけど、インストールする機能の部分では、必ず次の機能をインストールすること。

  • Windows Preinstallation Enviroment (Windows PE)

WindowsPEメディアを作成する

素のWindowsPEを準備する

WindowsADKで必要な機能をきちんとインストールしていれば「展開およびイメージングツール環境」がインストールされているはず。それを起動して以下のコマンドを実行する。
copypeのオプションは、32bitマシン上での利用を想定しているならx86、64bitマシン上での利用を想定しているならamd64にする。これといった理由がない限り64bitマシン向けに作ってしまって問題ないと思う。

展開およびイメージングツール環境
set WS_DIR={WindowsPE展開先}

copype {x86 | amd64} "%WS_DIR%"
Dism /Mount-Image /Imagefile:"%WS_DIR%\media\sources\boot.wim" /Index:1 /Mountdir:"%WS_DIR%\mount"

参考: https://msdn.microsoft.com/ja-jp/library/hh825071.aspx

日本語化+αを組み込む

日本語言語パックや各種モジュールを組み込んでから日本語を有効にする。モジュールの組み込みに順序がある点に注意。

展開およびイメージングツール環境
set ADK_PATH=C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit
set ADK_PACK=%ADK_PATH%\Windows Preinstallation Environment\amd64\WinPE_OCs
set WS_DIR={WindowsPE展開先}

Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\ja-jp\lp.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\WinPE-FontSupport-JA-JP.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\WinPE-WMI.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\ja-jp\WinPE-WMI_ja-jp.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\WinPE-NetFx.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\ja-jp\WinPE-NetFx_ja-jp.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\WinPE-Scripting.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\ja-jp\WinPE-Scripting_ja-jp.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\WinPE-PowerShell.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\ja-jp\WinPE-PowerShell_ja-jp.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\WinPE-DismCmdlets.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\ja-jp\WinPE-DismCmdlets_ja-jp.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\WinPE-SecureBootCmdlets.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\WinPE-WDS-Tools.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\ja-jp\WinPE-WDS-Tools_ja-jp.cab"
Dism /Image:"%WS_DIR%\mount" /Enable-Feature /FeatureName:SMB1Protocol

Dism /Image:"%WS_DIR%\mount" /Set-Allintl:ja-jp
Dism /Image:"%WS_DIR%\mount" /Set-Inputlocale:0411:00000411
Dism /Image:"%WS_DIR%\mount" /Set-Layereddriver:6
Dism /Image:"%WS_DIR%\mount" /Set-Timezone:"Tokyo Standard Time"

参考: https://msdn.microsoft.com/ja-jp/library/hh824926.aspx

必要に応じてドライバーを組み込む

ストレージやNICがWindowsPE標準ドライバで動かないようなハードウェアに対して利用を想定するのであれば、ドライバーを事前に組み込んでおく必要がある。
例えば、通常のSATA接続HDD/SSDやIntel製NICは問題ないけど、m.2 SSDやRAID環境でディスクが読み込めなかった事があった。

展開およびイメージングツール環境
set WS_DIR={WindowsPE展開先}

Dism /Image:"%WS_DIR%\mount" /Add-Driver /Driver:{ドライバファイル(.inf)パス}

特定のフォルダ内のドライバを一括適用するならこちら。

展開およびイメージングツール環境
set WS_DIR={WindowsPE展開先}

Dism /Image:"%WS_DIR%\mount" /Add-Driver /Driver:{ドライバファイル(.inf)フォルダ} /Recurse

なお、ドライバによっては署名が無く組み込めないものもある。その際にはコマンドの最後あたりに/ForceUnsignedを追加してあげると、署名チェックをオフにできる。
参考: https://technet.microsoft.com/ja-jp/library/dd744355(v=ws.10).aspx

色々組み込んだ内容を適用する

これまで行ってきた操作はまだ本適用されていないので、以下のコマンドを実行して適用する。

展開およびイメージングツール環境
set WS_DIR={WindowsPE展開先}

Dism /Unmount-Image /Mountdir:"%WS_DIR%\mount" /Commit

起動可能メディアに変換する

作成したファイルを起動可能なディスクイメージ(.iso)またはUSBメモリに変換する。USBメモリの場合はフォーマットされるのでデータが残っていないか注意すること。

ディスクイメージ(.iso)を作成する:

展開およびイメージングツール環境
set WS_DIR={WindowsPE展開先}

makewinpemedia /iso "%WS_DIR%" {ディスクイメージ保存先}

起動可能USBメモリを作成する:

展開およびイメージングツール環境
set WS_DIR={WindowsPE展開先}

makewinpemedia /ufd "%WS_DIR%" {USBメモリのドライブレター}:

作成したディスクイメージやUSBメモリから起動すれば日本語版WindowsPEが起動する。
USBメモリに入れて持ち歩くと、保守かなんかで便利。

備考

アンマウントせずにイメージングツール環境を閉じてしまった

作業の途中で/Unmount-Imageしている箇所があるが、これをしないとマウントしっぱなしとなり、該当フォルダの操作が出来なくなる。
誤ってアンマウント処理をしないままゴミが残ってしまった場合には、以下のコマンドでマウント中のすべてのイメージを強制アンマウントできる。

dism /cleanup-wim