Windows AIK や sysprep を使ってカスタムのWindows7のイメージを作成したので、その覚書です。
本来は、もっと前に参考のスクリーンキャプチャなども貼り付けて書く予定でしたが、すでに旬が過ぎようとしているので、あくまでも覚書用にとっておいた文書をまとめて個々に記録しておきます。

というのも、近々、Windows10の展開用イメージを作成したいので、過去の作業内容を振り返るため、というのもあります。

あくまでも、ここで記していることについては、自身の作業の記録であり、この作業の結果生じた問題については責任を負いません。

必要なもの

  • Windows7 SP1 ボリュームライセンス(MAK)イメージファイル
  • 参照マシン(VirtualBOX上で作成)
  • 作業マシン(自身のパソコン Windows7 64bit)
  • Windows AIK

もちろん、最終的には展開先となる、、

  • OEMインストールされたパソコン

が必要になります。

ゴール

次のような設定が施された、カスタムのWindows 7 インストールイメージを作成する。

  • Windows7 SP1 32bit版 + 可能な限りのWindows updateを適用
  • 管理用ユーザアカウントの登録
  • 社内で必須のアプリケーションのインストール
    → Firefox、Thunderbird等
  • ユーザプロファイルの雛形を適用したい
  • Firefoxで標準的なブックマークを登録
  • Firefoxで必須のアドオンを追加(Noscript、IE-tab)
  • アドオンの標準設定(Noscriptのホワイトリスト等)
  • カスタムの壁紙
  • カスタムのテーマ適用
  • タスクバーのアイコンのカスタマイズ
  • ファイアウォールの設定

Windows AIK のインストール

次のリンクを参照にして、作業マシン上で、Windows AIK のインストールをする。
詳細については、Windows 自動インストール キット (Windows AIK) のインストール を参照。

Windows PE メディアの作成

作業マシン上で作業

Deploymentツールのコマンドプロンプト

Deploymentツールのコマンドプロンプトは、[すべてのプログラム] → [Windows AIK] → [Deploymentツールのコマンドプロンプト]
を右クリックして[管理者として実行]、で開く事ができる。

Windows PE メディア作成の準備

以下の作業は、[Deploymentツールのコマンドプロンプト]で実行する。

Copype.cmdを実行して、Win PE メディアに必要なファイルをコピーする。

copype.cmd x86 C:\WinPE-x86

次に、Win PE の起動イメージwinpe.wimboot.wimとしてISOフォルダにコピーする。

copy c:\WimPE-x86\wimpe.wim c:\WimPE-x86\ISO\sources\boot.wim

参照マシンのイメージ化に必要なファイル( ImageX )をコピー。

copy "c:\Program Files\Windows AIK\Tools\x86\imagex.exe" c:\WinPE-x86\ISO

ネットワーク接続用のバッチファイル(例: ifup.bat)を作成。

netsh int ip set address "ローカル エリア接続" static IPアドレス ネットマスク ゲートウェイアドレス

static以降は、例として static 192.168.1.20 255.255.255.0 192.168.1.1になる。

また、必要に応じてネットワークドライブ接続のスクリプトもバッチファイルに入れておく。Windows PE 起動後に直接コマンドを打っても良いので、これは必須ではない。
以下の例は、

  • 共有名: \\share\wim
  • 共有にアクセスするユーザー名: administrator
  • アクセスするユーザーのパスワード: p@ssw0rd

としている。

net use y: \\share\wim p@ssw0rd /user:adminuser

このバッチファイルをISOフォルダに作成、またはコピーする

copy ifup.bat c:\WinPE-x86\ISO

その他の必要になる、ファイル、ドライバのファイルをコピーするときには、このISOフォルダにコピーしておく。
今回は VirtualBOX 上での作業なので、他に必要なドライバはない。

Windows PE のイメージファイルを作成

[Deploymentツールのコマンドプロンプト]上で、次のコマンドで Windows PE イメージを作成する。

oscdimg -n -bc:\WimPE-x86\winpe-x86.iso

このISOファイルが、Windows PE 起動ディスクのイメージファイルとなる。
本来はCD-Rに焼いたりするが、今回は仮想マシンに直接マウントするので、このままにしておく。

無人応答ファイルの作成

作業マシン上で作業。

Windows AIK に同梱されている、Windows System Image Manager (SIM) を開く。

スタートメニューで、[Microsoft Windows AIK] → [Windows システム イメージマネージャ] を選択。

Windowsカタログファイルを読み込ませる

Windows7 SP1 ボリュームライセンスのイメージファイル( iso )を、何らかの方法1で作業マシンにマウントする(仮にH:とする)。

  • SIMで、[ファイル] → [イメージの選択]でH:\sources フォルダーの中に *.clg ファイルが有ると思うので、該当するカタログファイルを選択する。
    この場合は、install_windows 7 professional.clg というファイル2になる。

応答ファイル( unattend.xml )を編集する

1). windowsPE
    `-- x86_Microsoft-Windows-International-Core-WinPE
        |-- InputLocale: ja-JP
        |-- SystemLocale: ja-JP
        |-- UILanguage: ja-JP
        `-- UserLocale: ja-JP
3). generalize
    |-- x86_Microsoft-Windows-PnpSysprep_newtral
    |   |-- DoNotCleeanUpNonPresentDevices: true
    |   `-- PersistAllDeviceInstalls: true
    `-- x86_Microsoft-Windows-Security-SPP_newtral
        `-- SkipRealm: 1
            ※テスト時は1で、本番作成時に0にする
4). specialize
    `-- x86_Microsoft-Windows-Shell-Setup_newtral
        |-- CopyProfile: true
        `-- DoNotcleanTaskBar: true ※(但し反映されない!?)
5). oobeSystem
    |-- x86_Microsoft-Windows-International-Core_neutral
    |   |-- InputLocale: 0411:E0010441
    |   |-- SystemLocale: ja-JP
    |   |-- UILanguage: ja-JP
    |   `-- UILanguageFallback: ja-JP
    `-- x86_Microsoft-Windows-Shell-Setup_newtral
        `-- TimeZone: Tokyo Standard Time
            (※ ここにもDoNotCleanTaskBarがあるが未検証)
  • 不要なコンポーネントやアイテムは削除する
  • 作成し終わったら、[ツール] → [応答ファイルの検証]でエラーをチェックし、問題なければ保存。
  • 仮にファイル名をunattend.xmlとする。

参照マシンを作成

  • 参照マシンはバーチャルボックス上で作成する。
  • 仮想ディスク容量は初期値の25Gibでは後で足りなくなるので、50GiBとする。
  • ネットワークはNATからブリッジアダプターに
  • 展開先のコンピュータが全て同一のハードウェア構成出ない場合は、関連するハードウェアのドライバをインストールしない。
    • グラフィックスドライバ
    • ネットワークインターフェースのドライバ
    • サウンド関連のドライバ
    • etc..
  1. Windows7のインストール
  2. ローカルアカウントの削除
    まず、ローカルのAdministratorを有効にしてから、インストール時に作成したローカルアカウントを削除する。
    今後の参照マシン上での作業はAdministratorで行う。
  3. Windows Update をかける
    → SP1のディスクからインストールしても相当な時間がかかるので、時間をかけて更新していく
  4. アプリケーションのインストール
    → Firefox、Thunderbird、Adobe Reader、Adobe Flash、JREをインストール3
  5. あと、必要なプリンタドライバのインストールを行う。ポートの設定はLPT1など適当に割り振りをしておく(実際の設定は実機にインストールする時)4

デフォルトユーザプロファイルの作成

すべてのユーザーに同じような利用環境ができるように、環境を整える。以下は、例。

  • Firefoxでアドオンを追加
    • 共通のブックマークを作成
    • ホームページの設定
    • IE TAB のインストールとIE TABのサイト設定を行う
    • NoScript のインストールとホワイトリストの作成
  • JREのインストールと設定
    → Java Config で自動更新しないように設定する。(Java Configを開くときには管理者で開く事)
  • MyDocument に必要に応じて社内共通のフォルダを作成する。
  • MyPicture にあるサンプルイメージにカスタムの壁紙をコピーしておく。
  • Windowsのテーマをカスタマイズしておく。例えば:
    • デスクトップのアイコンサイズを小にして、アイコンの縦横の間隔を変更。
    • タスクバーのアイコンサイズも小にする。
    • 壁紙を社名入りの壁紙に変更する。
    • この設定をテーマとして保存

Sysprepによる一般化

この時点では、以下のものがあるとする。

  • Windows7 SP1 ボリュームライセンス(MAK)イメージファイル
  • 設定済みの参照マシン
  • 無人応答ファイル(unattend.xml)
  • Windows PE 起動イメージファイル(winpe-x86.iso)

WinDVD展開ファイルを作業マシン上に作成

Windows7 SP1 ボリュームライセンス(MAK) のイメージファイルを、何らかの方法で作業マシンにマウントする(仮にH:とする)。
管理者でコマンドプロンプトを開く

mkdir c:\Win7-Custom
xcopy h: c:\Win7-Custom /s

参照マシンに応答ファイル(unattend.xml)をコピー

参照マシンの以下のパスに置くのがいいと思う。

C:\Windows\System32\sysprep\unattend.xml

※バーチャルボックスを使っている場合は、この段階で仮想マシンをクローンするのが後々効率がよい。

参照マシンで sysprep を実行

参照マシンで管理者でコマンドプロンプトを起動する

cd c:\Windows\System32\sysprep
sysprep /generalize /oobe /shutdown /unattend:unattend.xml

sysprepが実行され、自動的にシャットダウンされる。

参照マシンに winpe-x86.iso をマウントしてネットワークドライブに接続

バーチャルボックス前提の説明

  • sysprepした仮想マシン(シャットダウンされている状態)を右クリックで [設定]
  • [ストレージ] を選択
  • [ストレージツリー] から光学ディスクを選択
  • [属性] ペインの光学ドライブの選択ボックス横の、CD-ROMマークのアイコンをクリック
  • [仮想光学ディスクファイルを選択] を選択で、winpe-x86.iso を選択。
  • 仮想マシンを起動。
  • 画面にPress any key to boot from CD or DVD....が出てきたら、何かキーを押す。
  • WindowsPEが起動するのを待つ。
  • コマンドプロンプトが立ち上がって、準備が出来たら、ネットワークインターフェースを有効にして、共有フォルダをネットワークドライブとしてマウントする。
E:\ifup.bat
net use y: \\作業PCのIP\c$ 作業PC管理者パスワード /user:作業PCの管理者
コマンドは正常に終了しました。

参照マシン上で、Windows イメージファイルの生成

参照マシンのC:ドライブは Windows PE の環境ではD:ドライブにマウントされている( C:ドライブは、Windows PE が使用している)。また、 Windows PE の起動ディスクは、E:ドライブにマウントされている。

次のコマンドで、参照マシンをキャプチャして、カスタムイメージWin7image.wimを指定した場所に作成。

E:\imagex.exe /capture d: d:\Win7image.wim "Windows 7 Image" /compress fast /verify

カスタムイメージを共有フォルダにコピー

copy d:\Win7image.wim y:

作成したイメージファイルを作業マシンにコピー

  • 作業マシン上で、WinDVD展開ファイルc:\Win7-CustomにカスタムWindowsイメージy:\Win7image.wimをコピー
copy y:\Win7image.wim c:\Win7-Custom\sources\install.wim

※ ファイル名はinstall.wimとすること。

カスタムインストールイメージファイルの作成

作業マシン上で、[デプロイメントツールのコマンドプロンプト]を管理者として起動

  • カスタムイメージが4GiB以下の場合、
oscdimg -n -m -bc:\Win7-Custom\boot\etfsboot.com c:\Win7-Custom c:\Win7-custom.iso
  • カスタムイメージが4GiBを超える場合、少し手順が増える。

以下の内容でテキストファイル bootorder.txt を作成c:\に保存

boot\bcd
boot\boot.sdi
boot\bootfix.bin
boot\etfsboot.com
boot\fonts\chs_boot.ttf
boot\fonts\cht_boot.ttf
boot\fonts\jpn_boot.ttf
boot\fonts\kor_boot.ttf
boot\fonts\wgl4_boot.ttf
sources\boot.wim
  • カスタムインストールイメージの作成
oscdimg -udfver102 -u2 -bc:\Win7-Custom\boot\etfsboot.com -yoc:\bootorder.txt c:\Win7-Custom c:\Win7-Custom.iso

c:\Win7-Custom.isoにISOファイルが作成されるので、これをDVD-R等に焼く。

カスタムインストールイメージを試す

カスタムインストールイメージを使って、実際にインストールできるか試す。


  1. CD-Rに焼いてもいいし、仮想ドライブにマウントするもよし 
  2. 作業マシンが64bitマシンの場合、32ビット版のinstall.wimファイルを読み出すとエラーになるので、カタログファイルで指定している 
  3. アンチウィルス系のアプリケーションはインストールしない。した場合、sysprep後再起動のループに陥る 
  4. プリンタドライバに関しては、複合機メーカーの作成しているキッティングツールがあるので、それを活用するのもあり( Ricoh の Ridoc Ez Installer など) 

0件のコメント

コメントを残す

メールアドレスが公開されることはありません。