もくじ
📝 はじめに
PowerShellでコマンドやスクリプトを実行していると、
「なぜ失敗したのか分からない」「エラー内容をもう一度確認したい」
と感じる場面は少なくありません。
そんなときに役立つのが $Error です。
これはPowerShellに用意されているエラー履歴を保持する自動変数で、
発生したエラーの詳細情報を後から確認できます。
- 直前に発生したエラー内容を確認したい
- エラーメッセージをコピーして調査したい
- スクリプトのデバッグをしたい
- 同じエラーが何度も出ているか確認したい
✅ この機能でできること(要点)
- $Error で発生したエラー履歴を確認できる
- 最新のエラーから順に保存されている
- エラーの詳細情報(例外・原因)を確認できる
- トラブルシュートやデバッグに役立つ
✅ $Errorでできること
$Error は、PowerShellセッション内で
発生したエラーを配列として保持する変数です。
- 直前に発生したエラーの内容を確認する
- 過去のエラー履歴を一覧で確認する
- エラーの種類や詳細情報を調べる
エラーが画面から流れてしまっても、$Errorを見れば後から確認できます。
🧩 基本的な見方
まずは、エラー履歴をそのまま表示してみます。
$Error
これまでに発生したエラーが、最新のものから順に表示されます。
▶ 基本的な使い方(まずこれだけ)
📄 直前のエラーを確認する
$Error[0]
配列の先頭([0])には、
最新のエラーが格納されています。
📘 複数のエラーを一覧で確認する
$Error | Select-Object -First 5
直近5件のエラーをまとめて確認できます。
🛠 よく使われる確認方法
🧱 エラーの詳細情報を確認する
$Error[0] | Format-List *
例外の種類やスタックトレースなど、
より詳しい情報を確認できます。
📖 エラーメッセージだけを確認する
$Error[0].Exception.Message
エラーの要点だけを素早く把握したい場合に便利です。
💼 実務でよく使う使用例(応用)
🤔 スクリプトのデバッグに使う
スクリプト実行後にエラーが出た場合、
$Errorを使うことで原因の切り分けがしやすくなります。
- スクリプトを実行
- エラー発生
- $Error[0] で詳細確認
🔄 エラー履歴をリセットする
$Error.Clear()
古いエラーを消して、新しいエラーだけを確認したい場合に使います。
🧩 よくある勘違い・つまずきポイント
- $Errorは現在のPowerShellセッション内だけ有効
- すべてのエラーが必ず$Errorに入るとは限らない
- 大量のエラーがあると見づらくなる
- 非致命的エラーも含まれる
⚠ エラー確認がうまくいかないときのチェックポイント
- 新しいセッションを開いていないか
- $ErrorをClearしてしまっていないか
- エラーが警告扱いになっていないか
🧠 注意点
$Errorは非常に便利ですが、内容はセッション終了とともに失われます。
永続的に残したい場合は、ログ出力やTranscriptとの併用がおすすめです。
📌 まとめ
- $ErrorはPowerShellのエラー履歴を確認するための自動変数
- 直前のエラーは $Error[0] で確認できる
- デバッグやトラブルシュートで必須の知識
🔎 PowerShellコマンドを探す
PowerShellには、エラー確認やトラブル対応に役立つ機能が他にもあります。
- エラーの原因を詳しく調べたい
- 実行ログを記録したい
- スクリプトを安全に実行したい
- PowerShellの基本を体系的に学びたい
