サービス構成の使用

サービス構成により、Windows インストーラーでコンピューターのサービスをカスタマイズできます。 開発者は、ServiceControl テーブルと ServiceInstall テーブル、InstallServicesStopServices、および DeleteServices アクションを使用して、インストール時にサービスをインストール、停止、開始、および削除するための Windows インストーラー パッケージを作成できます。

Windows インストーラー 5.0 以降用に作成されたパッケージでは、開発者は MsiConfigureServices 標準アクションと MsiServiceConfig テーブルを使用して、Windows 7、Windows Server 2008 R2、Windows Vista、Windows Server 2008 で使用できる拡張サービス カスタマイズ オプションも構成できます。 MsiServiceConfig テーブルを含まない Windows インストーラーのバージョン用に作成された既存のインストール パッケージは、引き続き Windows インストーラー 5.0 を使用してインストールできます。 Windows インストーラーのサービス構成機能では、インストールの一部として、ネットワーク サービス アカウントを構成すること、共有サービス ホスト (svchost) プロセスをインストールすること、停止したサービスを再起動することはできません。

Windows XP および Windows Server 2003 以前: サポートされていません。 サービス構成テーブルと標準アクションは、Windows 7 および Windows Server 2008 R2 で実行される Windows インストーラー 5.0 以降と、Windows Vista および Windows Server 2008 で実行される Windows インストーラー 4.5 以降で使用できます。

MsiServiceConfig テーブルで指定したサービス構成を要求するには、InstallExecuteSequence テーブルに MsiConfigureServices アクションを含める必要があります。 MsiConfigureServices 標準アクションがシーケンス テーブルに含まれている場合にのみ、Windows インストーラーは MsiServiceConfig テーブルの情報を使用します。 MsiConfigureServices 標準アクションでは、ServiceControl テーブルと ServiceInstall テーブルの情報も使用されます。

特定のサービスに必要な特権のみ付与するようにシステムに要求するには、MsiServiceConfig テーブルで、サービスと SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO 構成オプションを指定します。 不要な特権はサービスのプロセス トークンから削除します。 このオプションを使用すると、LocalSystem、LocalService、または NetworkService サービス ユーザー アカウントのセキュリティ コンテキストで実行されるサービスを構成できます。

他のすべての自動開始サービスが開始された後まで、サービスの自動開始を遅延させるようにシステムに要求するには、MsiServiceConfig テーブルで、サービスと SERVICE_CONFIG_DELAYED_AUTO_START オプションを指定します。 遅延させるサービスは、ServiceInstall テーブルで SERVICE_AUTO_START を指定して現在のパッケージでインストールするか、または自動開始サービスとして既にインストールされている必要があります。

特定サービスの排他的使用のためにリソースを予約するようにシステムに要求するには、MsiServiceConfig テーブルで、サービス、サービス SID タイプ、SERVICE_CONFIG_SERVICE_SID_INFO 構成オプションを指定します。 リソースのアクセス制御リスト (ACL) にサービスの SID を追加します。

SERVICE_CONTROL_PRESHUTDOWN 通知がサービスに送信される後まで、サービス コントロール マネージャー (SCM) を待機させるように要求するには、次の操作を行います。 MsiServiceConfig テーブルで、サービス、SCM を待機させる時間、SERVICE_CONFIG_PRESHUTDOWN_INFO 構成オプションを指定します。

サービス障害の後にシステムでアクションを実行するタイミングを構成するには、MsiServiceConfig テーブルで、サービスと SERVICE_CONFIG_FAILURE_ACTIONS_FLAG オプションを指定します。 実行するアクションを MsiServiceConfigFailureActions テーブルに追加します。

Windows Vista および Windows Server 2008 オペレーティング システムで導入された拡張サービス カスタマイズ機能について詳しくは、Windows Vista のサービスの変更に関する記事を参照してください。