既定プロファイルを作成する際に必要な応答ファイル(unattend.xml)を調達する

既定プロファイル、デフォルトプロファイルは、システムにユーザーが初めてログオンする際に適用される、各種設定のテンプレートとなるものであり、XP時代は Documents and Settings\Defaults フォルダ内に格納されていました。

このため、当時は当該フォルダを触れば自由にカスタマイズを行うことができましたが、ご存じの通り、Vista以降のOSで既定プロファイルを触ろうとすると、

  1. Administratorアカウントで編集作業を行い
  2. Sysprep コマンドに応答ファイルを食べさせて一般化

というより複雑な手順を踏む必要があります。

が、Sysprepコマンドで一般化(generalize)を行う際に必要な応答ファイル(unattend.xml)を作成するには WAIK を使いましょう、というのが公式見解になっており、その際にインストールディスクが必要になりますが、

  • 余程大規模な導入でなければOEM版のWindowsを選択するケースが多い
  • OEM版だと、リカバリディスクと称して配布されるディスクはネイティブなOSが格納されたインストールディスクではない場合が多い(WIMでHDDイメージを固めただけ、とか)
  • あるいは、HDDの隠し領域にリカバリ領域が設定されており、通常ユーザーがアクセスできるものではないケースも多々ある

という矛盾があり、八方ふさがりになっています。

というわけで、Windows7でDefaultプロファイルの作成 - kenmituoの日記から拝借しつつ Win7 向けに書き換えた、最低限 CopyProfile に必要な応答ファイルはこちら。なお、generalize には認証回数を消費するという罠があるので、 SkipRearm もつけています。

厄介なのが応答ファイル側でアーキテクチャx86/amd64)を明示する必要があることと、Vistaと7/8で同じ機能でもComponent名が変更になっているケースが多々ある*1ことで、ここは特に注意が必要です。

いずれにしても publicKeyToken は変化ないように思うので(それもそれで変な話ですが)、 processorArchitecture だけに注意すればいいかなと思いますが…。

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
  <settings pass="specialize">
    <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
      <CopyProfile>true</CopyProfile>
    </component>
  </settings>
  <settings pass="generalize">
    <component name="Microsoft-Windows-Security-SPP" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
      <SkipRearm>1</SkipRearm>
    </component>
  </settings>
</unattend>

*1:たとえば、 SkipRearm も Vista では Microsoft-Windows-Security-Licensing-SLC だけど、 7/8 では Microsoft-Windows-Security-SPP とか