Windows環境では、さまざまなプログラムがバックグラウンドで「サービス」として動作しており、サービスの起動や終了、サービスの状態を確認するためのコマンドが用意されています。
そこでここではWindows 10を例に、WindowsコマンドやPowerShellを使ってWindowsサービスの起動や終了、サービスの設定変更などを行う方法を紹介します。
目次
scコマンドを使った方法
Windowsコマンドでサービスを制御するときは、scコマンドを使った方法が一般的です。
サービス情報の取得
scコマンドにはサービスを管理するためのサブコマンドがたくさんあり、現在実行中のサービスの名前などを一覧で確認するときは、以下のようにコマンドを実行します。
> sc query
停止中のサービスを含めて一覧表示したいときは、以下のようにコマンドを実行します。
> sc query state= all
特定のサービスの情報だけを取得したいときは、サービス名を指定することで、指定したサービスの情報だけを確認できます。
> sc query <サービス名(SERVICE_NAME)>
たとえば、Windows Updateサービスの情報を確認したいときは、以下のようにコマンドを実行します。
> sc query wuauserv
サービスの起動/停止
特定のサービスを起動するときは、以下のようにコマンドを実行します。
> sc start <サービス名(SERVICE_NAME)>
特定のサービスを停止するときは、以下のようにコマンドを実行します。
> sc stop <サービス名(SERVICE_NAME)>
サービスの一時停止/再開
実行中の特定のサービスを一時停止するときは、以下のようにコマンドを実行します。
> sc pause <サービス名(SERVICE_NAME)>
一時停止中の特定のサービスを再開するときは、以下のようにコマンドを実行します。
> sc continue <サービス名(SERVICE_NAME)>
サービス設定の変更
特定のサービスのスタートアップの種類を変更するときは、以下のようにコマンドを実行します。
たとえば、スタートアップの種類を自動に設定したいときは、以下のようにコマンドを実行します。
> sc config <サービス名(SERVICE_NAME)> start= auto
スタートアップの種類としては「auto(自動)」以外に「demand(手動)」「disabled(無効)」「delayed-auto(遅延自動起動)」などを指定できます。
なお、scコマンドは、ここで紹介した以外にも、登録されている特定のサービスを削除したり、新しいサービスを登録するといったこともできます。
PowerShellコマンドレットを使った方法
サービス情報の取得
PowerShellコマンドレットでサービスの状態・名前・表示名を一覧で確認するときは「Get-Service」コマンドレットを実行します。
PS> Get-Service
サービスによっては出力が長くて省略されていたりする場合は「Format-Table」コマンドを併用することで、省略されずに表示できます。
PS> Get-Service | Format-Table -AutoSize
特定のサービスについての情報を取得するときは「-Name」オプションを利用します。
PS> Get-Service -Name <サービス名> | Format-Table -AutoSize
サービスの起動/停止
特定のサービスを起動するときは「Start-Service」コマンドレットを実行します。
PS> Start-Service -Name <サービス名>
特定のサービスを停止するときは「Stop-Service」コマンドレットを実行します。
PS> Stop-Service -Name <サービス名>
特定のサービスを再起動するときは「Restart-Service」コマンドレットを実行します。
PS> Restart-Service -Name <サービス名>
上のコマンドレットでは、サービスを指定するのに「-Name」オプションを利用してサービス名を指定していますが「-DisplayName」オプションを利用して、サービス表示名で指定することもできます。
サービスの一時停止/再開
実行中の特定のサービスを一時停止するときは「Suspend-Service」コマンドレットを実行します。
PS> Suspend-Servie -Name <サービス名>
一時停止中の特定のサービスを再開するときは「Resume-Service」コマンドレットを実行します。
PS> Resume-Service -Name <サービス名>
サービス設定の変更
特定のサービスのスタートアップの種類や状態を設定するときは「Set-Service」コマンドレットを利用します。
スタートアップの種類を指定するときは「-StartupType」オプションを利用し、指定できる値は「Automatic」「Manual」「Disabled」です。
PowerShellバージョン6以降では「AutomaticDelayedStart(遅延開始)」も指定できます。
PS> Set-Service -Name <サービス名> -StartupType Manual
「Set-Service」コマンドレットでは「-Status」オプションでサービスの状態を指定することもできます。
状態として指定できる値は「Running」「Stopped」「Paused」です。
PS> Set-Service -Name <サービス名> -Status Stopped