Windowsサービスの制御をPowerShellで行う方法

Windowsサービスの制御をPowerShellで行う方法

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

サービスの設定を調整する場合、管理ツール「サービス」から設定する方法や、SCコマンドを使った方法がありますが、PowerShellでも一通りの操作が可能となっています。

そこでここでは、Windows 10のPowerShellでサービスを制御する方法を紹介します。

動作環境

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

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

サービス情報を取得する

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

PS> Get-Service

Windowsサービスの制御をPowerShellで行う方法

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

PS> Get-Service | Format-Table -AutoSize

Windowsサービスの制御をPowerShellで行う方法

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

ご活用あれ。