Home > Windows にまつわる e.t.c.

クライアントの展開(WDS/WAIK/Windows PE/ImageX)


Windows Server 2008 実践ガイド」でカットした原稿です

WDSの仕組み

WDSの作成

インストール

ブートイメージの登録

キャプチャイメージの登録

インストールイメージグループの登録

PXEの有効化

展開のベースとなるPC作成

OSとアプリケーションのセットアップ

sysprep

展開イメージのキャプチャとWDSへの登録

クライアントへの展開

PXE非対応PCを使用する場合(WAIK/Windows PE)

検出ブートイメージの作成

Windows PEイメージの作成

メディアイメージの作成

ISOファイル作成

自動応答

PXEブート時のF12オペレーション自動化

WDSそのもののオペレーション自動化

各イメージのオペレーションの自動化

マルチキャスト展開

XP/Windows Server 2003の場合

sysprep

自動応答

展開イメージのキャプチャとWDSへの登録(ImageX)

クライアントPCを展開する際に、都度必要アプリケーションをクライアントPCにインストールをするのは思いのほか手間のかかる作業だ。1台だけクライアントPCを作るのであれば大した手間ではないかもしれないが、これが10台100台となるとうんざりするような作業になってしまう。
クライアントPCにソフトウェアをインストールしている時に「このPCをコピーすることが出来たらいいのに」と思ったことはないだろうか?
ベースとなるPCをコピーして、同じ環境を作るのがWDS(Windows Deployment Service/Windows展開サービス)だ。
WDSはクライアントPCだけではなく、サーバも展開することが出来るので、共通設定をしたサーバのコピーをすればサーバ展開時の設定ミスと言った事故を防ぐことも出来る。

 

WDSの仕組み

WDSは、ベースとなるPCのディスクイメージをネットワーク経由で配布するサービスだ。イメージを受け取るPC側はPXE(Pre-boot eXecution Environment)と呼ばれるネットワークブート機能を利用してイメージを受け取る。このためPXEに対応していないPCやサーバではブートメディアを別途作成する必要がある。

WDSへのイメージ登録の流れを説明すると、ベースとなるPCに必要なアプリケーションをインストールし、ベースPCのディスクイメージをWDSサーバに登録する手順になる。

ディスクイメージは複数登録できるので、導入に必要なパターンをいくつか登録しておけば展開が楽にできる。

WDSのイメージ

なんかのはずみでクライアントPCが初期化されてしまう事故を防ぐために、必要な時だけWDSを稼働させるのが良いだろう。

 

WDSの作成

インストール

WDSには、ActiveDirectory、DHCP、DNSが必要であるが、本書ではすでに環境の準備ができているので、ディスクに余裕があるファイルサーバにWDSをインストールする事にする。インストール自体は他のサービス同様至って簡単だ。

Windows展開サービスを選択

すべてのコンポーネントをチェック

インストール後にWDSサーバを見ると、まだ構成が完了していないで、サーバの構成をする。まずは、リモートインストールイメージを格納するフォルダの作成だ。リモートインストールイメージを格納するフォルダは、OSボリューム以外への作成が推奨されているので、データボリュームを指定する。フォルダそのものは自動作成されるので、デフォルト表示のドライブレターを変更すれば良いだろう。
展開イメージをセットする前にPXEが反応するのは望ましくないので、セットアップ段階では無反応設定をしておくことをお勧めする。

サーバの構成

必要サービス

リモートインストールイメージを格納するフォルダ指定

WDSセットアップ中にPXEが反応しないようにする

イメージは後でセットするのでチェックボックスをクリア

 

ブートイメージの登録

ブートイメージは、Windows Server 2008のインストールDVDに格納されているブートイメージを使用する。
ブートイメージにはx64メディアに格納されている64ビット版のブートイメージと、x86メディアに格納されている32ビット版のブートイメージがある。
ブートイメージは、展開するOSの種類に依存しており、x64 OSを展開するにはx64ブートイメージ、x86 OSを展開するにはx86ブートイメージが必要だ。
ブートイメージは、インストールメディアの「\sources\boot.wim」である。

ブートイメージの追加

Windows Server 2008インストールメディアの\sources\boot.wimを選択

ブートイメージの指定

ブートイメージにわかりやすい名前を付ける

x64とx86のブートイメージを登録した

 

キャプチャイメージの登録

WDSでは展開用に作成したベースPCのイメージをキャプチャし、WDSに登録する。このキャプチャ用のブートイメージもWDSから配布することが可能だ。
キャプチャイメージはブートイメージから作成する。キャプチャイメージの配置場所は、リモートインストールフォルダにある「Boot\x64\ja-JP」と「Boot\x86\ja-JP」だ。
作成したキャプチャイメージをブートイメージに登録する。

ブートイメージからキャプチャイメージを作成

ブートイメージ名と配置場所を指定

作成したキャプチャイメージをブートイメージに登録

キャプチャイメージを指定

キャプチャイメージの登録完了

 

インストールイメージグループの登録

ベースPCのディスクイメージはインストールイメージとして登録をするのだが、インストールイメージはクライアントでの表示数に限りがあるので、グループに登録する。本書ではインストールイメージを手動配置ではなくアップロードするので、受け入れをするグループを先に作成する。

イメージグループの追加

グループ名の指定

グループ作成完了

 

PXEの有効化

サーバ側の準備が出来たので、インストール段階で停止していたPXE応答を有効にすればサーバ側の準備は終了だ。

WDSサーバのプロパティを開く

全てのクライアントコンピュータに対する応答を許可する

 

展開のベースとなるPC作成

OSとアプリケーションのセットアップ

ベースとなるPCのセットアップであるが、普通にOSをインストールしてアプリケーションをインストールするだけだ。展開するイメージはsysprep処理をするので、ベースPCはドメインに参加させず、ワークグループ環境で構築する。
展開後のWindows Updateを最小限にするために、フルアップデートしておいた方が良いだろう。
展開後のセキュリティを考えると、初期セットアップ時に登録するアカウントは必ずパスワードを設定しておくことを推奨する。

可能であれば、ハードディスクを増設しておくことを推奨する。なぜならば、WDSにアップロードするディスクイメージは一旦ディスク上に保存する必要があるからだ。デフォルトドライバで認識できるUSBメモリやUSBハードディスクにも保存することが可能なので、物理的にハードディスクが増設できないPCの場合はこれらのデバイスを準備しておくのがお勧めだ。

【注意】
ベースとなるPCは必ずボリュームライセンスのOSとアプリケーションをインストールした環境を使う必要がある。お手軽だからと言ってOSやアプリケーションが「プレインストール」されているPCは使ってはならない。
これは、プレインストールのライセンスが、プレイントールされているPCに縛られているからだ。プレインストールされているOSやアプリケーションを、他のPCに展開するとライセンス違反になるので注意していただきたい。
ただし、この制限はWindows Vista Businessだけは例外的に緩和されている。詳しくはKB945472(http://support.microsoft.com/kb/945472)を参照していただきたい。

 

sysprep

セットアップしたPCのイメージを展開をするのだが、WindowsPCの場合SIDと呼ばれる内部識別子とコンピュータ名が重複することが許されないので、この情報を消去しなくてはならない。これらの情報を消去するのがsysprep.exeだ。
sysprepをかける前に、ゴミ箱や不要なアカウント等のごみを掃除しておかないと、ゴミごと配布されてしまうので、出来るだけクリーンナップしておこう。インストールに使用したアカウントも、sysprepをかける直前に削除してしまえば、アカウントもクリーンナップすることが出来る。

Windows Vistaの場合は、C:\Windows\system32\sysprepにsysprep.exeがある。
sysprepをする場合は、「一般化する」にチェックを入れないとSIDが消去されない。sysprep後はシャットダウンするだけなのでシャットダウンを指定すれば良い。
蛇足だが、仮想環境上ではシャットダウン指定をしても再起動になってしまうので、「終了」を指定して、手動シャットダウンをする。

sysprep

一般化にチェックを入れる

 

展開イメージのキャプチャとWDSへの登録

ベースPCのsysprepが完了したら、キャプチャーイメージを使ってディスクイメージの抽出とWDSへの登録をするのだが、このまま再起動してしまうとハードディスクから起動してしまい、折角sysprepしたPCがインストールモードで起動してしまう。
この問題を回避するには、ベースPCをBIOS設定を変更してPXEブートの優先度をハードディスクより上げる必要がある。BIOSによっては、起動時にブートメディアを選択できるタイプのものもあるので、その場合はBIOSの設定変更は不要だ。
BIOS設定は各PCごとに違うのでPCのマニュアルを参照していただきたい。
一般的には、起動時にBIOSセットアップに入るキーを押すことになるが、表示が一瞬しかされず、BIOS設定モードに移行しにくい場合は、空のフロッピーをセットするなどしてハードディスクからのOSの起動を止めるのもいいだろう。

通常のDHCPリレーだけではPXEブートが出来ないことがあるので、WDSでPCをPXEブートするには、DHCPサーバと同一セグメントにPCを接続する。
PXEブートをすると、WDSから初期ブートイメージがダウンロードされF12でネットワークサービスブートが出来るようになる。
ブートマネージャが起動したら、キャプチャーイメージを選択すると、イメージキャプチャウィザードが起動するので、イメージのローカル保存場所と、WDSのグループを指定してイメージの抽出とWDSのアップロードをする。

BIOS設定でPXEブートの優先度を上げる

F12でネットワークサービスブートをする

キャプチャイメージを選択

イメージキャプチャウィザードが起動

イメージを抽出するボリュームとイメージ名を指定

イメージの保存場所とアップロードするWDSサーバとグループを指定
アップロードにはドメイン管理アカウントが必要

イメージキャプチャ後にWDSへのアップロードが自動処理される

イメージをクライアントに展開するときにはキャプチャイメージは不要なので、キャプチャイメージは無効にしておくといいだろう。

キャプチャイメージは展開時に不要なので無効にする

何らかの理由でWDSサーバにディスクイメージがアップロードできない時は、wimファイルをWDSサーバの適当なフォルダにコピーをして、手動登録すれば良い。

イメージを手動登録する

登録するイメージを指定

余談であるが、ディスクイメージの .wim ファイルは、WAIK(後述)に含まれている ImageX.exe を使って様々なメンテナンスをすることが出来る。

 

クライアントへの展開

クライアントへの展開もキャプチャ時と同様にWDSサーバと同一セグメントでセットアップをするのが良いだろう。
ハードディスクに何も入っていないPCにセットアップする場合は、PXEブートしか反応できないので、そのまま起動すればF12の要求が来る。キャプチャイメージを無効にしたので、展開時に必要なブートイメージだけが表示されている。
ブートイメージを選択すると、Windows展開サービスが起動するのでロケール等必要な情報を指定すると、イメージをアクセスするのに必要なアカウントが要求される。デフォルトではドメイン管理者のアカウントを指定するが、インストールイメージのACLにDomain Usersを追加(読み取りと実行)しておけば、ドメインユーザでの展開も可能だ。
WDSにセットしているイメージを選択すると、あとは通常の初期セットアップと同じオペレーションだ。本書ではVistaでのオペレーションを解説したが、Windows Server 2008も同様の操作で展開することが可能だ。

ブートイメージの選択

ロケール等必要な情報を指定

インストールイメージをアクセスできるアカウントを指定

インストールイメージを選択

後は通常の初期セットアップと同様

 

PXE非対応PCを使用する場合(WAIK/Windows PE)

PXE非対応のPCを使う場合には、ブートイメージのCDまたはDVDのメディアを作成する。
メディアを作成するには、ブートイメージから検出イメージを作成すればいいのだが、作成できるイメージは.wimなので、このままではブート可能なメディアにする事が出来ない。
ブート可能なメディアを作成するにはWAIK(Windows Auto Install Kit/自動インストールキット)と呼ばれるユーティリティを使用してISOイメージを作成し、ISOイメージを市販ツールを使用してCDまたはDVDに焼く必要がある。
まずはWAIKのダウンロードしよう。WAIKは最新版を使う必要があるが、執筆時点の最新版は「http://www.microsoft.com/downloads/details.aspx?FamilyID=94bb6e34-d890-4932-81a5-5b50c657de08&DisplayLang=ja」となっている。

手順をざっと説明すると、WDSでブートイメージから「検出ブートイメージ」を作成し、WAIKでPEイメージを作成し、これらをマージして検出ブートメディアのペースを作成する。
このベースからISOイメージへ変換し、これをDVDに焼き付けてメディアの完成だ。

PXEが使えない場合のメディア作成手順

WAIKはイメージを操作する専用のクライアントPC(Vista)にインストールするのが望ましいが、本書ではWDSサーバにインストールしてイメージを操作する。

ダウンロードしたWAIKはISOイメージなので、ISOイメージからDVDのライティングが出来るPCでを作成し、WDSサーバにインストールする。インストール自体は一般的なインストールなので解説は割愛する。

蛇足ではあるが、WAIKの一部のツールはターゲットOSと同じ環境でないとエラーを起こすことがあるで、例えばVista x64 をターゲットにするのであれば、WAIK も Vista x64環境にインストールするのがお勧めだ。

WAIKのインストール

 

検出ブートイメージの作成

まずは、ブートイメージから検出ブートイメージを作成し、適当なフォルダにboot.wimとして出力する。
出力したファイルに隠しファイル属性がついていることがあるので、隠しファイル属性がついている場合は解除しておく。

検出ブートイメージにするブートイメージを選択し検出ブートイメージを作成

必要情報をセットして、boot.wimを作成

 

Windows PEイメージの作成

Windows PE とは、ミニマムセットのWindowsだ。デフォルトではコマンドラインツールがセットされているが、これ以外のツールも追加可能だ。本書ではWindows PE自体の解説は割愛するので、詳しい事はWAIKに入っているWindows PEのヘルプを参照していただきたい。

Windows PEのイメージを作成するには、スタートメニューに追加された「Windows PE Tools コマンド プロンプト」でコマンドプロンプトを開いて、copype コマンドを使用する。copypeコマンドの引数は以下の通りだ。出力先のフォルダはコマンド使用時に作成されるのであらかじめ準備しておく必要はない。

copype <アーキテクチャ> <出力先>

アーキテクチャ: x86の場合は「x86」、x64の場合は「amd64」を指定する

Windows PEイメージの作成

 

メディアイメージの作成

検出ブートイメージをWindows PEイメージにマージするには、検出ブートイメージで作成したboot.wimでWindows PE イメージにあるISO\sourcesにboot.wimを上書きする。

 

ISOファイル作成

Windows PEのイメージからISOファイルをを作成するには、Windows PEイメージの作成の時と同様に「Windows PE Tools コマンド プロンプト」でコマンドプロンプトを開いて、oscdimg コマンドを使用する。oscdimgコマンドの引数は以下の通りだ。

出力先のフォルダはコマンド使用時に作成されるのであらかじめ準備しておく必要はない。

oscdimg -n -b<Windows PEフォルダ>\etfsboot.com <Windows PEフォルダ>\ISO <出力先フォルダとファイル名>

出力先フォルダとファイル名: フルパスを指定し、ファイル名の拡張子は.isoにする。

ISOイメージの作成

出力された .iso ファイルをサードパーティ製のライティングソフトを使ってCDまたはDVDに焼き付ければ検出ブートイメージメディアの作成完了だ。
PXEブートが出来ないPCはこのメディアを使って起動すれば良い。

 

自動応答

VistaとWindows Server 2008は元々インストール時のオペレーション介入が少ないので、WDS展開をする場合でもあまり苦労はしないが、インストール台数が多い時には完全自動応答ができると展開が楽に出来る。
WDSおよび、Vista/Windows Server 2008の自動応答ファイルサンプルは、Windows展開サービスの「無人セットアップ ファイルの例」にもあるが、このサンプルでは自動応答に失敗するので問題を修正した自動応答ファイルを付録に添付した。

自動応答を実現するには、以下の3点を自動化する必要がある。

 

PXEブート時のF12オペレーション自動化

PXEブート時には、F12入力を促す「pxeboot.com」がダウンロードされているので、これをF12を要求しないブートプログラムである「PXEboot.n12」に変更すれば応答オペレーションが不要になる。

WDSサーバのプロパティを開く

x86とx64のブートプログラムをPXEboot.n12へ変更する

ブートプログラム変更完了

 

WDSそのもののオペレーション自動化

自動応答ファイルはWDSのデータフォルダのWdsClientUnattendにセットし、WDSの自動応答に関連付ける。

WDSの自動応答ファイルを関連付ける

 

各イメージのオペレーションの自動化

自動応答ファイルはWDSのデータフォルダにWdsClientUnattendにセットし、インストールイメージに関連付ける。

インストールイメージのプロパティを開く

自動応答ファイルの設定

自動応答ファイルの指定

自動応答ファイルの設定完了

以上の設定でブートマネージャはタイムアウトを待つ必要があるが、自動セットアップが出来るようになる。
Vistaの場合は、インストールアカウントの入力とタイムゾーンの選択がマニュアル操作になるが、このあたりの設定はWindows Server 2008と異なる部分になるので本書では自動応答とはしなかった。完全自動応答を目指すのであれば、WAIKのヘルプである「Windows 自動インストールキットユーザーズガイド」と「Unattended Windows Setup Reference」に自動化のヒントがあるので、そちらを参照していただきたい。

 

マルチキャスト展開

大量のPCを一度に作成する必要がある場合は、マルチキャストを使って展開することも可能だ。
マルチキャストを使用する場合は、マルチキャストをサポートしているルータ等のL3中継装置でIGMP(Internet Group Management Protocol/インターネット グループ管理プロトコル)を使用する必要がある。IGMPをサポートしていないL3中継機器ではマルチキャスト展開をすることはできない。
余談ではあるが、本書ではWindows Server 2008のブートイメージ(boot.wim)を使っているが、これはマルチキャスト対応のブートイメージだからだ。Windows Vista RTMのブートイメージはマルチキャストに対応していないが、Vista SP1でマルチキャスト対応をした。SP1のWindows Vistaインストールメディアがあれば、このブートイメージを代用することも可能である。

マルチキャスト展開を設定するのは簡単で、展開するインストールイメージに対してマルチキャスト転送を作成するだけだ。マルチキャストが有効になっているインストールイメージが転送される時にマルチキャストが使用される。

インストールイメージに対してマルチキャスト転送を作成

フレンドり名にわかりやすい名前を設定

自動キャスト

マルチキャスト配布が開始されると接続しているクライアント情報が表示される

 

XP/Windows Server 2003の場合

ここまでの説明は、Windows VistaとWindows Server 2008に対して解説で、Windows XP及びWindows Server 2003をターゲットにした場合は一部手順が異なる。

sysprep

XPの場合は、sysprepはハードディスク上にはなく、インストールCD上の\SUPPORT\TOOLS\DEPLOY.CABに格納されている。.cab ファイルはフォルダとして扱うことが出来るので、XPにC:\sysprepフォルダを作成し、CABの中にあるファイルをコピーし、sysprep.exeを実行する。

deploy.cabに入っているsysprepツール群をコピー

sysprepツール群をc:\sysprepにコピーし、sysprep.exeを起動

Mini-Setupをチェックし再シールする

sysprepするのでOK

 

自動応答

Windows XPの自動応答は、sysprepに対する応答ファイルとして作成するので、sysprepをかける前に作成しておく必要がある。
応答ファイルの作成はsysprepフォルダにコピーしたsetupmgr.exeで作成する。

新しい応答ファイルを作成

sysprepの応答ファイルを作成

ターゲットOSを指定

完全自動化

名前と組織名

ディスプレイの設定はデフォルトのまま

タイムゾーンはGMT+9:00の日本を選択

プロダクトキー

コンピュータ名は自動生成

Administratorのパスワードは指定しない

ネットワークコンポーネント

取り敢えずワークグループ構成にし、以降の設定はすべてデフォルトのままにする

ID文字列を指定して完了

出力先はデフォルトのまま

キャンセルで終了

出力されたsysprep.infはテキストファイルなので、必要に応じてテキストエディタで直接編集することも可能だ。

 

展開イメージのキャプチャとWDSへの登録(ImageX)

筆者の環境に依存しているのかもしれないが、XPはWDSのキャプチャイメージではうまくイメージが作れなかった。このため、WAIKに含まれているImageX.exeをWindows PEの物理メディア(CD)に追加し、CDブートした環境でwimファイルを作成し、WDSへ手動登録する。

copypeコマンドを使って新たなWindows PE イメージを作成し、ISOフォルダにImageX.exeを追加し、ImageX.exeをコピーしたフォルダに、不要ファイルの除外指示であるWimscript.iniを作成した後にISOイメージとして出力する。

「Wimscript.ini」
[ExclusionList]
ntfs.log
hiberfil.sys
pagefile.sys
"System Volume Information"
RECYCLER
Windows\CSC

[CompressionExclusionList]
*.mp3
*.zip
*.cab
\WINDOWS\inf\*.pnf

ImageX.exeはC:\Program Files\Windows AIK\Tools\x86あるいはC:\Program Files\Windows AIK\Tools\amd64にあるimagex.exeをISO\toolsにコピーする。
ISOイメージから作成したCDでベースイメージのXPマシンを起動し、imagexコマンドでwimファイルを作成し、WDSサーバに登録する。

imagex /compress fast /capture <キャプチャドライブ> <出力イメージ> <イメージ名> /verify

本書でのwimファイルの出力は、キャプチャしたドライブ上に出力し、net useコマンドでファイルサーバの共有をマウントし、コピーをしているが、デフォルトドライバで認識できるUSBメモリかUSBハードディスクを使った方が簡単かもしれない。

余談だが、VMware Workstation(6.04)の仮想ディスクとWAIKは相性が悪く、ImageX等のツールがエラーを起こすので、仮想環境上でイメージキャプチャをするのであれば、VMware Workstation以外の仮想環境で実施することをお勧めする。ちなみに、筆者はHyper-Vを使用した。
Hyper-V上でイメージキャプチャをするのであれば、Hyper-VネイティブのネットワークアダプタではなくPXEプートと標準ドライバに対応している「レガシネットワークアダプタ」を使用する必要がある。

copypeコマンドでWindows PEイメージを作成

キャプチャに不要なファイルを除去するWimsctipr.iniを作成

imagex.exeとWimsctipr.iniをISOにコピー

oscdimgコマンドでISOイメージに変換

ISOイメージから作成したCDで起動

CDはDドライブに割当たっているので、Dドライブでimagexを使用してディスクイメージをキャプチャする

キャプチャ中

net useコマンドでファイルサーバの共有をYドライブにマウント

copyコマンドでキャプチャしたイメージをファイルサーバにアップロード

net useコマンドでYドライブをアンマウント

ディスクイメージをキャプチャしたPCをシャットダウンする場合は、電源ボタンを OFF にしても良いが、コマンドでシャットダウンするのであれば「wpeutil shutdown」を使用する。

イメージをアップロードしたら、WDSのインストールイメージに追加すれば完了だ。展開時はWindows Server 2008のブートイメージを使用してインストールすることが出来る。

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.