サーバ大量構築時のキモ ~Sysprepの使い方・応答ファイル作成編~
Pocket

前回Sysprepとはどういうものなのかを記述したが、Sysprep最大のポイントはこの応答ファイルである(と思ってる)。

この応答ファイルを作成するには、以下のものが必要となる。

  • Windows システムイメージマネージャ
  • Windows カタログファイル
Windows システムイメージマネージャについてはダウンロード、インストール方法を以下に記述していく。Windows カタログファイルはWindows インストール用メディア内の/source以下に存在しているので、SysprepをかけるOSのカタログファイルを使おう。
Sponsored Links

Windows システムイメージマネージャ インストール

応答ファイルは、Windows AIK(Windows 8以降ではWindows ADK)に付属しているツール「Windows システムイメージマネージャ」で作成することが出来る。

それぞれのダウンロードは以下。

Windows® 7 用の Windows® 自動インストール キット (AIK) – Microsoft

http://www.microsoft.com/ja-jp/download/details.aspx?id=5753

マイクロソフト公式ダウンロード センターから Windows(R) 8 用 Windows アセスメント & デプロイメント キット

http://www.microsoft.com/ja-jp/download/details.aspx?id=30652

上記から該当するソフトウェアをダウンロードする。
ダウンロードしたソフトはiso形式となるため、Deamon ToolsかDVDに焼いてクライアント機にマウントさせる。

インストーラ画面が以下(以降、Windows AIKで)。
「Windows AIK セットアップ」をクリックする。

セットアップウィザードが開始されるので、「次へ」をクリックする。

ライセンス条項が表示されるので、「同意します」にチェックをいれて「次へ」をクリックする。

インストールフォルダを選択する。
ここはデフォルトのまま「次へ」。

実際にインストールをするかどうか確認されるので、「次へ」。

インストールが完了すると以下画面となる。

インストール後、すべてのプログラムから「Microsoft Windows AIK」の下に「Windows システムイメージ マネージャー」があることを確認する。

応答ファイル作成

それでは実際に応答ファイルを作成してみよう。

まずはカタログファイルを読み込む。Sysprepを行うWindowsと同じエディションのインストール用メディアをマウントして、「source」フォルダ内から読込む。

次に、「新しい応答ファイル」を選択する。

これで、中央のウィンドウに新規に作成した応答ファイルの内容が表示される。

ここで表示されているツリーだが、これはWindowsのセットアップ時における段階を表しているようだ。詳しくはこちらのページ真ん中あたりを参照。

また64bit版のカタログファイルを見ると、頭に「x86」「amd64」「wow64」とあるがこれはそれぞれ以下のようなもの。

  • x86…32bit版のOS用設定値。
  • amd64…64bit版のOS用設定値。
  • wow64…64bit版OSで32bit版OSをネイティブに動かす機能に関する設定値。基本的に使わない。

sysprepを行うOSの設定値を適用しなければいけない点に注意。64bitOSの応答ファイル設定値としてx86の設定値を使っても適用はされない。

応答ファイルを作成する上で必須となる設定値は構築内容によってそれぞれだと思うが、以下にWindows 7での一般的な設定値だけ記述していく。

なお、基本的にWindows Server系でも同様の設定値になると思う。

「Windowsへようこそ」の自動化

MicrosoftのHP上でも記述されているが、デフォルト状態でSysprepを実行すると、再起動時に「Windowsへようこそ」の画面が表示され、手動で使用する言語等を設定するよう言われてしまう。

これを自動的に設定させ、再起動時に手動設定を行わないようにするには以下の設定値を指定し設定する。なお、記述している設定値は一例。

●言語および国/地域の選択ページ

設定値:(x86_/amd64_)Microsoft-Windows-International-Core
構成パス:7 oobeSystem

国、地域、ロケール、キーボードレイアウトを設定する。

・InputLocale: 0411:E0010411

Windows インストールの既定の入力ロケールを指定する。

・SystemLocale: ja-JP

Windows インストールの既定のシステム ロケールを指定する。

・UILanguage:  ja-JP

Windows インストールの既定の UI 言語を指定する。

・UILanguageFallBack:  ja-JP

コンピューターの既定の UI 言語が選択されたイメージに対して部分的にのみローカライズされている場合、使用する言語を指定する。

・UserLocale  ja-JP

Windows インストールの既定のユーザー ロケールを指定する。

●マイクロソフト ソフトウェア ライセンス条項の選択ページ

設定値:(x86_/amd64_)Microsoft-Windows-Shell-Setup/OOBE
構成パス:7 oobeSystem

ミニセットアップウィザードで出てくるライセンス条項に関する設定。

HideEULAPage:  true

マイクロソフト ソフトウェア ライセンス条項のページを非表示にすることを指定する。

●プロダクト キーの選択ページ

設定値:(x86_/amd64_)Microsoft-Windows-Shell-Setup
構成パス:4 specialize

Sysprep実行時にプロダクトキーを設定、変更する際に必要になる。

詳細はこちらを参照。

ProductKey:  設定したいプロダクトキーを記述

●ユーザー名の選択ページ

設定値:(x86_/amd64_)Microsoft-Windows-Shell-Setup/LocalAccounts
構成パス:7 oobeSystem

ミニセットアップでのユーザ作成を自動化させる。

Action:  AddListItem

行う設定を選択する。AddListItemはユーザの追加。RemoveListItemはユーザの削除が行える。

Name:  ユーザ名

●コンピューター名とデスクトップの背景の選択ページ

設定値:(x86_/amd64_)Microsoft-Windows-Shell-Setup
構成パス:4 specialize

コンピュータ名を設定する。「*」のみを設定することで、Windows 7でもランダムなコンピュータ名が生成される(Windows Server系の場合、コンピュータ名は最初からランダムで設定される。)

ComputerName:  *

●Windows の保護の選択ページ

設定値:(x86_/amd64_)Microsoft-Windows-Shell-Setup
構成パス:7 oobeSystem

Windows インストールの保護レベルを指定する。

1:推奨
2:重要な更新プログラムのみインストール
3:保護を有効にしない

ProtectYourPC:  1

●日付と時刻の選択ページ

設定値:(x86_/amd64_)Microsoft-Windows-Shell-Setup
構成パス:7 oobeSystem

Windowsのタイムゾーンを指定する。

TimeZone:  Tokyo Standard Time

●コンピューターの現在の場所の選択ページ

設定値:(x86_/amd64_)Microsoft-Windows-Shell-Setup
構成パス:7 oobeSystem

Windows のネットワーク環境について指定する。

NetworkLocation:  Work

Windows 7での最低限の設定は以上。

その他Windows Server 等については、Microsoftのページに詳細があるのでそちらを参照してもらいたい。

Sysprep実行回数制限の解除

Sysprepだが、実は実行回数に3回という制限がある。Sysprepを実行するごとに1カウントされ、3回目以降はSysprepが実行出来なくなってしまう。
Sysprepのカウントをさせなくするのがこの項目。

設定値:(x86_/amd64_)Microsoft-Windows-Security-SPP__neutral
構成パス:3 generalize

SkipRearm:  1

デバイスドライバの保持

Sysprepを実行すると、デバイスドライバも再度適用しなくてはならなくなる。
このため、同一筐体で大量構築を行う場合にはサーバ一台一台へドライバを再度適用しなくてはいけなくなるため、ドライバを保持した状態で配布出来ないと面倒な事になる。
ドライバを保持した状態でSysprepを実行させるのがこの項目。

設定値:(x86_/amd64_)Microsoft-Windows-PnpSysprep__neutral
構成パス:3 generalize

PersistAllDeviceInstalls:  true

DoNotCleanUpNonPresentDevices:  true

 

2014/06/09 追記
Sysprepでのクローンの際、固定IPアドレスを各筐体ごとに設定出来るようにシリアルナンバー(というか、UUID)別にIPアドレス、ホスト名を自動設定させるバッチファイルを作成した。

サーバ大量構築時のキモ ~シリアルナンバーを用いたWindowsへの静的IPアドレス設定バッチ~

なお、Sysprep実行時に任意のプログラムを実行させる方法としては、以下のサイトを参照すると良い。

Sysprep 中に任意のコマンドを実行する方法について

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

This article has 1 comments

  1. Pingback: 20160526_ Windows システム イメージ マネージャってやつでもしかしてリカバリーディスクっぽいもの作れる? | PC-BREAKERのきまぐれ

Leave a Comment

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