もくじ
📝 はじめに
Windowsのトラブル対応や設定確認をしていて、
「このサービスは起動しているのか?」
「停止してはいけないサービスが止まっていないか?」
と確認したくなる場面は多いのではないでしょうか。
そんなときに使うのが、サービスの状態を確認できる
Get-Service です。
この記事では、サービス管理ツールを開かなくても、
PowerShellだけで状態を把握するための基本を解説します。
- ネットワークや印刷が動かない原因を調べたい
- 自動起動すべきサービスが止まっていないか確認したい
- スクリプトでサービス監視を行いたい
✅ このコマンドでできること(要点)
- Windowsサービスの状態を一覧で確認できる
- 起動中・停止中のサービスを判別できる
- 特定のサービスだけを絞り込める
- 他のコマンドと組み合わせて管理できる
✅ Get-Service でできること
Get-Service は、
Windows上で管理されている「サービス」の状態を取得するコマンドです。
サービスとは、バックグラウンドで常駐して動作する仕組みのことで、
ネットワーク、印刷、更新、セキュリティなど多くの機能が関係しています。
一覧で取得して、状態を確認・判定する、という考え方が基本です。
🧩 基本構文
Get-Service
何も指定せずに実行すると、
すべてのサービスとその状態が一覧表示されます。
▶ 基本的な使い方(まずこれだけ)
🔹 サービスの状態を一覧表示する
Get-Service
サービス名(Name)、表示名(DisplayName)、状態(Status)が表示されます。
一覧が表示されていれば、正常に取得できています。
🔹 特定のサービスを確認する
Get-Service -Name wuauserv
指定したサービスの状態だけが表示されます。
Statusが Running なら起動中、
Stopped なら停止中です。
🛠 よく使われる指定例
🔹 停止しているサービスだけを表示する
Get-Service | Where-Object Status -eq 'Stopped'
停止中のサービスだけを一覧で確認できます。
設定ミスや異常の早期発見に役立ちます。
🔹 名前でサービスを絞り込む
Get-Service | Where-Object Name -like '*print*'
サービス名に特定の文字列を含むものだけを抽出できます。
💼 実務でよく使う使用例(応用)
🔹 起動していないサービスをチェックする
Get-Service | Where-Object {$_.StartType -eq 'Automatic' -and $_.Status -ne 'Running'}
自動起動のはずなのに起動していないサービスを抽出できます。
結果が表示されていれば、確認対象が見つかっています。
🔹 サービス状態をログとして保存する
Get-Service | Out-File C:\logs\service_status.txt
- Where-Object で状態判定
- Sort-Object で並び替え
- Start-Service / Stop-Service と併用
🧩 よくある勘違い・つまずきポイント
- サービス名と表示名は別物
- 停止していても正常なサービスがある
- ユーザー権限では一部情報が制限される場合がある
- サービス状態は環境によって異なる
🔄 cmdとの違いについて
cmdでは sc query が
サービス確認の相当コマンドです。
scは文字列中心ですが、
Get-Serviceはオブジェクトとして扱えるため、
フィルタや条件指定が簡単です。
⚠ エラー・うまく動かないときの確認ポイント
- サービス名(Name)を正しく指定しているか
- 管理者権限が必要な操作ではないか
- 対象サービスが存在する環境か
- リモート環境で制限がかかっていないか
🧠 注意点
サービスの状態はシステム動作に直結します。
停止や起動の判断は、役割を理解した上で行うことが重要です。
📌 まとめ
- Get-Serviceはサービス状態確認の基本コマンド
- 一覧・絞り込み・ログ保存が簡単にできる
- トラブルシューティングに欠かせない
- 次は Start-Service や Stop-Service と組み合わせると便利
🔎 PowerShellコマンドを探す
やりたいことからコマンドを探せます。
- ファイルを削除したい
- 一覧を表示したい
- 文字列を検索したい
- 条件で絞り込みたい
- エラーや実行できない原因を調べたい
- サービスを起動・停止したい
- 常駐処理の状態を確認したい
