この記事では、Windows環境においてPowerShellを使用して、ローカルで実行中のサービスを一覧表示し、特に停止しているサービスを自動で再起動する方法について解説します。サービスが停止してしまった際に手動で修復するのは面倒な作業ですが、このスクリプトを用いれば、それが簡単に解決します。
前提条件と必要な知識
- Windowsオペレーティングシステム
- PowerShellがインストールされていること
基本コマンドと概念
Get-Service
このコマンドを使用すると、Windowsサービスのステータスを確認できます。
# すべてのサービスを表示
Get-Service
Start-Service
このコマンドを使用すると、特定のWindowsサービスを起動できます。
# "wuauserv" サービスを起動
Start-Service -Name 'wuauserv'
スクリプトの作成
停止しているサービスの一覧表示と再起動
以下のスクリプトは、停止しているサービスを一覧表示してから、それらのサービスを再起動する例です。
# 停止しているサービスを取得
$stoppedServices = Get-Service | Where-Object { $_.Status -eq 'Stopped' }
# 停止しているサービスを一覧表示
$stoppedServices | Select-Object -Property DisplayName, Status | Format-Table -AutoSize
# 停止しているサービスを再起動
$stoppedServices | ForEach-Object {
Start-Service -Name $_.ServiceName
# 日本語のコメント:ここで各停止サービスを再起動しています。
}
コードの説明
Get-Service
:すべてのサービスを取得します。Where-Object
:条件に合うサービスをフィルタリングします。この例ではステータスが ‘Stopped’ であるサービスを取得します。Start-Service
:フィルタリングしたサービスを再起動します。
補足と応用例
特定のサービスだけを対象とする
このスクリプトは全ての停止しているサービスを再起動しますが、特定のサービスだけを再起動するようにも編集できます。
ログ出力の追加
このスクリプトの実行結果をテキストファイルなどにログとして出力することも可能です。
まとめ
PowerShellを使用して、停止しているWindowsサービスを一覧表示し、再起動する方法について解説しました。この手法を利用すれば、手動で一つ一つサービスを再起動する手間を大いに省くことができます。また、特定のサービスだけを対象とする方法や、ログ出力の追加など、さまざまな応用例も考えられます。
コメント