Windows PE 3.0にアプリケーションを組み込む

Windows PE 3.0は最小構成のため、多くのコマンドが組み込まれず、簡略化された環境です。そのため、同環境を使いこなす、もしくは利便性を高めるにはユーザーが独自にアプリケーションを組み込んでいかなければなりません。最近では、Windows PE環境への組み込みをサポートした市販のバックアップツールも存在しますが、大抵は自身の手によって組み込む必要があります。

例えば普段から使っているコマンド「foo.exe」を、Windows PE 3.0環境でも使用したい場合、「{作業フォルダ}\mount\Windows」フォルダにコピーします。もちろん「Program Files」フォルダにコピーしても問題ありませんが、Windows PE 3.0の環境変数PATHでは、「X:\Windows\System32;X:\Windows」となっているため、コマンドプロンプトから直接起動するには、WindowsもしくはWindows\System32フォルダにコピーした方がスマートなのです。

一方、アプリケーションを組み込む場合、実行ファイルだけでなく各種設定ファイルやシステムファイルもコピーしなくてはなりません。こちらの手順は煩雑ですので、メジャーなテキストエディタ「秀丸」を例に、アプリケーションをWindows PE 3.0環境に組み込む手順を紹介します。

さて、これまでの手順と同じように、Windows PEイメージファイル(boot.wim)をマウントしてから、普段お使いの秀丸を作業フォルダにコピーします。通常は「%ProgramFiles%\Hidemaru」フォルダをそのまま作業フォルダの「mount\Program Files」フォルダにコピーしてください(図19)。

図19 「%ProgramFiles%\Hidemaru」フォルダを作業フォルダ下の「mount\Program Files」フォルダにコピーします

続いて秀丸から設定内容をレジストリファイルに出力します。こちらは秀丸固有の操作方法ですので、特段説明することはありませんが、背景色が標準状態と異なるなど、筆者が行ったカスタマイズが施されていることを覚えておいてください(図20~23)。

図20 秀丸の<その他>メニューから<設定内容の保存/復元>をクリックします

図21 ダイアログが起動したら、<設定情報をファイルに保存する>をクリックしてチェックを入れてから<次へ>ボタンをクリックします

図22 デスクトップなど任意のフォルダを選択してから、ファイル名を「hidemaru.reg」として<保存>ボタンをクリックします

図23 結果を示すダイアログが表示されたら、<OK>ボタンをクリックします

次に作成したレジストリファイルを、Windows PE 3.0上から参照できるようにするため、作業フォルダ下の「mount」フォルダにコピーします。続いて作業フォルダ下の「mount\Windows\System32」フォルダにある「startnet.cmd」をメモ帳などで編集しましょう。初期状態では、Windows PE 3.0環境を初期化する「wpeinit.exe」の呼び出しが行われていますので、次行に「reg import x:\hidemaru.exe」とレジストリファイルの読み込みを行います(図24~27)。

図24 先ほど作成したレジストリファイルを、作業フォルダ下の「mount」フォルダにコピーします

図25 作業フォルダ下の「mount\Windows\System32」フォルダを開き、「startnet.cmd」ファイルを右クリック。メニューから<編集>をクリックします

図26 行末に「reg import x:\hidemaru.exe」と入力します。メモ帳を終了するため<×>ボタンをクリックしてください

図27 ファイルの保存をうながされますので、<保存する>ボタンをクリックします

これでアプリケーションに組み込み操作が完了しました。あとはWindows PEイメージファイルの変更保存、およびアンマウントを実行し、同イメージファイルを作業フォルダ下の「ISO\sources」フォルダにコピー。ISOイメージファイルを作成すれば作業完了となります。

早速結果を試してみましょう。仮想環境や通常のコンピュータや、ISOイメージファイルもしくはCD-Rに書き込んだメディアから起動しますと、自動的にレジストリファイルの読み込みが行われます。続いて「"x:\Program Files\hidemaru\hidemaru.exe"」と実行すれば、秀丸がWindows PE 3.0上で起動しました。ご覧のように筆者が行ったカスタマイズが反映された状態で起動しています(図28~29)。

図28 自動的に図26で行ったレジストリファイルの読み込みが実行されます

図29 コマンドプロンプト上で「"x:\Program Files\Hidemaru\Hidemaru.exe"」と入力して[Enter]キーを押せば、秀丸が起動します

今回はレジストリ情報を参照するアプリケーションのため、「startnet.cmd」ファイルの編集を行いましたが、レジストリを用いないタイプのアプリケーションなら、ファイルコピーだけで済みます。ただし、%APPDATA%名フォルダなどにデータファイルを作成するタイプの場合、それらを活かすための処理が必要となりますので、色々とお試しください。

実行する内容

Copype x86 C:\WinPE
copy winpe.wim boot.wim
dism /mount-wim /wimfile:C:\WinPE\boot.wim /index:1 /mountdir:C:\WinPE\mount
※組み込むアプリケーションによって操作内容は異なります。
dism /Unmount-Wim /MountDir:C:\WinPE\mount /Commit
copy C:\WinPE\boot.wim C:\WinPE\ISO\sources
oscdimg -n -o -b"C:\WinPE\etfsboot.com" C:\WinPE\ISO C:\WinPE\WinPE.iso

Windows PE 3.0に日本語IMEを組み込む

最後は我々日本人に欠かせない日本語IMEの組み込みにチャレンジしてみましょう。もっともこの操作は煩雑なため、Microsoftが用意したスクリプトファイルを用いるのがもっともスマートです。同社のWeb構成が再構築されるなどのリンク切れを想定し、同様のスクリプトファイルを本稿に用意致しました。

通常はWinPEIMEJP.cmd.txtファイルを使用しますが、64ビット版Windows 7上で32ビット環境用Windows PE 3.0を作成する場合、フォルダ構成が異なりますので、あらかじめ修正を加えた「WinPEIMEJP_x64.cmd.txt」をお使いください。環境に合わせたファイルをメモ帳などで開き、行頭周辺にある「set WinPEWinDir=」の内容を自身の環境に合わせ、書き換えましょう。ただし、本稿で示している「C:\WinPE」フォルダを作業フォルダとして使用している場合は、そのまま使用できます。あとは拡張子を「.cmd」に変更してファイルを保存してください(図30~32)。

図30 「WinPEIMEJP.cmd.txt」もしくは「WinPEIMEJP_x64.cmd.txt」をメモ帳で開き、環境変数「WinPEWinDir」の内容を自身の環境に書き換えます

図31 作業を終えたら<ファイル>メニューから<名前を付けて保存>をクリックします

図32 ダイアログが起動したら、ファイル名のテキストボックスを「"WinPEIMEJP.cmd"」とダブルコーテーションでくくると同時に拡張子を変更し、<保存>ボタンをクリックします

これまでの手順と同じように、Windows PEイメージファイル(boot.wim)をマウントしてから、先ほど作成したスクリプトファイルを実行してみましょう。これでMS-IMEの実行に必要なファイルがWindows PEイメージファイルをマウントしたフォルダにコピーされます(図33)。

図33 「WinPEIMEJP.cmd」をダブルクリックして実行すれば、必要なファイルが自動的にコピーされます

これでMS-IMEの組み込み作業は完了となりました。あとはWindows PEイメージファイルの変更保存、およびアンマウントを実行し、同イメージファイルを作業フォルダ下の「ISO\sources」フォルダにコピー。ISOイメージファイルを作成すれば作業完了となります。

早速結果を試してみましょう。仮想環境や通常のコンピュータや、ISOイメージファイルもしくはCD-Rに書き込んだメディアから起動し、コマンドプロンプトから「notepad.exe」を実行してメモ帳を起動します。メモ帳がアクティブな状態で[半角/全角]キーを押せば、日本語入力が可能になります。コマンドプロンプト上では正しく動作しませんし、ソフトウェアキーボード、設定ツールなどは使用できませんが、簡易的な文字入力環境としてはこれで十分でしょう(図34)。

図34 「notepad」と入力して[Enter]キーを押せば、メモ帳が起動します。メモ帳をアクティブにした状態で[半角/全角]キーを押せば日本語入力が可能となります

実行する内容

Copype x86 C:\WinPE
copy winpe.wim boot.wim
dism /mount-wim /wimfile:C:\WinPE\boot.wim /index:1 /mountdir:C:\WinPE\mount
WinPEIMEJP.cmd
dism /Unmount-Wim /MountDir:C:\WinPE\mount /Commit
copy C:\WinPE\boot.wim C:\WinPE\ISO\sources
oscdimg -n -o -b"C:\WinPE\etfsboot.com" C:\WinPE\ISO C:\WinPE\WinPE.iso

阿久津良和( Cactus