Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

【Windows】エラー報告(WER)を無効化してReportQueueフォルダをクリアする完全ガイド

Windows エラー報告サービス(WER:Windows Error Reporting)は、システムやサードパーティ製アプリケーションの障害に関するデバッグ情報を収集し、エラーレポートをMicrosoftのサーバーへ送信するための機能です。収集された情報はMicrosoft側で分析され、解決策が見つかった場合は「Windows エラー報告レスポンス」を通じてユーザーに通知される仕組みです。しかし実際にこの機能を積極的に活用しているユーザーはごくわずかで、それにもかかわらず最新のWindowsではWERサービスがデフォルトで有効になっています。多くのユーザーがWERの存在を意識するのは、C:\ProgramData\Microsoft\Windows\WER\ReportQueue\フォルダがシステムドライブ上で数十GBもの容量を占有していることに気づいたときです。このディレクトリにはNTFS圧縮がデフォルトで適用されているにもかかわらず、です。

Windows エラー報告サービスとは

アプリケーションエラーが発生すると、Windows エラー報告はダイアログボックスを表示し、Microsoftへのエラーレポート送信を促します。Windowsで「YourAppName.exe は動作を停止しました。Windows は問題について追加情報を収集しています」というメッセージが表示される際、Windows エラー報告サービスはWerFault.exeツールを実行し、デバッグデータ(メモリダンプを含む場合があります)を収集します。

ユーザーデータはユーザープロファイル配下に保存されます:

%USERPROFILE%\AppData\Local\Microsoft\Windows\WER\

一方、システムデータはProgramDataディレクトリに保存されます:

%ALLUSERSPROFILE%\Microsoft\Windows\WER\

Windows エラー報告サービスは独立したWindowsサービスとして動作しており、以下のPowerShellコマンドで状態を確認できます:

Get-Service WerSvc

WER\ReportQueue\ディレクトリ内には、次のような形式の名前を持つ多数のフォルダが存在します:

  • Critical_6.3.9600.11285_{ID}_00000000_cab_3212dd23
  • Critical_powershell.exe_{ID}_cab_332a45c5
  • Critical_sqlservr.exe__{ID}_cab_b3a200181
  • NonCritical_7.9.9600.11285__{ID}_0bfab19a
  • AppCrash_cmd.exe_{ID}_dba332ad_12eb5425

フォルダ名にはイベントの重大度レベルと、クラッシュした実行ファイル(EXE)の名前が含まれています。各フォルダにはReport.werというファイルが格納されており、エラーの詳細説明や追加情報を含むファイルが一緒に保存されています。

WER\ReportQueueフォルダをクリアする方法

通常、各フォルダのサイズは小さなものですが、問題が発生したプロセスに対してメモリダンプが生成されるケースでは、大幅なディスク容量を消費することがあります。下のスクリーンショットでは、memory.hdmpのサイズが約610MBに達していることが確認できます。このようなダンプファイルが数個存在するだけで、システムドライブ上で数GBを占有してしまいます。

Windowsの内蔵ツールを使ってこれらのエラーやログをまとめてクリアするには、コントロールパネルを開き、「システムとセキュリティ」→「セキュリティとメンテナンス」→「メンテナンス」→「信頼性履歴の表示」→「すべての問題レポートの表示」と進み、「すべての問題レポートの削除」をクリックします。

ディスク容量を素早く解放したい場合は、以下のフォルダに保存されているWERサービス由来のデバッグファイルやログファイルを手動で削除しても問題ありません:

  • C:\ProgramData\Microsoft\Windows\WER\ReportArchive\
  • C:\ProgramData\Microsoft\Windows\WER\ReportQueue\

次のPowerShellコマンドを実行すると、WERディレクトリから作成日時が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ディレクトリを一括クリーンアップしたい場合は、次のPowerShellスクリプトを使用します:

$users = Get-ChildItem c:\users|where{$_.name -notmatch 'Public|default'}
foreach ($user in $users){
Get-ChildItem "C:\Users\$User\AppData\Local\Microsoft\Windows\WER\" –Recurse -ErrorAction SilentlyContinue | Remove-Item –force –Recurse
}

Windows ServerでWindows エラー報告を無効にする方法

Windows Server 2019/2016/2012R2では、PowerShellを使ってWERサービスの状態を管理できます。Windows エラー報告サービスを停止・無効化するには、次のコマンドを実行します:

Get-Service WerSvc| stop-service –passthru -force
Set-Service WerSvc –startuptype manual –passthru

ただし、Windows上でWERを無効化するには、よりスマートな方法が用意されています。PowerShell 4.0以降では、専用のWindowsErrorReportingモジュールが追加されています:

Get-Command -Module WindowsErrorReporting

次のコマンドでWindows エラー報告機能の現在の状態を確認できます:

Get-WindowsErrorReporting

WERを無効化するには、以下のコマンドを実行します:

Disable-WindowsErrorReporting

また、Windows Server 2012 R2ではコントロールパネルからも無効化可能です(コントロールパネル→「システムとセキュリティ」→「アクションセンター」→「メンテナンス」→「設定」→「参加しない。今後も確認しない」を選択)。

Windows 10でエラー報告を無効/有効にする方法

Windows 10では、コントロールパネルのGUIからエラー報告を直接無効化することはできません。コントロールパネル→「システムとセキュリティ」→「セキュリティとメンテナンス」→「メンテナンス」でコンポーネントの状態を確認すると、「問題レポート」の設定が有効になっていることがわかります。

Windows 10でWindows エラー報告を無効化するには、レジストリを編集します。HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reportingキーの下に、Disabledという名前の新しいDWORD(32ビット)値を作成し、その値を1に設定してください。

特定のユーザーのみエラー収集を無効化する場合は、次のコマンドを使用します:
reg add "HKCU\Software\Microsoft\Windows\Windows Error Reporting" /v "Disabled" /t REG_DWORD /d "1" /f

すべてのユーザーに対してWERを無効化する場合は、こちらのコマンドを実行します:
reg add "HKLM\Software\Microsoft\Windows\Windows Error Reporting" /v "Disabled" /t REG_DWORD /d "1" /f

設定後、コントロールパネルの「問題レポート」の状態を再度確認してみてください。「オフ」に変更されているはずです。

なお、このレジストリパラメータはGPO(グループポリシー)を通じてドメイン内の複数のコンピューターへ一括展開することも可能です。

GPOで自動Windows エラー報告を無効化する方法

グループポリシーを使用すれば、Windows エラー報告サービスによるログ記録を組織単位で無効化できます。ローカルGPOエディター(gpedit.msc)またはドメインGPO管理コンソール(gpmc.msc)を開き、次のセクションへ移動してください:「コンピューターの構成」→「管理用テンプレート」→「Windows コンポーネント」→「Windows エラー報告」。ここにある「Windows エラー報告を無効にする」というポリシーを探し、「有効」に設定します。これにより、Windowsによるデータ収集およびエラー報告機能が無効になります。

同様のポリシーは「ユーザーの構成」セクションにも存在するため、ユーザー単位での制御も可能です。

設定を反映させるためにGPOを更新します(再起動は不要です)。

以上の設定を適用すると、Windowsはアプリケーションやシステムのエラーレポートを生成しなくなり、Microsoftへの送信も一切行われなくなります。ディスク容量の圧迫や不要な通信を防ぎたい環境では、本記事の手順を参考にWERの運用を見直してみてください。

  1. Windows 10の「ニュースと関心事項」を完全に無効化する3つの方法

    Windows 10の「ニュースと関心事項(News & Interests)」機能を簡単かつ確実に無効化したい方は、ぜひ本記事をご覧ください。 Windows 10はアップデートを重ねるごとに進化を続けています。2021年5月25日に配信された最新の更新プログラム「KB5003214」では、タスクバーに「ニュースと関心事項」機能が追加され、ユーザーの好みに合わせた質の高いコンテンツへ簡単にアクセスできるようになりました。 しかしながら、この新機能を無効にしたいと考える理由は人それぞれです。中には、天気予報やニュースの表示が作業の妨げになり、集中力を削がれてしまうと感じる方もいるでし

  2. Windows 10 / Windows 11 で自動再生(AutoPlay)を無効にする方法

    WindowsパソコンにUSBメモリーや外付けHDDなどのリムーバブルディスクを挿入すると、ドライブ内のファイルに対して何らかの操作を促すポップアップが突然表示されることがあります。 この動作の原因となっているのが「自動再生(AutoPlay)」と呼ばれる機能です。Windows 98の時代から搭載されているこの機能は、新しく接続されたリムーバブルドライブ内のデータをスキャンし、ファイルの内容に応じて「動画を再生」「音楽を聴く」「フォルダーを開く」といった選択肢を自動的に提示します。 確かに便利な機能ですが、セキュリティへの懸念や操作性の好みなど、さまざまな理由から無効にしておきたいユーザーも