【完全ガイド】PowerShellのRestart-Serviceとは?Windowsサービスを安全に再起動する方法

Windows

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を活用してみてください!

コメント

タイトルとURLをコピーしました