もくじ
📝 はじめに
パソコンの調子が悪い、動作が重い、突然フリーズした――
そんなときにまず把握したいのが
「今、システムがどんな状態で稼働しているか」です。
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の稼働状況をまとめて確認したい
- 動作が重い原因を切り分けたい
