Windows Server 2003の展開とコンポーネントの追加

このブログを書いている少し前、TechEdで私が担当するセッションのリハーサルが終わりました。どんなことを明日はお話ししようかなと考えるにつれ、(時間の関係で)確実にお話しすることができないだろうな、ということが溢れてきます。そんな内容の中から、Windows Server 2003のサーバーコンポーネントの自動インストールについて、触れておきたいと思います。

Windows Server 2003のインストール後(展開後)、サーバーコンポーネントをインストールする場合、
コントロールパネルの[プログラムの追加と削除]-[Windowsコンポーネントの追加と削除]を利用して行います。
これを自動化したい場合、Windows Server 2003に同梱されているsysocmgr.exeというコマンドを使用します。
利用方法については、マイクロソフトのサポート技術情報でも掲載されています。

■Sysocmgr.exeを使用してWindowsコンポーネントの追加または削除する方法
http://support.microsoft.com/kb/222444/ja

サポート技術情報でも紹介されていますが、Sysocmgr.exeでは、
/iスイッチを使って%windir%infsysoc.infを指定(これは決まり事です)、
/uスイッチを使って、インストールするコンポーネントを記載したテキストファイルの指定を行います。

/uスイッチで指定するテキストファイルは、以下のような感じで記載します。

[Components]
iis_common = ON
iis_www = ON
iis_www_vdir_scripts = ON
iis_inetmgr = ON
fp_extensions = ON
iis_ftp = ON[NetOptionalComponents]
DNS = 1

テキストファイルは[Components]と[NetOptionalComponents]から構成されており、
インストールしたいコンポーネントを[Components]または[NetOptionalComponents]に記載します。
[Components]に記載したコンポーネントを追加するときは、=ONと書き、
[NetOptionalComponents]に記載したコンポーネントを追加するときは、=1と書きます。

自分がインストールしたいコンポーネントは[Components]と[NetOptionalComponents]のどちらに書けばよいか
(または、どういう書式で書くか)については、情報をまとめてくださっているサイトがあるので、参考にするとよいと思います。

■Notes of Windows Admin – Remote Installation of the Windows Conponents
http://winadminnotes.wordpress.com/2010/07/09/remote-installation-of-the-windows-components/

実際の使い方について、例を挙げてみたいと思います。

■例1 DNSサーバーのインストール

[NetOptionalComponents]
DNS = 1

上記のようにファイルを作成し、保存したら(ここではc:dns.txtという名前で保存したとします)
次のようにコマンドを実行すれば完了です。

c:> sysocmgr.exe /i:%windir%infsysoc.inf /u:c:dns.txt

■例2 ASP.NETが利用可能なWebサーバーのインストール

[Components]
iis_common = ON
iis_www = ON
aspnet = ON
iis_inetmgr = ON

あとは例1と同じ要領でsysocmgr.exeを実行するだけです。
ASP.NETのコンポーネントにaspnet=ONを指定していますが(赤字部分)、
ご存じのとおり、ASP.NETのコンポーネントにはIIS本体のインストールも必要です。
そのため、ASP.NET=ONとすれば、付随して必要となるIISのコンポーネントは自動的にインストールされます。
ちなみに、IISの自動インストールについては、以下のマイクロソフトのサイトが参考になります。

■IIS6.0の無人インストールを実行する方法
http://support.microsoft.com/kb/309506/ja
■Creating an Answer Files(IIS6.0)
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/efefcb53-b86e-4cac-9b4b-fcf5f1145aa9.mspx?mfr=true

SCVMMのテンプレートからWindows Server 2003を展開する場合、GUIRunOnceでsysocmgr.exeを指定するという
方法でコンポーネントのインストールまでを自動化することができますね。
(ただし、/uスイッチで指定するテキストファイルの保存場所がネックになりますが…)

最後になりますが、インストールにはWindows Server 2003のメディアが必要になりますので、
あらかじめご用意ください。自動インストールするのに、「インストールのパスを指定してください」なんて聞かれたら、 自動化ではなくなってしまいますよね。また、レジストリの設定でインストールパス(Windows Server 2003のセットアップディスクのi386フォルダが格納されている場所)を指定しておくこともできます。
(パスの指定方法は前述のWebサイト、Notes of Windows Adminさんのところで紹介されています)