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 管理者は、次の方法でサービスを管理できます。
- サービススナップイン( Windowsコントロール パネルの管理ツールにあります)
- Sc.exe
- Windows PowerShell
サービススナップイン
Microsoft管理コンソール上に構築されたサービススナップインは、ローカルコンピュータまたはネットワーク上のリモートコンピュータに接続して、ユーザーが次のことを実行できるようにします。[1]
- インストールされているサービスのリストをサービス名、説明、構成とともに表示します。
- サービスを開始、停止、一時停止、または再起動する[5]
- 該当する場合はサービスパラメータを指定する
- スタートアップの種類を変更します。許容されるスタートアップの種類は次のとおりです。
- 自動: サービスはシステムの起動時に開始されます。
- 自動(遅延) : システムの起動が完了した直後にサービスが開始されます。このオプションは、起動からデスクトップまでの時間を短縮するためにWindows Vistaで導入されました。ただし、すべてのサービスが遅延開始をサポートしているわけではありません。 [6]
- 手動: サービスは明示的に呼び出された場合にのみ開始されます。
- 無効: サービスは無効です。実行されません。
- サービスが動作するユーザーアカウントのコンテキストを変更する
- サービスが失敗した場合に実行する必要がある回復アクションを構成する
- サービスの依存関係を検査し、特定のサービスに依存するサービスまたはデバイス ドライバー、または特定のサービスが依存するサービスまたはデバイス ドライバーを検出します。
- サービスのリストをテキストファイルまたはCSVファイルとしてエクスポートする
コマンドライン
| 開発者 | Microsoft、ReactOS 貢献者 |
|---|---|
| オペレーティング·システム | Windows、ReactOS |
| タイプ | 指示 |
| ライセンス | Windows:商用 ソフトウェア ReactOS: GNU General Public License |
| Webサイト | docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc754599(v%3dws.11) |
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]
例
次の例では、アクティブなサービスとドライバーのステータスを列挙します。[12]
C:\> scクエリ
次の例では、 Windowsイベントログサービスの状態を表示します。[12]
C:\> sc クエリイベントログ
パワーシェル
Microsoft.PowerShell.Management PowerShell モジュール (Windows に含まれています) には、Windows サービスを管理するために使用できるコマンドレットがいくつかあります。
- ゲットサービス[13]
- 新サービス[14]
- サービスの再開[15]
- 履歴書サービス[16]
- セットサービス[17]
- スタートサービス[18]
- ストップサービス[19]
- サービスの一時停止[20]
その他の管理ツール
Windowsには、スナップイン、Sc.exe、PowerShellの機能のサブセットを実行できるコンポーネントも含まれています。netコマンドは、Windowsサービスを開始、停止、一時停止、または再開できます。[21] Windows Vista以降では、Windowsタスクマネージャーはインストールされているサービスの一覧を表示し、それらを開始または停止できます。MSConfigは、 Windowsサービスを有効または無効にできます(上記のスタートアップの種類の説明を参照)。
インストール
Windowsサービスは、 SetupAPIによって*.INFセットアップスクリプトを介してインストールおよび削除されます。インストールされたサービスはインストール後すぐに開始することができ、実行中のサービスはアンインストール前に停止することができます。[22] [23] [24]
発達
ネイティブサービスの作成
プログラムを Windows サービスとして実行するには、システム サービス API を介してサービス コントロール マネージャー(SCM) からのサービス開始、停止、一時停止のメッセージを処理するようにプログラムを作成する必要があります。SCM は、サービス プロセスの管理を担当する Windows コンポーネントです。
アプリケーションをサービスとしてラッピングする
Windows NT 3.51、Windows NT 4.0、Windows 2000用のWindows リソース キットには、サービスの使用と登録を制御するツールが用意されています。サービス ラッパーとして機能し、サービスに期待されるインターフェイスを処理します (例: service_start を処理し、後で service_started または service_failed で応答する)。また、実行可能ファイルまたはスクリプトをサービスとして構成できます。新しいサービスをインストール、開始、停止、アンインストールできます。[25]SrvAny.exeSc.exe
参照
- Windows サービス
- コンセプト
参考文献
- ^ abc 「サービスの概要」。TechNet。Microsoft。2013年3 月 29日閲覧。
- ^ 「サービス」。Microsoft Developer Network。Microsoft。2013年3 月 29 日閲覧。
- ^ 「Windows Vista 用の新しい Elevation PowerToys」。TechNet Magazine。Microsoft。2008年 6 月。2013年6 月 21 日閲覧。サービス CmdAsSystem は対話型として構成されていますが、そのサポートは廃止される予定です。サービスは正常に
機能しない可能性があります。問題は、このスクリプトが対話型サービスを作成して開始しようとすることです。対話型サービスは、Windows Vista のセッション 0 分離により正常に機能しません。
- ^ 「Windows のサービス」。MSDN。Microsoft。2010年 10 月 18 日。2013年6月 21 日閲覧。
- ^ 「サービスを開始、停止、一時停止、再開、または再起動する」。TechNet。Microsoft。2013年3月29 日閲覧。
- ^ 「ServiceInstaller.DelayedAutoStart プロパティ (System.ServiceProcess)」。Microsoft。2017年11 月 28 日閲覧。備考セクションを参照。
{{cite web}}: CS1 メンテナンス: 追記 (リンク) - ^ 「Sc.exe を使用して Windows サービスを作成する方法」。サポート。Microsoft。2011 年 9 月 11 日。2013 年3 月 29 日に閲覧。
- ^ 「コマンドラインリファレンス AZ: SC」。TechNet。Microsoft。2014年1月 8日閲覧。
- ^ ab 「コマンドライン リファレンス: Sc」。TechNet。Microsoft。2014年1 月 8 日閲覧。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
- ^ SC - サービス コントロール - Windows CMD - SS64.com
- ^ reactos/sc.c at master · reactos/reactos · GitHub
- ^ ab MS-DOS および Windows のコマンドライン sc コマンド
- ^ 「Get-Service」。TechNet。Microsoft。2013年3 月 29日閲覧。
- ^ 「New-Service」。TechNet。Microsoft。2013年3 月 29日閲覧。
- ^ 「Restart-Service」。TechNet。Microsoft。2013年3 月 29日閲覧。
- ^ 「Resume-Service」。TechNet。Microsoft。2013年3 月 29日閲覧。
- ^ 「Set-Service」。TechNet。Microsoft。2013年3 月 29日閲覧。
- ^ 「Start-Service」。TechNet。Microsoft。2013年3 月 29日閲覧。
- ^ 「Stop-Service」。TechNet。Microsoft。2013年3 月 29日閲覧。
- ^ 「Suspend-Service」。TechNet。Microsoft。2013年3 月 29日閲覧。
- ^ 「サービスを開始、停止、一時停止、再開、または再起動する」。TechNet。Microsoft。2014年1月8日閲覧。
- ^ 「INF AddService ディレクティブ」。Microsoft。2017年7 月 10 日閲覧。
- ^ 「SetupInstallServicesFromInfSection 関数」。MSDN。Microsoft。2017年7 月 10日閲覧。
- ^ 「 SetupInstallServicesFromInfSectionEx関数」。MSDN。Microsoft。2017年7 月 10 日閲覧。
- ^ 「ユーザー定義サービスを作成する方法」。サポート。Microsoft。2013年3 月 29 日閲覧。
さらに読む
- Savill, John (1999 年 3 月 5 日)。「Services サブキーの ErrorControl、Start、および Type の値とは何ですか?」。Windows IT Pro。Penton Media。2013年3月 29 日閲覧。
- David B. Probert、Windows サービス プロセス
外部リンク
- Windows Sysinternals: Autoruns for Windows v13.4 – サービスの非常に詳細なクエリ
- コマンドラインからの Windows Sc によるサービス管理 - Windows サービス管理チュートリアル
- Windows サービス マネージャー トレイ
