Windowsサービスが不調なとき、「一度再起動すれば直るのに…」という場面はよくありますよね。
GUIから手動で停止→起動するのは手間がかかります。
そんなとき便利なのが、PowerShellのRestart-Service
コマンドです。
この記事では、PowerShellを使ってWindowsサービスを一発で再起動する方法を、初心者でもわかりやすく解説します。
Restart-Service
の基本構文・使用例・安全な再起動のコツ・よくあるエラーの対処法までを網羅します!
Restart-Serviceとは?

Restart-Service
は、PowerShellでWindowsサービスを一度停止してから再起動するためのコマンドレットです。
たとえば以下のようなケースで使われます:
- メモリリークがあるサービスを定期的に再起動したい
- トラブル時に一時的なサービスリフレッシュを行いたい
- GUIを開かずに自動化スクリプトに組み込みたい
基本的な使い方と構文

構文:
Restart-Service -Name サービス名
例:WSearchを再起動
Restart-Service -Name WSearch
このコマンドで「WSearch」がいったん停止され、その後すぐに再起動されます。
サービス名の調べ方(Get-Service)
サービス名を確認するには、次のコマンドを使用します:
Get-Service
出力例:
Status Name DisplayName
------ ---- -----------
Running Spooler Print Spooler
Stopped WSearch Windows Search
Restart-Service -Name
に使うのは「Name」列の値です。
起動中のときだけ再起動する条件付きスクリプト
すでに停止しているサービスにRestart-Service
を実行するとエラーになることがあります。
事前に状態を確認するスクリプトが安全です。
$svc = Get-Service -Name WSearch
if ($svc.Status -eq 'Running') {
Restart-Service -Name WSearch
Write-Output "WSearch を再起動しました。"
} else {
Write-Output "WSearch は停止中のため、再起動されませんでした。"
}
複数サービスを一括再起動する方法

カンマで指定
Restart-Service -Name Spooler, WSearch
配列とループで柔軟に
"Spooler", "WSearch" | ForEach-Object {
$svc = Get-Service -Name $_
if ($svc.Status -eq "Running") {
Restart-Service -Name $_
Write-Output "$_ を再起動しました。"
}
}
よくあるエラーと対処法

エラー | 原因と対処法 |
---|---|
Cannot find any service with service name | サービス名が誤っている。Get-Service で確認を。 |
Access is denied | 管理者権限でPowerShellを実行する必要があります。 |
Cannot restart service | サービスが停止中、または依存関係に問題がある可能性。状態確認と依存設定をチェックしましょう。 |
まとめ:トラブル解消に使えるRestart-Service
PowerShellのRestart-Service
は、Windowsサービスの再起動を一発で実行できる強力なツールです。
特にトラブル対応や日次のサービス管理タスクにおいて、GUIよりも高速・確実に操作できるのが魅力です。
ポイントまとめ
Restart-Service -Name
でサービスを停止→起動の流れで再起動Get-Service
でサービス名を確認してから使用- 条件分岐やループと組み合わせて柔軟な再起動が可能
- 管理者権限で実行しよう
PowerShellを使ったサービス管理をもっと効率化したい方は、ぜひRestart-Service
を活用してみてください!
コメント