Подтвердить что ты не робот

Можно ли перечислить все зарегистрированные источники событий?

Моя служба Windows записывает в журнал событий, но у меня были различные проблемы, чтобы это было правильно. Поэтому в процессе я использовал несколько разных имен. Я последовал за статьей, описывающей, как настроить журналы событий в службах Windows. Поэтому, добавив компонент EventLog в конструктор, я добавил его в конструктор:

if (!System.Diagnostics.EventLog.SourceExists("AS0604"))
   System.Diagnostics.EventLog.CreateEventSource("AS0604", "SIRR");

eventLog1.Source = "AS0604";
eventLog1.Log = "SIRR";
eventLog1.WriteEntry("AS is initializing...", EventLogEntryType.Information, 16);

Я узнал, что есть проблема, если источник имеет то же имя, что и имя службы службы Windows. Но я постоянно менял имена для журнала и источника.

EventLog[] eventLogs = EventLog.GetEventLogs();

Список журналов событий, и я смог удалить те, которые я не использовал с командой EventLog.Delete.

Но как это работает? Есть ли еще зарегистрированные источники в этих удаленных журналах? Могу ли я получить список зарегистрированных источников?

4b9b3361

Ответ 1

Из-за хорошей игры с ним, похоже, ответ заключается в том, что вы не можете получить список источников из этого API. При удалении журнала удаляются источники, в которых он зарегистрирован.

На этой странице вы узнаете, как это сделать, используя прямой доступ к реестру:

http://codeidol.com/csharp/csharpckbk2/Diagnostics/Finding-All-Sources-Belonging-to-a-Specific-Event-Log/

Ответ 2

Поскольку принятый ответ потерян, вот еще один. К сожалению, я не нашел альтернативы изучению реестра Windows напрямую.

  • PowerShell (Get-ChildItem HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\<EventLogPathName>).pschildname

Например, чтобы перечислить источники журнала событий приложений Windows:

  • PowerShell (Get-ChildItem HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\Application).pschildname

Я бросил это после прочтения нескольких источников. К сожалению, никто не был очень ясным или прямым.