Удаление источника журнала событий без использования кода
У меня есть приложение, которое создало несколько настраиваемых источников журнала событий, чтобы помочь отфильтровать его вывод. Как я могу удалить пользовательские источники с компьютера БЕЗ написания какого-либо кода в качестве запуска быстрой программы с использованием System.Diagnostics.EventLog.Delete не представляется возможным.
Я попытался использовать RegEdit для удаления настраиваемых источников из [HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX\Services\Eventlog], однако приложение действует так, как будто журналы все еще существуют за кулисами.
Что еще мне не хватает?
Ответы
Ответ 1
Я также думаю, что вы в нужном месте... он хранится в реестре под именем журнала событий. У меня есть собственный журнал событий, в котором есть несколько источников событий.
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 и что он сделал. Тем не менее, похоже, что каждый пользовательский журнал событий также имеет источник с тем же именем. Если у вас есть собственный журнал, это может повлиять на вашу способность его очищать. Возможно, вам придется удалить журнал. Кроме того, если ваше приложение имеет установщик, я вижу, что имя приложения также может быть зарегистрировано в качестве источника в журнале событий приложения. Еще одно место для очистки.
Ответ 2
Как насчет использования Powershell?
Remove-EventLog -LogName "Custom log name"
Remove-EventLog -Source "Custom source name"
Ответ 3
Мне удалось удалить его, используя:
[System.Diagnostics.EventLog]::Delete("WrongNamedEventLog");
в powershell
Ответ 4
Возможно, ваше приложение отказоустойчиво, что означает, что он проверяет, зарегистрирован ли источник журнала событий и регистрирует источник, если это не так?
Если бы это было так, ваше приложение каждый раз заново создавало источник (ы), независимо от того, что вы делали.