Home −>
その他の細かい調整などなど // 魔法のキキv3

☆ その他の細かい調整などなど   最終更新:2015.3/9

ページ1 −> ページ*


シェル,スタートアップソフトを設定する

BartPEではautorun?.cmdでスタートアップを,レジストリでシェルアプリケーションを登録した.それに対しWindowsPEではwpeshell.iniファイルを使用する仕様になっている.このファイルはデフォルトでは存在せず,そのままだとコマンドプロンプトがシェルになる.
wpeshell.iniで指定するには,メモ帳などでwpeshell.iniを以下の書式で作成する.

[LaunchApp]
AppPath = %systemroot%\system32\pecmd.exe
[LaunchApps]
AppPath = %systemroot%\system32\pecmd.exe

シェルに設定するアプリは[LaunchApp]に,そのほかのスタートアップは[LaunchApps]以下に記述する.
余談だが,シェルに関係するレジストリも見つけることはできるが,PEのヘルプには,他にも影響があるのでいじるなと書いてある.触らないでおこう.


BCDの設定とマルチブート

WindowsVista以降ではブートローダーにBCDを使う.boot.ini(XPまで)ではテキストファイルだったが,BCDはbcdedit.exeをコマンドラインで実行して作成する.難しそう?実際面倒です.ただ,テンプレートを用意するので,その編集だけならそんな難しくはないので安心を.
BCDを使うことにより,CD1枚でRAM-LoadとDisk-Loadのマルチブートとかもできるようになる.メモリの多いマシンではRAM-Load,少ないマシンではDisk-Loadといったように使い分けることが可能になる利点がある.
一回一回コマンドでも良いが,面倒なのでバッチファイルを書いて一気に実行した方がよい.以下に示すのはRAM-LoadとDisk-Loadをマルチブートさせる場合.bcdedit.exeのあるOS(Vista/7)で実行するのはもちろん,バッチファイルはパスにスペースや全角が入らないように(C:\bcdcreat.cmdなど)し,右クリックから,管理者として実行する必要がある.

setlocal
bcdedit.exe /createstore %~dp0BCD21h
bcdedit.exe /store %~dp0BCD21h -create {bootmgr} /d "WindowsPE BootManager"
bcdedit.exe /store %~dp0BCD21h -set {bootmgr} device boot
bcdedit.exe /store %~dp0BCD21h -create {ramdiskoptions} /d "Ramdisk options"
bcdedit.exe /store %~dp0BCD21h -set {ramdiskoptions} ramdisksdidevice boot
bcdedit.exe /store %~dp0BCD21h -set {ramdiskoptions} ramdisksdipath \boot\boot.sdi
bcdedit.exe /store %~dp0BCD21h -deletevalue {ramdiskoptions} description
bcdedit.exe /store %~dp0BCD21h -timeout 7


BCDの基本的な部分を作っている.timeoutは何もしないときに勝手に次に進むまでの時間(秒).

for /f "tokens=2 delims={}" %%i in ('bcdedit.exe /store %~dp0BCD21h -create /d "Windows PE 2.1 RAM-Load" -application osloader') do set BCDGUID={%%i}
bcdedit.exe /store %~dp0BCD21h -set %BCDGUID% device ramdisk=[boot]\sources\boot.wim,{ramdiskoptions}
bcdedit.exe /store %~dp0BCD21h -set %BCDGUID% path \windows\system32\boot\winload.exe
bcdedit.exe /store %~dp0BCD21h -set %BCDGUID% osdevice ramdisk=[boot]\sources\boot.wim,{ramdiskoptions}
bcdedit.exe /store %~dp0BCD21h -set %BCDGUID% systemroot \windows
bcdedit.exe /store %~dp0BCD21h -set %BCDGUID% winpe yes
bcdedit.exe /store %~dp0BCD21h -set %BCDGUID% detecthal yes
bcdedit.exe /store %~dp0BCD21h -displayorder %BCDGUID% -addlast


RAM-Loadをロードする項目.bcdedit.exe /store...を実行すると,GUIDという乱数の羅列が返される上にその次からこの乱数を毎回打つ必要がある.それを自動化するために,forコマンドを使っている.コマンドの説明は省略.
"Windows PE 2.1 RAM-Load"は起動時に表示される文字列.一言で言えば何でも良いということ.2行目と4行目はどのwimファイルを読み込み起動するか.複数のwimファイルをマルチブートするときはここを適宜変えると良い(このブロックをwimの数だけ繰り返すのを忘れずに).detecthal yesは何をやっているのかは不明だがPE2.xでは必須.3.0では省略でいいだろう.

for /f "tokens=2 delims={}" %%i in ('bcdedit.exe /store %~dp0BCD21h -create /d "Windows PE 2.1 Disk-Load" -application osloader') do set BCDGUID={%%i}
bcdedit.exe /store %~dp0BCD21h -set %BCDGUID% osdevice boot
bcdedit.exe /store %~dp0BCD21h -set %BCDGUID% device boot
bcdedit.exe /store %~dp0BCD21h -set %BCDGUID% path \windows\system32\winload.exe
bcdedit.exe /store %~dp0BCD21h -set %BCDGUID% systemroot \windows
bcdedit.exe /store %~dp0BCD21h -set %BCDGUID% winpe yes
bcdedit.exe /store %~dp0BCD21h -set %BCDGUID% detecthal yes
bcdedit.exe /store %~dp0BCD21h -displayorder %BCDGUID% -addlast


Disk-Loadをロードする項目.基本的にはRAM-Loadとやっていることは同じ.複数のDisk-Loadの混在は多分無理.

pause
endlocal


pauseは無くてもいいが失敗したときにわけわかんない.で,作成が成功するとバッチファイルと同じフォルダにBCD21hができているはず(%~dp0はバッチファイル実行フォルダを示す).ファイル名をBCDに変更し(拡張子は無し),PEのboot\BCDに上書きすればよい.
上のをバッチファイルにしたのはこちら.また,他の例として2つのPE3.0のRAM-Loadをデュアルブートする場合を一つ(32/64bitで記述はかわらない).


VistaPEやUBCDのいいところを利用する

VistaPEは標準のPEとは若干ファイル構成が違う上に,場合によってはバグがあってそのままではビルドできなかったりするという欠点があるが,数多くのスクリプトが存在し,いろいろなソフトを導入できることがメリットだと言える.このスクリプトを解読しWinPEに組み込めばより充実するだろう.
また,Ultimate Boot CD(UBCD)も,数多くのツールを搭載しており,うまく利用すると便利だろう.


RAMドライブの容量を変える

PE2.0以降はRAMドライブが標準で搭載されている.この容量は変更することも可能だ.

DISM.exe {/Image: | /Online} [dism_options] {servicing_command} []

/Get-Intl


UIの言語変更?
Dism /image:C:\test\offline /Set-UILang:fr-FR


タイムゾーンの設定

これについては設定しないと使えない機能はない.もし影響があるとすれば,世界標準時に時間が設定されているとファイルの保存日時がおかしくなるというくらいだろう.

Dism /image:<PEのWindowsフォルダ> /Set-TimeZone:"<設定するタイムゾーン>"
例を出すなら
Dism /image:C:\test\offline /Set-TimeZone:"Tokyo Standard Time"
Dism /image:C:\test\offline /Set-TimeZone:"W. Europe Standard Time"


MS-IMEを組み込む :


PEの弱点,その一つに標準で日本語入力ができないというものがある.日本語を入力するためのソフト(コンポーネント)であるMS-IMEが入っていないためだ.つまり,日本語を入力するにはこれを入れてやればよい.(余談だがATOKやGoogleIMEを入れるときもMS-IME(?)の一部のファイルが必要になるっぽい)
幸い,IMEの組み込み方法についてはMSが情報を公開しているのでこれを利用しよう.PC-JAPANの記者が作ったVistaPEスクリプトの方法もあるがこちらはVista/7PEで使うべきだろう.
ただし,重要なことが一つ.MS-IMEはAIKには含まれていないので,入れるには,・現環境からの取り込み,・製品版or評価版インストールDVDからの取り込みのどちらかが必要になる.さらにVista&2008(PE2)とWin7&2008R2(PE3)の間には微妙に互換性がないらしいのでその間での流用もやめた方がいい.なお64bitのWinにも32bitのIMEは搭載されているので64bitから32bitのPEも可能だ.


MSが公開している方法は,1)PEをビルドする前に必要なファイルを組み込む,2)PE起動後にレジストリを書き込む&コンポーネントを起動するバッチファイルを実行する,という方法をとっている.この方法はバッチファイルを実行するだけで済み,必要なときにだけ利用できるのでメモリ節約になるという長所がある.逆にPEを常用する人には向かないか(そういう人はVistaPEのIMEスクリプトを改造した方がいいかも).
まずは以下のコマンドによりIMEファイルを取り込む.64bit環境で32bitのPEを作るときはsystem32フォルダのところをsyswow64に変更が必要だ(そうしないと64bit版MS-IMEが入ってしまう).

英語版PEを作っている人へ.
日本語でないPEを使うとMSの解説そのままではIMEが起動してくれない.キーボードの設定が英語のままだかららしく,設定の変更が必要になる.

/Set-InputLocale: :
Dism /image:C:\test\offline /Set-InputLocale:0410:00010410

一覧は HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\Keyboard Layouts に書いてある.
0409:00000409 米国,KBDUS.DLL
0411:00000411 日本語,KBDJPN.DLL
0411:E0010411 日本語 (MS-IME2002),Kbdjpn.dll
0411:E0200411 ATOK,kbdjpn.dll

MS-IMEを使って日本語を入力したいのであれば,0411:E0010411に設定すればよいだろう.

/Set-LayeredDriver: <1-6>

日本で使われている106キーのキーボードや韓国で使われているうちキーの数が異なっているキーボードの場合はそちらも設定する.

通常の英語キーボードであれば1,韓国のいくつかの101キーのキーボードは2〜4,韓国の103/106キーのキーボードは5,日本語の106/109キーのキーボードは6だ.






PEを起動したら,IMEを起動するバッチファイルを実行する.もちろん起動時に自動的に実行するようにしてもかまわない.



IMEの使い道
ここまで来てなんだが,せっかくIMEを入れても,それを生かせる場は意外と少ないことも覚えておこう.普段だとWordやExcelなどに日本語入力を多用する.しかし,PEではオフィスソフト自体あまり使うとは限らない(MS-Officeの組み込みは困難,OpenOfficeは可能).
使うとすればブラウザだろう.ネットをするときに日本語が入力できなければ知りたい情報を探すことも困難なので.またTrueImageのイメージファイルに入れるコメントも日本語が使えると便利かもしれない.
また,今更だがネットが使えるならブラウザ上で動くIMEを利用するという手もある.



ページ1 −> ページ*


Home −>
広告Scriptは http://x6.syakuhati.com/ufo/089822600 です,Adblockする人へ.