サーバ大量構築時のキモ ~Windowsクローン時の注意点~
Pocket

Windowsを大量構築ため、OSのクローンを行う事が多いだろう。この辺りは以前Sysprepに関する内容で記述している。

で、このSysprepを行う以外にもクローン時における注意点があるので、そのあたりを記述していく。
(内容に不足、下記以外の注意点等ありましたら指摘ください。追記します。)

Sponsored Links

Sysprepの実行

以前にもSysprepについては記述しているが、WindowsのクローンではSysprepは必要不可欠だ。
これは簡単に言うとWindowsの初期化ツールで、Windowsの固有IDであるSIDを含め、コンピュータ名等HDDのファイル等以外の設定を初期化してくれるツール。

詳細は以前記述した以下のページを参照。

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

NICのレジストリ

Windowsのクローンを行うという事は、一度特定のハードウェア上にOSをインストールし、そのイメージを他のOSにコピーするという事だ。
つまり、一度オリジナルのハードウェア情報がレジストリに書き込まれるということになる。で、この情報はSysprepを行っても消えないのだ。

そのため、レジストリ内に旧NICの情報が残ってしまう事で、以下のような事象が発生する事がある。

しかもこれ、「ローカルエリア接続 4」の名称を手動で「ローカルエリア接続 3」に変更しようとするとエラーとなり変更出来ない。これはレジストリ内にネットワークアダプタ名称と旧ハードウェアのネットワークアダプタ情報がひも付けされて残っているためである。

そのため、レジストリ内にすでにある「ローカルエリア接続 3」に名前変更が出来ないよ、と言われるのだ。

つまり、レジストリ内に残っているデータを削除すれば良いということなんだけど、じゃあどこを削除すれば良いのか。

HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥Network{4D36E972-E325-11CE-BFC1-08002BE10318}

上記場所にネットワークアダプタに関するレジストリが収まっている。
この中から、クローン元サーバのネットワークアダプタ情報を削除することで名称の変更が可能になる。ネットワークアダプタのレジストリフォルダの名称は各マシンによって異なるため、事前にクローン元サーバのレジストリ値を確認しておくと良い。なお、この情報をクローン元サーバで削除するなんて出来ない(やったらネットワーク繋がらなくなるよ)ので、必然的にクローン先で削除を行う事になる。そのため、他の設定と併せてバッチで設定してあげるといい。削除するレジストリ情報はクローン元が同一であればすべて同じだからだ。バッチ化する際のためのコマンド羅列(※上記例を元に作ってます)

regedit delete HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥Network{4D36E972-E325-11CE-BFC1-08002BE10318}{対象となるネットワークアダプタ} /f

netsh -c interface set interface name=”ローカル エリア接続 4″ newname=”ローカル エリア接続 3″

PStoolsの有効化

仕事としてサーバを構築する以上、手戻りが発生しないようにするのは当然だと思う。多分、これを見ている人も同じ意見だと思う(というか、思いたい…)。

ただ、そううまくいかない事も多く、すべてのサーバを設定した後に問題発生⇛構築したサーバ全台への設定変更なんてザラにある。

その際に楽になるためにも、PStoolsを実行出来るようにクローン元サーバで設定してあげるといい。まぁ、サーバといってもWindows Server系は最初から使えるはずなので、問題になるのはクライアント系のWindows OSなんだけどね。
これは、Vista以降のOSの場合管理共有にアクセス出来るのが、デフォルトだとAdministratorしかない事が原因。クライアント系のWindowsの場合、Administratorが標準では無効になっているので、ここで問題になる。

こんなトコ見ている人にPStoolsの説明なんて不要かもしれないけど、一応。

PStools(PSExec.exe)はリモート先のWindowsをコマンドプロンプトから操作することが出来るツールで、Microsoft(元は違うけど)の提供しているツールだ。

これを使えば、一台一台リモートデスクトップでログイン後に実行していくプログラムを複数のリモート先に一気に実行させる事もできる。

この機能、ユーザ「Administrator」が無効になっている等の場合、レジストリ値を書き換える事で使用できるようになる。
クローン元で試した際に「アクセスが拒否されました」として使用出来なかった時は、以下を実行することで実行可能となる。

reg add “HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciessystem” /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1

PStools及びPSexec.exeの使い方については、こちらを参照するといい。

…まぁ、Windows7でも32bitの場合だと上記を行わなくても行けたような記憶があるけど。

PowerShell リモート操作の有効化

これも上記PStoolsの有効化と同じ。
設定用のPowerShellスクリプトを実行させるために行っておく事で、後々の設定変更や試験の時に役に立つ。

PowerShellのリモート操作の有効化は簡単で、「Enable-PSRemoting」コマンドを実行し、認証の入力リクエストが表示されたら「y」を入力する事で有効化される。

Pocket

Written by blacknon

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

This article has 1 comments

  1. Pingback: 仮想マシンのイメージ制作の注意点、 仮想マシンが削除される!on Azure | ニシ インターナショナル

Leave a Comment

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