読者です 読者をやめる 読者になる 読者になる

とある技術者のお遊びフライト日記

ゲームをきっかけに国内飛び回る謎な人の日記。時々技術ネタもご提供。

汎用性の高いWindows PE 5.0 (x64)メディアの作り方

English version of this article available from here.
Windows 8.1がベースのWindows PE 5.0で、展開・リカバリ・メンテナンスなどができる、汎用性の高いメディア(x64版)を作る方法です。
ここで紹介する手順で作成したものは、CD・USBメモリのどちらからでも起動できます。
また、Windows PE 5.0を使用するコンピューターが、BIOS/UEFIシステムのどちらか、かを問いません。

この手順で作成したPE 5.0の起動に要する時間は、USBメモリ版が約1〜2分、CD版は5〜7分ほどです。

重要な注意点

x64Windows PE上で実行可能なアプリケーションについて
アーキテクチャ 開発言語等 GUI/CUI 実行可否
32bit(x86) C/C++ すべて ×
32bit(x86) .net すべて ×
64bit(x64) C/C++ すべて
64bit(x64) .net CUI △(未確認)
64bit(x64) .net GUI ×
IMEの組み込み

IMEの組み込みは不可能です。Windows PE 4.0以降、IMEの組み込みはMicrosoftもサポートしていません。

ネットワークドライバ

Windows PEには、あらかじめ代表的なネットワーク デバイスのドライバが含まれています。そのまま使えるかどうか不安な場合はWinPE: マウントとカスタマイズ(MSDN)を参照し、ドライバの追加を行ってください。

作成手順

Windows ADKのインストール

Windows Assessment and Deployment Kit (Windows ADK)を、http://www.microsoft.com/ja-jp/download/details.aspx?id=39982からダウンロードし、インストールします。
ADKのインストール方法は、運用:管理者必携のトラブルシューティングツール「Windows PE 5.0」の起動用USBメモリを作成する (1/2) - @ITの1ページ目と同じです。

作業用ディレクトリとデータの準備

スタートメニューの「Windows Kits」―「Windows ADK」ー「展開およびイメージング ツール環境」を、管理者権限で実行します。
Windows ADKコマンドプロンプトが開いたら、下記コマンドを入力します。

copype amd64 C:\winpe_x64

コマンド実行後、下記ディレクトリが自動で作成され、必要なデータが展開されます。

C:\winpe_x64
C:\winpe_x64\fwfiles
C:\winpe_x64\media
C:\winpe_x64\mount
ブートイメージのマウント

下記コマンドで、Windows PE ブートイメージをマウントします。

Dism /mount-image:C:\winpe_x64\media\sources\boot.wim /index:1 /mountdir:C:\winpe_x64\mount
オプション コンポーネントの追加

必要なコンポーネントを追加していきます。
追加するコンポーネントと、他に追加可能なコンポーネントの詳細については、WinPE: パッケージの追加 (オプション コンポーネント リファレンス)を参照してください。

また各コマンドは、すべて一行で入力しなければならないことに注意してください。
1. WMI:Windows Management Instrumentation(WinPE-WMI)

Dism /image:C:\winpe_x64\mount /Add-package /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WMI.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-JP\WinPE-WMI_ja-jp.cab"

2. 802.1Xを含む有線ネットワークのサポート(WinPE-RNDIS, WinPE-Dot3Svc)

Dism /image:C:\winpe_x64\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-RNDIS.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-JP\WinPE-RNDIS_ja-jp.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-Dot3Svc.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-JP\WinPE-Dot3Svc_ja-jp.cab"

3. 暗号化ドライブなどのサポート(WinPE-EnhancedStorage)

Dism /image:C:\winpe_x64\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-EnhancedStorage.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-JP\WinPE-EnhancedStorage_ja-jp.cab"

4. イメージキャプチャツールと展開サービスクライアント(WinPE-WDS-Tools)
(注)WDSは、監査モードと密接な関連を持ちます。監査モードについては監査モードで環境複製用のマスタ・イメージをカスタマイズする(Windows 7/Server 2008 R2編) − @ITを、WDSについては、クライアントの展開(WDS/WAIK/Windows PE/ImageX)をご参照ください。

Dism /image:C:\winpe_x64\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WDS-Tools.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-JP\WinPE-WDS-Tools_ja-jp.cab"

5. BitLockerとTPMのサポート(WinPE-SecureStartup)
WinPE-WMIを入れた後で追加します。

Dism /image:C:\winpe_x64\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-SecureStartup.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-JP\WinPE-SecureStartup_ja-jp.cab"

6. 機能限定版の.net Framework 4.5 (WinPE-NetFX)
WinPE-WMIを入れた後で追加します。

Dism /Image:C:\winpe_x64\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-NetFx.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-JP\WinPE-NetFx_ja-jp.cab"

7. WSHWindows Scripting Host(WinPE-Scripting)
WinPE-WMI, WinPE-NetFXを入れた後で追加します。

Dism /Image:C:\winpe_x64\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-Scripting.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-JP\WinPE-Scripting_ja-jp.cab"

8. 機能限定版のWindows PowerShell(WinPE-PowerShell
WinPE-WMI, WinPE-NetFX, WinPE-Scriptingを入れた後で追加します。

Dism /image:C:\winpe_x64\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-PowerShell.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-JP\WinPE-PowerShell_ja-jp.cab"

9. DISM コマンドユーティリティ(WinPE-DismCmdlets)
WinPE-WMI, WinPE-NetFX, WinPE-Scripting, WinPE-PowerShellを入れた後で追加します。

Dism /image:C:\winpe_x64\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-DismCmdlets.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-JP\WinPE-DismCmdlets_ja-jp.cab"

10. iSCSIなどの記憶域管理用 PowerShellコマンドユーティリティ(WinPE-StorageWMI)
WinPE-WMI, WinPE-NetFX, WinPE-Scripting, WinPE-PowerShellを入れた後で追加します。

Dism /image:C:\winpe_x64\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-StorageWMI.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-JP\WinPE-StorageWMI_ja-jp.cab"

11. 日本語言語パックと日本語フォント

Dism /image:C:\winpe_x64\mount /Add-package /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-FontSupport-JA-JP.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-jp\lp.cab"
その他のオプション コンポーネントの追加

必要に応じて、展開やメンテナンスの作業性向上を目的とした、コンポーネントの追加を行います。
この手順が必要ない場合は、飛ばしてもかまいません。

1. HTML アプリケーションサポート(WinPE-HTA
HTML アプリケーションのサポートにより、操作しやすいユーザー インターフェースが実装でき、定型的な作業の省力化が見込めます。

Dism /image:C:\winpe_x64\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-HTA.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-jp\WinPE-HTA_ja-jp.cab"

2. 削除されたファイルを検出し、回復する操作をサポートするAPI(WinPE-FMAPI)
これを使って削除されたファイルを検出・回復するよりは、PhotoRec (http://www.cgsecurity.org/wiki/PhotoRec)など、専用ソフトのご利用をおすすめします。
このパッケージには、対応する日本語言語パックがありません。

Dism /image:C:\winpe_x64\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-FMAPI.cab"

3. セキュアブート環境での環境変数管理用PowerShellコマンドユーティリティ(WinPE-SecureBootCmdlets)
用途等を含め、詳細は不明です。
このパッケージには、対応する日本語言語パックがありません。

Dism /Add-Package /Image:"H:\winpe_x64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-SecureBootCmdlets.cab"  
PE 5.0を日本語環境にする

1. 入力・システム・ユーザーロケールとUIの言語を日本語にします。

Dism /image:C:\winpe_x64\mount /Set-AllIntl:ja-jp
Dism /image:C:\winpe_x64\mount /Set-InputLocale:0411:00000411

2. キーボードを日本語配列にします。

Dism /image:C:\winpe_x64\mount /Set-LayeredDriver:6

理由があって英語キーボードとしたい場合は、下記の通りとなります。

Dism /image:C:\winpe_x64\mount /Set-LayeredDriver:1

3. 時間帯を日本標準時にします。

Dism /image:C:\winpe_x64\mount /Set-TimeZone:"Tokyo Standard Time"
独自のプログラムやファイルの追加

運用:管理者必携のトラブルシューティングツール「Windows PE 5.0」の起動用USBメモリを作成する (2/2) - @IT の『手順4――(オプション)ユーザー独自のプログラムやデータの追加』をご覧の上、必要に応じて追加してください。

変更の適用

ブートイメージに、これまで行った変更の内容を適用します。

Dism /Unmount-Image /mountdir:C:\winpe_x64\mount /commit

逆に何か理由があって変更内容を破棄したい場合は、下記のコマンドを入力します。

Dism /Unmount-Image /mountdir:C:\winpe_x64\mount /discard
ブートメディアの作成

ISOイメージを作成するか、USBメモリへ直接書き込むことができます。
USBメモリへ書き込む場合は、内容がすべて消去されますのでご注意ください。

ISOイメージを作成する

makewinpemedia /iso C:\winpe_x64 C:\winpe_x64\winpe50_x64.iso

USBメモリへ直接書き込む(USBメモリがドライブ F:\ と認識されている場合)

makewinpemedia /ufd C:\winpe_x64 F:

以前との変更点
Windows PE 3.0では、BIOSのみ・UEFIのみ・BIOS/UEFI両方から起動する、3種類のメディアを作成できました。
しかしWindows PE 5.0では、これらの区別がなくなり、常にBIOS/UEFIどちらの環境でも起動可能なメディアが作成されます。
BIOS/UEFIのどちらで起動させるかは、使用するコンピューターの起動時にBIOS/UEFIメニューから選択してください。

使用例

ここでは、監査モードで作成した展開用の環境をイメージ化し、それを別のコンピューターへ適用するシナリオを考えます。
下記例にあるDISMコマンドのオプションの詳細については、DISM イメージ管理のコマンド ライン オプションをご覧ください。

展開用環境のイメージ化

ご注意:イメージの吸い出しには、ご使用のマシンの構成などにもよりますが、1時間ほどかかる場合があります。

DISMコマンドで展開用イメージを作成する際に、既定で除外されるファイル・フォルダについては、DISM 構成一覧と WimScript.ini ファイルをご覧ください。

吸い出し対象がドライブ C:\ で、イメージ保存場所がドライブ D:\ の場合は下記の通りです。

Dism /Capture-Image /ImageFile:D:\my-factory-image.wim /CaptureDir:C:\ /Name:"My Factory Image" /CheckIntegrity /Verify

吸い出し時に、イメージの圧縮を同時に行うことができます。圧縮レベルはnone(無圧縮), fast, maxの三段階です。
圧縮レベルを指定しなかった場合(既定の動作)は、fastが指定されます。
圧縮レベルmaxを指定する場合は下記の通りとなります。

Dism /Capture-Image /Compress:max /ImageFile:D:\my-factory-image.wim /CaptureDir:C:\ /Name:"My Factory Image" /CheckIntegrity /Verify
イメージ化した環境を別のPCへ展開する

適用するイメージのファイル名が my-factory-image.wim で、ドライブ D:\ に保存されており、これをドライブ C:\ へ適用する場合のコマンドは下記の通りです。
(2014/8/21 コマンドラインオプション“/Index:1” が必要なことに気付き修正)

Dism /Apply-Image /ImageFile:D:\my-factory-image.wim /Index:1 /ApplyDir:C:\ /CheckIntegrity /Verify
展開終了後

まず、起動に使用したメディアを取り外します。
作業終了後、再起動する場合は

wpeutil reboot

シャットダウンする場合は、

wpeutil shutdown

とします。