ディスク容量を節約したい人や、煩わしいエラーレポートを消したい人にとって、この大きな問題は実によくあることです。しかし、時として、C:\ProgramData\Microsoft\Windows\WER\ReportQueue\フォルダが膨大な容量、時には数十ギガバイトも消費してしまうことが真の問題となります。そして、Windows ではログをすべて削除する方法が明確に示されていないため、ほとんどの人はこれらのログを手動で削除しようとしません。幸いなことに、容量を解放する(そしてバックグラウンドでトラフィックが蓄積されるのを防ぐ)簡単な方法がいくつかあります。レポートキューをクリアする、サービスを無効化する、あるいは PowerShell コマンドでクリーンアップを自動化するなどです。つまり、不要なファイルを削除するだけではありません。WER サービスを管理または無効化する方法を知っておくことで、特にクラッシュやハングアップ後に巨大なダンプファイルを生成し続けるマシンでは、後で何時間ものフラストレーションを省くことができます。さらに、サーバー管理者やデータ収集に慎重な人にとって、エラーレポートを無効にすることは大きなメリットとなります。ただし、エラーレポートをオフにするとクラッシュ情報が自動的に送信されなくなり、トラブルシューティングが難しくなる可能性がありますのでご注意ください。さて、それでは実用的な修正方法を見ていきましょう。
Windows で Windows エラー報告を消去または無効にする方法
WindowsでWER\ReportQueueフォルダをクリアする方法
これは、巨大なログ フォルダーをすぐに修正する方法です。通常、これらのフォルダーのサイズは比較的小さいままですが、頑固なアプリのクラッシュによって、600 MB 以上の巨大なダンプ ファイルが生成されることがあります。また、セットアップによっては、このサイズが急速に増加し、ドライブが思ったよりも早くいっぱいになることがあります。システム ドライブの容量が GB 単位で増えていることに気付いた場合は、これらのログが原因である可能性があります。これらをクリアする最も簡単な方法は、C:\ProgramData\Microsoft\Windows\WER\ReportQueue\およびReportArchiveの内容を手動で削除することです。ファイル エクスプローラーでそこに移動し、すべて選択して削除するだけです。ただし、これをより高速に実行したり自動化したりしたい場合は、PowerShell が面倒な作業を実行します。以下のコマンドは、30 日以上経過したすべてのファイルを消去します。これにより、後で役立つ可能性のある最近のクラッシュ レポートを失うことなく、整理された状態を保つことができます。 Get-ChildItem -Path 'C:\ProgramData\Microsoft\Windows\WER\ReportArchive' -Recurse | Where-Object { $_. CreationTime -lt (Get-Date).AddDays(-30) } | Remove-Item -Force -Recurse Get-ChildItem -Path 'C:\ProgramData\Microsoft\Windows\WER\ReportQueue' -Recurse | Where-Object { $_. CreationTime -lt (Get-Date).AddDays(-30) } | Remove-Item -Force -Recurse 一部のシステムでは、これらのコマンドを実行するだけでは、最近のログがいくつか残る場合があることに注意してください。完全なクリーンアップを行うには、すべてのユーザープロファイルをループ処理し、個々のWERログも消去するスクリプトを実行することをお勧めします。以下に、その簡単なバージョンを示します。 $users = Get-ChildItem c:\users| Where-Object {$_. Name -notmatch 'Public|Default'} foreach ($user in $users) { Get-ChildItem "C:\Users\$($user. Name)\AppData\Local\Microsoft\Windows\WER\" -Recurse -ErrorAction SilentlyContinue | Remove-Item -Force -Recurse } 注意:これらのファイルの中には最近のクラッシュのログが含まれているものがあり、削除すると後でトラブルシューティングに使用できる情報が失われます。ただし、ディスク容量が心配な場合は、この方法で簡単に解決できます。
Windows Server で WER を無効にする
Windows Server を実行していて、エラー レポートで処理が滞らないようにしたい場合は、サービス全体をオフにすることができます。PowerShell を使用するのが最も簡単です。次のようにサービスを停止し、手動スタートアップに設定できます。 これにより、不要なクラッシュ ダンプが停止し、その痕跡が残ります。さらに、Windows にはWindowsErrorReporting (バージョンによっては使用できないものもあります) Get-Service WerSvc | Stop-Service -Force Set-Service -Name WerSvc -StartupType Manual という組み込みモジュールがあり、PowerShell を使用して管理できます。 エラー レポートを完全に無効にするには、次のようにします。 古いバージョンのサーバーでは、コントロール パネルから無効にすることもできます。[システムとセキュリティ] をクリックし、[アクション センター] をクリックします。[メンテナンス設定] で、エラー レポートをオプトアウトするオプションを選択します。見た目はあまり良くありませんが、目的は達成されます。Get-Command -Module WindowsErrorReportingDisable-WindowsErrorReporting
Windows 10でエラー報告を無効または有効にする
Windows 10 はここで少し異なります。Windows Server とは異なり、設定アプリにエラー報告をオフにする簡単な切り替えはありません。システムとセキュリティ > セキュリティとメンテナンス > メンテナンスでステータスを確認することはできますが、それだけです。実際の制御はレジストリの編集を通じて行われます。これをオフにするには、レジストリ キーを作成または変更します。regedit を開いて に移動します。次に、値が1 のHKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting新しい DWORD 値Disabledを追加します。これで、システム レベルで報告機能が無効になります。 必要に応じて、 を使用してユーザーごとにこれを行うこともできます。を に置き換えるだけです。これは、マシン全体に影響を与えずに特定のプロファイルのエラー収集を無効にする場合に役立ちます。その後、コントロール パネルを再度確認します。問題レポートの下の設定の変更リンクが「オフ」と表示されるか、無効になっているはずです。reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting" /v "Disabled" /t REG_DWORD /d "1" /fHKCUHKLMHKCU
グループポリシー(GPO)を使用して自動エラー報告を無効にする方法
これはドメイン環境では意味があるかもしれません。Windowsからのエラーレポートの送信を完全にブロックしたい場合は、グループポリシーオブジェクト(GPO)を編集するとよいでしょう。gpedit.msc (ローカル)またはGPMC (ドメイン管理)を開いて、以下の場所に移動します。
- コンピューターの構成 > 管理用テンプレート > Windows コンポーネント > Windows エラー報告
「Windows エラー報告を無効にする」というポリシーを見つけて、 「有効」に設定します。適用すると、Windows はエラーレポートを生成または送信しなくなります。必要に応じて、 「ユーザー構成」にも同様の設定があります。再起動は不要です。GPO を更新するだけで設定が有効になります。これは、特に大規模環境において、複数のマシンにエラーログが蓄積されるのを防ぐための効果的な方法です。ただし、エラー報告を無効にすると、クラッシュに関する迅速な分析情報が得られなくなるため、広範囲に展開する前に選択肢を検討してください。