======アクティベーションの回避(SLP化)======
リテール版のXPはインストールするたびに認証(アクティベーション)が必要になる。何度もインストールし直していると、そのうち電話による認証を求められることもある。これがたいへん面倒なので、できれば認証作業自体を回避したいところだ。そもそもThinkPadにはOEM版のXPがプリインストールされているのだから、その情報をリテール版インストールメディアに反映できれば、アクティベーションを回避できるはずだ。\\
プリインストールの事前ライセンス認証に使われている**SLP**という技術は、メーカー製PCのBIOS情報と、OEM版XPのSLP情報を比較して、一致すればアクティベーションが不要になる仕組みだ。SLP情報は、以下の二つで構成されている。\\
- **専用プロダクトキー**
- **OEMBIOSファイル群**
これをプリインストールされた稼働中のXPから取得する。
====プロダクトキーの取得====
まずは、__プリインストールされたWindows XP__を起動し、そのプロダクトキーを取得する。これはPC本体に貼り付けてある[[https://www.microsoft.com/ja-jp/howtotell/Hardware.aspx|COA(Certificate of Authenticity)]]キーとは別のキーだ。
rmdir /s /q .\OEMFILES
mkdir .\OEMFILES
copy %systemroot%\system32\OEMBIOS.BIN .\OEMFILES
copy %systemroot%\system32\OEMBIOS.DAT .\OEMFILES
copy %systemroot%\system32\OEMBIOS.SIG .\OEMFILES
attrib -S %systemroot%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\OEMBIOS.CAT
copy %systemroot%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\OEMBIOS.CAT .\OEMFILES
attrib +S %systemroot%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\OEMBIOS.CAT
dir .\OEMFILES
カレントフォルダ下のOEMFILESに上記四つのファイルがコピーされる。
====CAB圧縮する====
ここまではThinkPad上にプリインストールされたXP上で作業してきたが、ここらか先は__XPのインストールイメージを作る作業環境にOEMFILESフォルダをコピーして行う__。得られた四つのファイルをCAB圧縮する。makecab.exeコマンドを使う。
makecab OEMBIOS.BIN
makecab OEMBIOS.DAT
makecab OEMBIOS.SIG
makecab OEMBIOS.CAT
すると、**OEMBIOS.BI_**、**OEMBIOS.DA_**、**OEMBIOS.SI_**、**OEMBIOS.CA_**というファイルができる。
====SETUPP.INIの修正====
XPのインストールイメージのI386フォルダに、**SETUPP.INI**というファイルがある。それをハードディスクにコピーして、Pidの行の最終3桁を**"OEM"**に書き換える。
[Pid]
ExtraData=786F687170637175716954806365EF
Pid=55383OEM
Pidを書き換えるのは、上記の**SLP専用ライセンスキー**を受け付けるようにするためだ。詳しくは[[xp-licence]]を参照していただきたい。
====インストールイメージにコピー====
さて、OEMBIOS.*とSETUPP.INIを、[[slipstream-updates]]で作ったインストールイメージにコピーしよう。(環境変数SSTARGETを設定しておくように)。
copy /y OEMBIOS.BI_ %SSTARGET%\I386\
copy /y OEMBIOS.DA_ %SSTARGET%\I386\
copy /y OEMBIOS.CA_ %SSTARGET%\I386\
copy /y OEMBIOS.SI_ %SSTARGET%\I386\
copy /y SETUPP.INI %SSTARGET%\I386\
その後は、[[slipstream-updates]]にあるように、makeiso.batでISOイメージを作り、それを使ってXPをインストールしてみた・・・。
{{ :t-39error.jpg?nolink |致命的なエラーが発生}}
・・・が、T-39で**致命的なエラーが発生**してしまった。「製品カタログをインストールできませんでした」とな。どうも、ファイルを入れ替えたのがインストーラにバレてしまったようだ。これはどうしたものか。
====順番が大事====
試行錯誤した結果、サービスパックを適用する前に、OEMBIOS.*ファイルを入れ替えてしまえば良いことがわかった。具体的には、[[slipstream-updates#統合まとめ]] で、\\
**SSINIT.bat → SSSP3.BAT → make.bat**\\
となっていて、その次にcopyoem.batを実行しているのを、\\
SSINIT.bat **→ copyoem.bat** → SSSP3.BAT → make.bat\\
の順で実行する。\\
これでなんとか無事にインストールできた。インストールには、上記で取得した専用プロダクトキーを入力する。
%systemroot%\system32\oobe\msoobe.exe /a
コマンドラインから上記のコマンドを実行してみると・・・
{{ :xp-activated.jpg?nolink |msoobe.exe /a の実行結果}}
ライセンス認証が済んでいると教えてくれた。
{{ :wga-verified.png?nolink |WindowsXP-KB905474-JPN-x86.exeの実行結果}}
Windows Updateを実行すると、[[updates-silent-installer|update.vbs]]から外してあるKB905474(WGA通知アプリケーション)がインストールされる(正規品と判定される)。
{{ ::wga-genuine.png?nolink |MGAdiag.exeの実行結果}}
[[xp-wga#診断ツール_mgadiagexe|MGAdiag.exe]]でもGenuineと判定される。
**コラム --- 稼働しているXPのSLP化**
では、既にインストールしてあるリテール版のXPに、SLP情報を適用することはできるのだろうか? 結論から言えば**可能**だ。SLP用のプロダクトキーに変更した上で、OEMBIOS.*ファイル群をコピーすれば良い。\\
\\
プロダクトキーの変更は、[[windows-product-key-update-tool|Windows Product Key Update Tool]]を使う。\\
その上で、__XPをセーフモードで起動__して、OEMBIOS.*ファイル群をコピーする。コピーするためのスクリプト(BATファイル)はこんな感じ。
attrib -S %systemroot%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\OEMBIOS.CAT
del %systemroot%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\OEMBIOS.CAT
copy /y .\OEMFILES\OEMBIOS.BIN %systemroot%\system32
copy /y .\OEMFILES\OEMBIOS.DAT %systemroot%\system32
copy /y .\OEMFILES\OEMBIOS.SIG %systemroot%\system32
copy .\OEMFILES\OEMBIOS.CAT %systemroot%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\
attrib +S %systemroot%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\OEMBIOS.CAT
再起動すれば、アクティベーション済みになる。((リテール版XPがアクティベーションの期限を過ぎて[[xp-activation#機能制限モード]]になってしまった場合は、[[windows-product-key-update-tool|Windows Product Key Update Tool]]は使えない(セーフモードではネットが接続されないため)。その場合には、稼働しているOEM(SLP)版のXPでレジストリ値 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId(およびLicenseInfo)をエクスポートし、セーフモードでインポートしてからcopyto.batを実行する。))
----
===参考サイト===
* [[http://windowstipsclub.blogspot.com/2011/03/slipstreamed-winxpsp3-with-oembios.html|Slipstreamed WinXPSP3 with OEMBIOS Activation]] (Windows Tips Club)
* [[http://windowstips.web.fc2.com/XP.html|Windowsのプリインストール認証をクリーンインストールで復元する方法 (XP編)]] (ちょいマニアックなWindowsの教科書)
* [[https://technet.microsoft.com/ja-jp/library/bb457078.aspx|Windows XP を再インストールするときの、OEM の事前ライセンス認証の保持]] (technet.microsoft.com)