Windows NTオペレーティングシステムにおいて、 Windowsサービスはバックグラウンドで動作するコンピュータプログラムです。[ 1 ]これはUnixデーモンに概念的に似ています。[ 1 ] Windowsサービスは、Windowsサービスの管理を担うコンポーネントであるサービスコントロールマネージャーのインターフェース規則とプロトコルに準拠する必要があります。すべてのサービスを起動し、開始、終了などのアクションを管理するのは、サービスおよびコントローラーアプリケーションであるservices.exeです。[ 2 ]
Windowsサービスは、オペレーティングシステムの起動時に開始し、Windowsが動作している間はバックグラウンドで実行されるように設定できます。また、手動で開始したり、イベントによって開始したりすることもできます。Windows NTオペレーティングシステムには、システム、ネットワークサービス、ローカルサービスという3つのユーザーアカウントのコンテキストで実行される多数のサービスが含まれています。これらのWindowsコンポーネントは、多くの場合、Windowsサービスのホストプロセスに関連付けられています。Windowsサービスは専用のユーザーアカウントのコンテキストで動作するため、ユーザーがログオンしていない場合でも動作可能です。
Windows Vistaより前のバージョンでは、「対話型サービス」としてインストールされたサービスは、Windowsデスクトップと対話し、グラフィカルユーザーインターフェイスを表示できました。しかし、Windows Vistaでは、 Windowsサービスの強化により、対話型サービスは非推奨となり、正常に動作しない可能性があります。[ 3 ] [ 4 ]
Windows 管理者は、次の方法でサービスを管理できます。
Microsoft管理コンソール上に構築されたサービススナップインは、ローカルコンピュータまたはネットワーク上のリモートコンピュータに接続して、ユーザーが次のことを実行できるようにします。[ 1 ]
Windowsサービスを管理するためのコマンドラインツールはsc.exeです。これはWindows NTのすべてのバージョンで利用できます。[ 7 ]このユーティリティはWindows XP [ 8 ]以降[ 9 ]およびReactOSにも含まれています。
このscコマンドの管理範囲はローカルコンピュータに限定されています。ただし、Windows Server 2003以降では、scサービススナップインの機能すべてに加え、サービスのインストールとアンインストールも実行できます。[ 9 ]
このscコマンドはコマンドの一部の機能を複製しますnet。[ 10 ]
ReactOSバージョンはGed Murphyによって開発され、GPLライセンスの下で提供されています。[ 11 ]
| 名前 | 説明 | Windowsサポート | ReactOS サポート |
|---|---|---|---|
| クエリ | サービスステータスを表示 | はい | はい |
| クエリエックス | 拡張サービス情報(例:pid、フラグ)を表示します。 | はい | はい |
| 始める | サービスを開始する | はい | はい |
| 一時停止 | サービスを一時停止する | はい | はい |
| 尋問する | サービスにINTERROGATE制御要求を送信する | はい | はい |
| 続く | サービスを継続する | はい | はい |
| 停止 | サービスを停止する | はい | はい |
| 設定 | サービス構成を永続的に変更する | はい | はい |
| 説明 | サービスの説明を変更する | はい | はい |
| 失敗 | 障害発生時にサービスが実行するアクションを変更する | はい | はい |
| 失敗フラグ | はい | いいえ | |
| sidtype | はい | いいえ | |
| 特権 | はい | いいえ | |
| 管理アカウント | はい | いいえ | |
| 品質管理 | サービス構成を表示します (例: 依存関係、フルパスなど) | はい | はい |
| q説明 | サービスの説明を照会する | はい | はい |
| q失敗 | はい | いいえ | |
| qfailureflag | はい | いいえ | |
| qsidタイプ | はい | いいえ | |
| qprivs | はい | いいえ | |
| qtriggerinfo | はい | いいえ | |
| qpreferrednode | はい | いいえ | |
| qmanagedaccount | はい | いいえ | |
| q保護 | はい | いいえ | |
| quserservice | はい | いいえ | |
| 消去 | サービスを削除する | はい | はい |
| 作成する | サービスを作成する | はい | はい |
| コントロール | コントロールをサービスに送信する | はい | はい |
| sdshow | SDDL を使用してサービスのセキュリティ記述子を表示する | はい | はい |
| sdset | SDDLを使用してサービスのセキュリティ記述子を設定します | はい | はい |
| ショーシド | はい | いいえ | |
| トリガー情報 | はい | いいえ | |
| 優先ノード | はい | いいえ | |
| 表示名を取得 | サービスの表示名を表示する | はい | はい |
| GetKeyName | サービス ServiceKeyName を表示する | はい | はい |
| 列挙依存 | サービスの依存関係を表示する | はい | はい |
| ブート | はい | いいえ | |
| ロック | はい | いいえ | |
| クエリロック | はい | いいえ |
次の例では、アクティブなサービスとドライバーのステータスを列挙します。[ 12 ]
C:\> scクエリ 次の例では、Windowsイベントログサービスの状態を表示します。[ 12 ]
C:\> sc クエリイベントログ Microsoft.PowerShell.Management PowerShell モジュール (Windows に含まれています) には、Windows サービスを管理するために使用できるコマンドレットがいくつかあります。
Windowsには、スナップイン、Sc.exe、PowerShellの機能の一部を実行できるコンポーネントも含まれています。これらのnetコマンドは、Windowsサービスを開始、停止、一時停止、再開できます。[ 21 ] Windows Vista以降では、Windowsタスクマネージャーでインストールされているサービスの一覧を表示し、開始または停止できます。MSConfigは、Windowsサービスを有効化または無効化できます(上記のスタートアップの種類の説明を参照)。
WindowsサービスはSetupAPIによって*.INFセットアップスクリプトを介してインストールおよび削除されます。インストールされたサービスはインストール直後に開始することができ、実行中のサービスはアンインストール前に停止することができます。[ 22 ] [ 23 ] [ 24 ]
プログラムをWindowsサービスとして実行するには、サービスコントロールマネージャー(SCM)からシステムサービスAPIを介して送信されるサービスの開始、停止、一時停止のメッセージを処理できるようにプログラムを作成する必要があります。SCMは、サービスプロセスの管理を担当するWindowsコンポーネントです。
Windows NT 3.51、Windows NT 4.0、Windows 2000用のWindowsリソースキットには、サービスの使用と登録を制御するツールが用意されています。サービスラッパーとして機能し、サービスに期待されるインターフェース(service_startを処理し、後でservice_startedまたはservice_failedで応答するなど)を処理し、実行可能ファイルやスクリプトをサービスとして構成できるようにします。新しいサービスをインストール、開始、停止、アンインストールできます。[ 25 ]SrvAny.exeSc.exe
CmdAsSystemサービスは対話型として構成されていますが、そのサポートは廃止される予定です。このサービスは正常に機能しない可能性があります。問題は、このスクリプトが対話型サービスの作成と開始を試行することです。Windows Vistaのセッション0分離のため、対話型サービスは正常に機能しません。
{{cite web}}: CS1 メンテナンス: 追記 (リンク)Windows 7、Windows 8、Windows Server 2003、Windows Server 2003 R2、Windows Server 2003 SP1、Windows Server 2003 SP2、Windows Server 2008、Windows Server 2008 R2、Windows Server 2012、Windows Vista