この記事で解説してきたように、Windows Server 2008には、さまざまな役割、役割サービス、機能がある。これらをサーバーにインストールする方法は、基本的には次の3 つがある。

  • 初期構成タスク(ICT : Initial Configuration Tasks)画面
  • サーバーマネージャ
  • コマンドライン

 セットアップ時に役割と機能をインストールしたほうがいいのか。また、セットアップ完了後に、ファイルサービス、ネットワークポリシーとアクセスサービスなどの役割が自動的にインストールできるようにunattend.xml ファイルを構成できるだろうか。この原稿の執筆中に開発チームのあるスタッフにこの質問をしてみた。

 答えは「どちらとも言えない」だった。つまり、できないことはないが、それには多くのものを組み合わせる必要があるだろうということだ。その理由を理解するためには、Windows Server 2008 内部で役割と機能がどのように定義されるのかについて、少し理解する必要がある。これには、CBS Updates と呼ばれるものを理解することも含まれる。

コンポーネント間の依存関係をキャプチャする

 Windows Vista およびWindows Server 2008 には、バイナリと、リソースごとのシステム保全性情報と、サービスの実行に必要なカスタマイズコマンドの間のすべての依存関係をキャプチャするCBS(Component Based Servicing)と呼ばれる新しいアーキテクチャがある。この新しいアーキテクチャによって、OS のインストールとオプションコンポーネントのインストール、およびサービスのための統合プラットフォームが提供される。

 CBS を使用すると、新しいSKU(管理の単位)を迅速に構築できる。Windows Server 2008 のWindows Server Core インストールは、Windows をこの新しいアーキテクチャに移行したことによる必然的な結果と言える。

 コンポーネント化を進めた結果、現在、Windows Server には既定で少数のコンポーネントしかインストールされないが、実際にはインストール可能なオプションコンポーネントが数多くある。さらに複雑なことに、このさまざまなオプションコンポーネント間には多くの依存関係が存在する。そのため、Windows Server の大部分のオプションコンポーネントでCBS テクノロジが使用されている。

 例外として、MSI をインストーラテクノロジとして使用するもの(SharePoint やWindows Internal Database など)もいくつかある。PkgMgr.exe やocsetup.exe などのツールを使用してオプションコンポーネントをインストールしてみると、次に示すように、その複雑さを垣間見ることができる。これは、Web サーバーの役割の完全インストールを行うコマンドの例である。

start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;
IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;
IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;
IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;
IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;IIS-ISAPIFilter;
IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-HttpLogging;
IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;
IIS-CustomLogging;IIS-ODBCLogging;IIS-Security;
IIS-BasicAuthentication; IIS-WindowsAuthentication;
IIS-DigestAuthentication;IIS-ClientCertificateMappingAuthentication;
IIS-IISCertificateMappingAuthentication;IIS-URLAuthorization;
IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;
IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;
IIS-WebServerManagementTools;IIS-ManagementConsole;
IIS-ManagementScriptingTools;IIS-ManagementService;
IIS-IS6ManagementCompatibility;IIS-Metabase;
IIS-WMICompatibility;IIS-LegacyScripts;IIS-LegacySnapIn;
IIS-FTPPublishingService;IIS-FTPServer;IIS-FTPManagement;
WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;
WAS-ConfigurationAPI

 サーバーマネージャを使うと、オプションコンポーネントが役割および機能にグループ化され、複雑さが低減する。役割および機能とは、特定のニーズに共に対処するオプションコンポーネントの集まりである。またサーバーマネージャは、オプションコンポーネント間の依存関係を自動的に処理する。したがって、ユーザーは12 行を超えるような長さのコマンドの作成に悩む必要はなくなる。

 サーバーマネージャでは、異なるインストーラテクノロジも同様に処理されるので、使用するインストーラテクノロジで役割および機能をインストールするのにどのコマンドを使用すべきかを気にする必要はなくなる。

 最後に質問である。次のコマンドと前述のコマンドのどちらが好ましいだろうか。

servermanagercmd -install Web-Server -allsubfeatures