次の方法で共有


Windows Vista のサービスの変更

サービス のパフォーマンス、信頼性、セキュリティ、管理、管理を向上させるために、サービス モデルに大幅な変更が加えられた。

次の表は、Windows Vista のサービスの機能強化をまとめたものです。

エンハンスメント 形容
遅延自動開始
遅延自動開始サービスは、システムが開始された直後に開始されます。 これにより、これらのサービスの自動起動を提供しながら、システムの起動パフォーマンスが向上します。 遅延自動開始フラグを設定するには、ChangeServiceConfig2 関数を SERVICE_CONFIG_DELAYED_AUTO_START_INFOで呼び出します。
障害の検出と回復
サービスで障害が発生した場合、サービス コントロール マネージャー (SCM) は、その障害からの復旧を試みるためにサービスを再起動するなど、エラー アクションを実行できます。 エラー アクションを構成するには、SERVICE_CONFIG_FAILURE_ACTIONSChangeServiceConfig2 を呼び出します。
Preshutdown 通知
サービスは、実際のシャットダウン通知を受信する前に、HandlerEx 関数で SERVICE_CONTROL_PRESHUTDOWN 通知を受信するように登録できます。 これにより、サービスのシャットダウン手順が長く、正常にシャットダウンする時間が長くなります。 タイムアウト値を設定するには、SERVICE_CONFIG_PRESHUTDOWN_INFOChangeServiceConfig2 を呼び出します。
制限付きネットワーク アクセスの
サービス SID を使用して、ポート、プロトコル、またはネットワーク トラフィックの方向へのアクセスを制限できます。 サービスのネットワークへのアクセスを制限するには、INetFwServiceRestriction インターフェイスを使用します。
最小限の特権で実行されている
サービスは、必要な特権 (LocalService、NetworkService、LocalSystem、ドメイン アカウント、またはローカル アカウント) を含む任意のアカウントで実行でき、ChangeServiceConfig2SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFOで呼び出すことによって、必要な特権を示すことができます。 SCM は、不要な特権を削除します。
サービスの分離
サービスは、サービス SID を含むアクセス制御エントリでオブジェクトをセキュリティで保護することで、ファイルやレジストリ キーなどのオブジェクトを排他的に使用できるように分離できます。 この SID がサービスに割り当てられた後、サービス所有者はオブジェクトのアクセス制御リストを変更して SID へのアクセスを許可できます。 これにより、高い特権アカウントで実行したり、オブジェクトのセキュリティを下げたりすることなく、サービスが特定のオブジェクトにアクセスできるようになります。 サービス SID を設定するには、SERVICE_CONFIG_SERVICE_SID_INFOChangeServiceConfig2 を呼び出します。
サービス状態変更通知
NotifyServiceStatusChange 関数を使用して、サービスの作成、削除、または状態の変更が発生したときに通知されるようにサービスを登録できます。 これは、ループ内で QueryServiceStatusEx 関数を呼び出して状態をポーリングするよりも効率的です。
セッション 0 の分離
サービスは常にセッション 0 で実行されています。 Windows Vista より前では、ログオンする最初のユーザーもセッション 0 に割り当てられました。 これで、セッション 0 は、対話型ユーザー セッションに関連付けられていないサービスおよびその他のアプリケーション専用に予約されています。 (ログオンする最初のユーザーはセッション 1 に接続され、ログオンする 2 番目のユーザーはセッション 2 に接続されます)。セッション 0 では、ユーザーと対話するプロセスはサポートされていません。
この変更は、サービスがアプリケーションにメッセージを投稿または送信できず、アプリケーションがサービスにメッセージを送信または投稿できないことを意味します。 さらに、サービスはダイアログ ボックスなどのユーザー インターフェイス項目を直接表示できません。 サービスは、WTSSendMessage 関数を使用して、別のセッションでダイアログ ボックスを表示できます。

Services