出力のフィルター処理を支援するために、いくつかのカスタムイベントログソースを作成したアプリケーションがあります。 System.Diagnostics.EventLog.Deleteを使用してクイックプログラムを実行しているため、コードを記述せずにカスタムソースをマシンから削除するにはどうすればよいですか。
RegEditを使用して[HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX\Services\Eventlog]からカスタムソースを削除しようとしましたが、アプリケーションはログがまだ背後に存在するかのように動作します。
他に何が欠けていますか?
また、あなたは正しい場所にいると思います...レジストリに、イベントログの名前で保存されます。カスタムイベントログがあり、その下に複数のイベントソースがあります。
HKLM\System\CurrentControlSet\Services\Eventlog\LOGNAME\LOGSOURCE1 HKLM\System\CurrentControlSet\Services\Eventlog\LOGNAME\LOGSOURCE2
これらのソースにはEventMessageFileキーがあり、これはREG_EXPAND_SZであり、以下を指します。
C:\ Windows\Microsoft.NET\Framework\v2.0.50727\EventLogMessages.dll
ログソースであるキー(この例ではLOGSOURCE1)を削除すると、それで十分です。
それが価値があるもののために、私は.NETを通してそれを試しました、そしてそれはそれがしたことです。ただし、各カスタムイベントログにも同じ名前のソースがあるように見えます。カスタムログがある場合、それをクリアする機能に影響を与える可能性があります。おそらく、ログを完全に削除する必要があります。さらに、アプリにインストーラーがある場合、アプリケーション名もソースとしてアプリケーションイベントログに登録されている可能性があります。クリアするもう1つの場所。
Powershell の使用についてはどうですか?
Remove-EventLog -LogName "Custom log name"
Remove-EventLog -Source "Custom source name"
私はそれを使用してそれを削除することしかできませんでした:
[System.Diagnostics.EventLog]::Delete("WrongNamedEventLog");
powerShellで
おそらく、アプリケーションはフォールトトレラントです。つまり、イベントログソースが既に登録されているかどうかを確認し、登録されていない場合は登録します。
この場合、アプリケーションは、実行するたびに、実行したソースを再作成します。