[登録されているタグ]

[記事公開日]2026/01/23

PowerShellでシステム稼働状況を把握する|基本コマンドまとめ

📝 はじめに

パソコンの調子が悪い、動作が重い、突然フリーズした――
そんなときにまず把握したいのが
「今、システムがどんな状態で稼働しているか」です。

PowerShellを使えば、OSの起動状況、稼働時間、CPUメモリの負荷、
異常の兆候などをコマンド1本単位で確認できます。
この記事では、システム稼働状況を把握するための基本コマンド
「まず確認する順」でまとめます。

こんな場面で便利

  • 動作が重い原因を切り分けたい
  • 長時間起動しっぱなしのPCを確認したい
  • 再起動されているかを把握したい
  • 問い合わせ・保守対応で状況説明をしたい

✅ このコマンドでできること(要点)

  • Windowsの起動・稼働状況を把握できる
  • CPU・メモリなどの負荷状況を確認できる
  • 異常が起きていないかの初動チェックができる
  • トラブル切り分けの「入口」を素早く作れる

✅ システム稼働状況とは何を指すか

ここでいう「システム稼働状況」とは、
次のような情報を総合的に見た状態を指します。

  • いつ起動したか(再起動されているか)
  • どれくらい稼働し続けているか
  • CPUやメモリに過度な負荷がかかっていないか
  • 直近で異常終了やエラーが起きていないか

これらを順番に確認することで、
「今の状態が正常そうか/怪しいか」の判断材料になります。

🧩 基本構文

Get-CimInstance
Get-Process
Get-WinEvent

システム稼働状況の把握は、
単一コマンドではなく、複数の基本コマンドの組み合わせで行います。

▶ 基本的な使い方(まずこれだけ)

🔹 最終起動時刻を確認する(起動状況)

Get-CimInstance Win32_OperatingSystem |
Select-Object LastBootUpTime

PCが最後に起動(再起動)した時刻を確認できます。
長期間更新されていなければ、起動しっぱなしの可能性があります。

🔹 起動してからの稼働時間を確認する

$os = Get-CimInstance Win32_OperatingSystem
New-TimeSpan -Start $os.LastBootUpTime -End (Get-Date)

何日・何時間連続稼働しているかの目安になります。

🛠 よく使われる指定例

🔹 CPU負荷が高いプロセスを確認する

Get-Process |
Sort-Object CPU -Descending |
Select-Object -First 10 Name, CPU

CPUを多く使用しているプロセスを確認できます。
動作が重いときの定番チェックです。

🔹 メモリを多く消費しているプロセスを確認する

Get-Process |
Sort-Object WorkingSet -Descending |
Select-Object -First 10 Name,
  @{Name="MemoryMB";Expression={[Math]::Round($_.WorkingSet/1MB,1)}}

メモリ不足が疑われる場合の確認に使います。

🔹 直近のエラー・警告を確認する

Get-WinEvent -LogName System -MaxEvents 50 |
Where-Object { $_.LevelDisplayName -in @("Error","Warning") } |
Select-Object TimeCreated, LevelDisplayName, ProviderName, Id

システムが不安定になっていないかの初動確認として有効です。

💼 実務でよく使う使用例(応用)

🔹 「長時間稼働+エラーあり」をまとめて確認する

$os = Get-CimInstance Win32_OperatingSystem
$uptime = (New-TimeSpan -Start $os.LastBootUpTime -End (Get-Date)).Days

if ($uptime -gt 7) {
  Get-WinEvent -LogName System -MaxEvents 20 |
  Where-Object { $_.LevelDisplayName -in @("Error","Warning") }
}

再起動されていないPCでエラーが出ていないか、
ざっくり確認する例です。

🔹 稼働状況をファイルに保存する

Get-CimInstance Win32_OperatingSystem |
Select-Object CSName, LastBootUpTime |
Out-File "C:\logs\system_status.txt"

問い合わせ対応や記録用に残す場合に使えます。

組み合わせ例

  • 起動時間 → 稼働時間 → エラーログの順で確認
  • CPU/メモリ負荷と合わせて「今の重さ」を判断
  • イベントログは直近から見るのが基本

🧩 よくある勘違い・つまずきポイント

  • 起動時間が新しくても、不具合がないとは限らない
  • CPU使用率は瞬間的に高くなることがある
  • エラーがなくても、性能不足の場合がある
  • Where-Objectの多用で処理が遅くなることがある
  • 仮想環境では実機と挙動が異なる場合がある

⚠ エラー・うまく動かないときの確認ポイント

  • 管理者として実行が必要なコマンドではないか
  • PowerShellのバージョンが極端に古くないか
  • ログ取得対象が正しいか(System / Application)
  • 取得件数が多すぎていないか

🧠 注意点

システム稼働状況は「現時点のスナップショット」です。
原因特定や判断には、
時間帯・利用状況・更新履歴など
他の情報と組み合わせることが重要です。

📌 まとめ

  • まずは起動時間・稼働時間を確認する
  • 次にCPU・メモリ負荷をチェックする
  • 直近のエラー・警告で不安定要素を探す
  • PowerShellなら状況確認を素早く整理できる

🔎 PowerShellコマンドを探す

  • ファイルを削除したい
  • 一覧を表示したい
  • 文字列を検索したい
  • 条件で絞り込みたい
  • エラーや実行できない原因を調べたい
  • PCの稼働状況をまとめて確認したい
  • 動作が重い原因を切り分けたい
Generic filters
すべてを開く | すべてを閉じる

ページ上部へ戻る