PowerShellでWindowsサービスを設定・制御する方法

PowerShellでWindowsサービスを設定・制御する方法

Windows環境では、さまざまなプログラムがバックグラウンドで「サービス」として動作しています。

サービスの起動や終了、サービスの設定変更などを行う場合、管理ツール「サービス」を使った方法や、SCコマンドを使った方法が一般的ですが、PowerShellにも同様の操作ができるコマンドレットが用意されています。

そこでここではWindows 10を例に、Windowsサービスの起動や終了、サービスの設定変更などをPowerShellコマンドレットを使って行う方法を紹介します。

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
Windows 10 Pro 64bit2004

サービス情報を取得する

サービスの状態・名前・表示名を一覧で確認するときは「Get-Service」コマンドレットを実行します。

PS> Get-Service

PowerShellでWindowsサービスを設定・制御する方法

サービスによっては出力が長くて省略されていたりする場合は「Format-Table」コマンドを併用することで、省略されずに表示できます。

PS> Get-Service | Format-Table -AutoSize

PowerShellでWindowsサービスを設定・制御する方法

特定のサービスについての情報を取得するときは「-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」です。

Memo

PowerShellバージョン6以降では「AutomaticDelayedStart(遅延開始)」も指定できます。

PS> Set-Service -Name <サービス名> -StartupType Manual

「Set-Service」コマンドレットでは「-Status」オプションでサービスの状態を指定することもできます。

状態として指定できる値は「Running」「Stopped」「Paused」です。

PS> Set-Service -Name <サービス名> -Status Stopped

あとがき

Windows環境では、サービス設定に限らず多くの設定をPowerShellで行うことができます。

ご活用あれ。