Windows でイベント ログを消去するのは、特にすばやく実行したい場合は少し面倒です。トラブルシューティングの後、ログが蓄積されていることに気付いたり、手動で 1 つ 1 つクリックせずに整理したいと思ったりするかもしれません。幸いなことに、これらのログを消去する方法は複数あります (GUI、コマンド ライン、または PowerShell)。どの方法を選択するかは、ターミナル コマンドに慣れているか、グラフィカルなものを好むかによって異なります。注意: 一部のログ (特にセキュリティやシステム情報に関連するログ) はアクセス許可のために扱いが難しい場合があり、特定のログを消去するには管理者権限が必要になるか、イベント ビューアーを開く必要がある場合があります。また、ログを消去すると空き領域が増え、トラブルシューティングがより明確になる可能性がありますが、一部のログは監査やトラブルシューティングに重要であるため、必要に応じて選択的に実行してください。では、ログを消去する方法を説明します。
Windowsイベントログをクリアする方法 – さまざまな方法
イベント ビューアー GUI を使用して保存された Windows ログを削除する
コマンドラインに慣れていない場合、これがおそらく最も簡単な方法です。イベントビューアーを開き、ログを右クリックして「ログのクリア」を選択するだけです。非常に簡単で、一時的にいくつかのログを消去するだけなら便利です。
- 「実行」
eventvwr.mscと入力するか( を押す)、スタート メニューでイベント ビューアーを検索します。Win + R - 左側のサイドバーにある「Windows ログ」に移動します。アプリケーション、セキュリティ、システムなどのログが表示されます。
- ログ名 (たとえば、アプリケーション) を右クリックし、[ログのクリア]を選択します。
- バックアップを保存するかどうかを尋ねられます。最小限のものを消去するだけの場合は、[クリア]を選択します。
この方法ではログは即座にクリアされますが、より自動化された方法(たとえば、ログを一括でクリアするなど)が必要な場合は、PowerShell またはコマンド ラインを使用します。
コマンドプロンプトからWindowsイベントログを消去する方法
ここからが少し柔軟になります。このwevtutil.exeツールはコマンドラインからログをクリアできるので、スクリプトを書いたり、ただクリックするだけという作業に最適です。
まず、システムに登録されているすべてのログを表示するには、コマンド プロンプト (管理者) で実行します。
WevtUtil enum-logs
または、短縮バージョン:
WevtUtil el
対象とできるすべてのログがリストされています。特定のログを消去するには、リストからログ名をコピーするだけです。例えば、アプリケーションログを消去したい場合は以下のようになります。
WevtUtil cl Application
削除する前にログをバックアップしたい場合 (トラブルシューティングを行う場合は通常これが良い方法です)、ダンプ パラメータを追加するだけです。
WevtUtil cl Application /bu:C:\Backups\ApplicationBackup.evtx
すべてのログを一度にクリアするには、次のようにコマンド プロンプトでループを実行します (1 つのセットアップでは正常に動作しますが、別のセットアップではアクセス エラーが発生したり、権限の問題で一部のログが欠落したりする可能性があります)。
for /F "tokens=*" %1 in ('wevtutil.exe el') do wevtutil.exe cl "%1"
バッチ スクリプト (.bat) の場合は、パーセント記号を 2 倍にします。
for /F "tokens=*" %%1 in ('wevtutil.exe el') do wevtutil.exe cl "%%1"
コマンド プロンプトを管理者として実行しないと、一部のログが消去されない場合があることに注意してください。その場合は、右クリックして [管理者として実行] を選択します。
Clear-EventLog: PowerShell を使用してログをクリアする
PowerShellは非常に強力で、大量のログ処理を迅速に処理できます。まず、管理者としてPowerShellを起動します。まず、すべてのログとその設定の一覧を取得します。
Get-WinEvent -ListLog *
このコマンドを実行すると、すべてのログ、その最大サイズ、そしてログが有効かどうかが表示されます。セキュリティやシステムなど、特定のログを消去したい場合は、次のコマンドを実行してください。
Clear-EventLog -LogName Security, System
これにより、選択したログが消去され、完了したことを示すわかりやすいログエントリが生成されます。ちなみに、権限の問題で一部のログが消去されないという警告が表示される場合があります。特に、ログがユーザーまたはシステムによって保護されている場合に多く見られます。このような場合は、PowerShell を管理者権限で実行してください。
より強力なアプローチ(すべてのログをクリアする)を好む場合は、次の操作を実行できます。
Get-WinEvent -ListLog * -Force | % { Wevtutil.exe cl $_. LogName }
ただし、これにより特定の保護されたログでエラーが発生する可能性があり、GUI から手動でクリアするか、昇格された権限を使用してクリアする必要があることに注意してください。
他のすべてが失敗した場合、権限が問題である可能性があります
管理者権限でもログが消去されない場合は、権限の問題か、一部のログがアクティブなシステムプロセスに関連付けられている可能性があります。ログを消去した後にシステムを再起動すると、resethandles が改善する場合がありますが、これは全く別の問題です。また、セキュリティログなど、一部のログはセキュリティ上の理由で保護されているため、完全な管理者権限でログインしていない限り、それらのログを消去するのは必ずしも簡単ではありません。
とはいえ、イベントビューアー、コマンドライン、PowerShellのいずれかの使い方に慣れれば、ログの消去は非常に簡単です。ただし、やみくもにログを削除してはいけません。ログの中には、後々の問題解決やコンプライアンス監査で重要になるものもあります。これらの方法を賢く活用しましょう。