イベント ログをエクスポート後、作業中に作成された一時ファイルが残る

適用対象: Windows Server 2008 DatacenterWindows Server 2008 EnterpriseWindows Server 2008 R2 Datacenter

現象


イベント ログを、イベント ビューアーや、Wevtutil コマンドを利用してエクスポートすると、処理完了後に一時ファイルが残り、削除されません。

原因


イベント ビューアーや、Wevtutil コマンドを利用してイベント ログをエクスポートする際に、一時ファイルが作成されます。一時ファイルは、以下のディレクトリに作成されます。

ディレクトリ
%systemroot%\ServiceProfiles\LocalService\AppData\Local\Temp

一時ファイル名
PUB*.tmp, EVT*.tmp, MSG*.tmp

これらのエクスポート処理の際に使用される関数 EvtArchiveExportedLog には、生成処理中に作成された一時ファイルを削除する処理が含まれていないため、エクスポート処理の完了後に一時ファイルが残存します。
一度のエクスポートまたはコマンドの実行で、3 種類の一時ファイルが作成されるため、複数のイベントに対して処理を行った場合は、3 個以上の一時ファイルが残存します。

一時ファイルは自動で削除されないため、エクスポート後個別に削除する必要があります。


回避策


本事象にて作成された一時ファイルを削除するには、以下のいずれかの方法をご実施ください。
  • エクスプローラーから削除する
  • ディスク クリーンアップ ツールで削除する
重要 : このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。レジストリを誤って変更すると、深刻な問題が発生することがあります。レジストリを編集する際には十分に注意してください。万一に備えて、編集の前にレジストリをバックアップしておくと、問題が発生した場合にレジストリを復元することができます。バックアップおよび復元方法の詳細を参照するには、以下のサポート技術情報をクリックしてください。
322756 Windows でレジストリをバックアップおよび復元する方法
  • エクスプローラーから削除する
エクスプローラを使って、ファイルを手動で削除します。
  1. 管理者権限のユーザー アカウントでログオンし、[スタート] - [コンピューター] を開きます。
  2. 以下の階層まで移動します。ユーザー アカウント制御が有効になっている環境では、途中アクセス権限の昇格を求めるダイアログ メッセージが表示されますので [続行] をクリックして進めてください。

    %systemroot%\ServiceProfiles\LocalService\AppData\Local\Temp
  3. 上記フォルダーが表示されましたら、以下 3 種類のファイルを削除します (XXXXは自動的に生成された文字が入ります)

    EVTXXXX.tmp, MSGXXXX.tmp, PUBXXX.tmp

  • ディスク クリーンアップ ツールで削除する
ディスク クリーンアップ ツールに、イベント ログのエクスポートによって作成される一時ファイルを削除するエントリを作成することで、ディスク クリーンアップからファイルの削除操作を管理することができます。
  1. レジストリ エディタを管理者権限で起動します
  2. 以下のレジストリ キーに移動します

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches
  3. 一時ファイルの削除用レジストリ キーを作成します。"VolumeCaches" キーを右クリックして [新規] - [キー] をクリックし、以下のキーを新規で作成します

    Event Exporting Temporary Files
  4. 以下のレジストリ値を、上記手順で作成したキーに作成します

    値の名前 : (既定)
    値の種類 : REG_SZ
    値のデータ : {C0E13E61-0CC6-11d1-BBB6-0060978B2AE6}

    値の名前 : Description
    値の種類 : REG_SZ
    値のデータ : Files Created by exporting Event Log
    ※ ディスク クリーンアップの説明文に表示される内容のため任意で変更可能です。

    値の名前 : Display
    値の種類 : REG_SZ
    値のデータ : Event Exporting Temporary Files
    ※ ディスク クリーンアップの項目欄に表示される内容のため任意で変更可能です。

    値の名前 : FileList
    値の種類 : REG_SZ
    値のデータ : EVT*.tmp|MSG*.tmp|PUB*.tmp

    値の名前 : Flags
    値の種類 : REG_DWORD
    値のデータ : 0x00000041

    値の名前 : Folder
    値の種類 : REG_EXPAND_SZ
    値のデータ : %Systemroot%\ServiceProfiles\LocalService\AppData\Local\temp

    値の名前 : LastAccess
    値の種類 : REG_DWORD
    値のデータ : 0x0000001e
    ※ 指定された日数より前のファイルを削除するよう16 進数で指定します。例えば 0x0000001e であれば 30 日前、0x0000000e であれば 14 日より前のファイルを削除します。

    値の名前 : StateFlags
    値の種類 : REG_DWORD
    値のデータ : 0x00000001
  5. ディスク クリーンアップ ツールを起動して、作成したエントリから一時ファイルを削除します

なお、ディスク クリーンアップ ツールに関しては、コマンド cleanmgr.exe で自動化することが可能です。

[NT]Windows 2000 のディスク クリーンアップ ツールの自動化 (253597)

状況


マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

関連情報