Можно ли перечислить все зарегистрированные источники событий?
Моя служба 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.
Но как это работает? Есть ли еще зарегистрированные источники в этих удаленных журналах? Могу ли я получить список зарегистрированных источников?
Ответы
Ответ 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
Я бросил это после прочтения нескольких источников. К сожалению, никто не был очень ясным или прямым.
Ответ 3
через powershell:
Get-EventLog -LogName Application |Select-Object Source -Unique
см.: https://social.technet.microsoft.com/Forums/windowsserver/en-US/48d1e34d-6ded-4039-a8a4-3b17d9c69488/list-eventlog-sources?forum=winserverpowershell