WindowsADKがあればイメージ取得や展開にも使えるWindowsPEを作成できますが、何も考えず作ったものだと日本語に対応していなかったりドライバ不足でストレージやNICが見えなかったりと具合の良くない部分があります。
そこで、不具合を解消した日本語版のWindowsPEメディアの作成方法を紹介します。
WindowsADKのインストール
WindowsADK入手先:
https://developer.microsoft.com/ja-jp/windows/hardware/windows-assessment-deployment-kit
上記サイトからダウンロードしたadksetup.exe
を起動して下さい。
Deployment Tools
は必ず選択して下さい。他は任意ですが、自分はなんとなく全て入れています。
WindowsPEアドオンのインストール
1809からなぜかADKからWindowsPEイメージがアドオンとして分離されたため、別途インストールを行う必要があります。
WindowsPEアドオン入手先:
https://developer.microsoft.com/ja-jp/windows/hardware/windows-assessment-deployment-kit
上記サイトからダウンロードしたadkwinpesetup.exe
を起動して下さい。
Windows Preinstallation Environment (Windows PE)
は必ず選択して下さい。
WindowsPEメディアを作成する
WindowsADKで必要な機能をきちんとインストールしていれば「展開およびイメージングツール環境」がインストールされているはずです。それを管理者権限で起動して以下のコマンドを実行して下さい。
set WS_DIR=C:\winpe
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
rem WindowsPEベース準備
copype amd64 "%WS_DIR%"
rem WindowsPEのマウント
Dism /Mount-Image /Imagefile:"%WS_DIR%\media\sources\boot.wim" /Index:1 /Mountdir:"%WS_DIR%\mount"
rem 日本語化+αで必要なパッケージ追加
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"
rem 機能の有効化
Dism /Image:"%WS_DIR%\mount" /Enable-Feature /FeatureName:SMB1Protocol
Dism /Image:"%WS_DIR%\mount" /Enable-Feature /FeatureName:TelnetClient
Dism /Image:"%WS_DIR%\mount" /Enable-Feature /FeatureName:TFTP
rem 日本語化
Dism /Image:"%WS_DIR%\mount" /Set-Allintl:ja-jp
Dism /Image:"%WS_DIR%\mount" /Set-Inputlocale:0411:{03B5835F-F03C-411B-9CE2-AA23E1171E36}{A76C93D9-5523-4E90-AAFA-4DB112F9AC76}
rem InputLocaleの値は諸説あり 参考: https://docs.microsoft.com/ja-JP/previous-versions/windows/it-pro/windows-8.1-and-8/hh825682(v=win.10)
Dism /Image:"%WS_DIR%\mount" /Set-Layereddriver:6
rem タイムゾーン設定
Dism /Image:"%WS_DIR%\mount" /Set-Timezone:"Tokyo Standard Time"
rem WindowsPEの変更適用とアンマウント
Dism /Unmount-Image /Mountdir:"%WS_DIR%\mount" /Commit
rem isoイメージ化
makewinpemedia /iso "%WS_DIR%" C:\winpe.iso
備考
「WindowsPEベース準備」について
copypeのオプションは、32bitマシン上での利用を想定しているならx86
、64bitマシン上での利用を想定しているならamd64
にする必要があります。今時のハードウェアで64bitに非対応のものはほぼ無いため、よほど古いハードウェアで使う予定でなければ64bitマシン向けに作ってしまって問題ないと思われます。
Windows11は32bitマシンをサポートしません。64bit非対応のマシンで利用したい場合はWindows10ベースのWindowsPEを作成して下さい。
「日本語化+αで必要なパッケージ追加」について
Add-Package
にて追加している各種パッケージの詳細は以下を参照して下さい。
https://docs.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/winpe-add-packages--optional-components-reference?view=windows-11
WindowsPEにドライバを追加したい場合
稀にNICやストレージがWindowsPEでは認識できない場合があります。特にストレージは致命的で、イメージの操作自体ができません。
その場合は以下の手順にてWindowsPEにドライバを追加可能です。
set WS_DIR=C:\winpe
rem WindowsPEのマウント
Dism /Mount-Image /Imagefile:"%WS_DIR%\media\sources\boot.wim" /Index:1 /Mountdir:"%WS_DIR%\mount"
rem ドライバ追加
rem INFファイル直接
Dism /Image:"%WS_DIR%\mount" /Add-Driver /Driver:{ドライバファイル(.inf)} /ForceUnsigned
rem 例: Dism /Image:"%WS_DIR%\mount" /Add-Driver /Driver:E:\Drivers\example.inf /ForceUnsigned
rem 指定ディレクトリ丸ごと
Dism /Image:"%WS_DIR%\mount" /Add-Driver /Driver:{ドライバファイル(.inf)フォルダ} /Recurse /ForceUnsigned
rem 例: Dism /Image:"%WS_DIR%\mount" /Add-Driver /Driver:E:\Drivers /Recurse /ForceUnsigned
rem WindowsPEの変更適用とアンマウント
Dism /Unmount-Image /Mountdir:"%WS_DIR%\mount" /Commit
なお、ストレージに関するドライバ不足がPEで起きる環境にて、Hyper-V等で作成したドライバが入っていないWindowsイメージを展開した場合にブルースクリーンが発生する場合があります。その場合は、該当PC上にドライバが入ったUSBメモリ等を接続した状態でWindowsPEを起動して、以下のコマンドで直接ドライバを投入することも可能です。投入後起動を確認できたら、ドライバは正式な手順で入れておいた方が良いかもしれません。
Dism /Image:"C:\" /Add-Driver /Driver:{ドライバファイル(.inf)フォルダ} /Recurse /ForceUnsigned
rem 例: Dism /Image:"C:\" /Add-Driver /Driver:E:\Drivers /Recurse /ForceUnsigned
ドライバの取り出し方について
以前はDoubleDriverというソフトを用いて取り出していましたが、OS標準でコマンドが用意されていました。展開作業を行う場合には、メーカープリインストール状態のOSにて以下のコマンドで取り出しておくといいと思います。
Dism /Online /Export-Driver /Destination:{ドライバファイル出力先フォルダ}
rem 例: Dism /Online /Export-Driver /Destination:"C:\Drivers"
イメージ化について
isoファイルとしてイメージ化する他、起動USBメモリを作成することも可能です。こちらのほうがCDを無駄にしなくて良いかもしれません。
set WS_DIR=C:\winpe
makewinpemedia /ufd "%WS_DIR%" {USBメモリのドライブレター}:
rem 例: makewinpemedia /ufd "%WS_DIR%" F:
アンマウントせずにイメージングツール環境を閉じてしまった場合
作業の途中で/Unmount-Image
している箇所がありますが、これをしない状態でツール環境画面を閉じてしまうとマウントしっぱなしとなり、管理者であっても該当フォルダの操作が出来なくなってしまいます。
その際には、コマンドプロンプトで以下のコマンドを実行すると、マウント中のすべてのイメージを強制アンマウントできます。
Dism /Cleanup-Wim
参考
https://msdn.microsoft.com/ja-jp/library/hh825071.aspx
https://msdn.microsoft.com/ja-jp/library/hh824926.aspx
https://technet.microsoft.com/ja-jp/library/dd744355(v=ws.10).aspx