Описание для идентификатора события "x" в источнике "y" не найдено. Чтение журналов событий «Система» из eventvwr С#

У меня есть этот небольшой фрагмент кода для чтения "системных" событий из eventvwr

        EventLog eventLog = new EventLog("System");

        foreach (EventLogEntry log in eventLog.Entries)
        {
            Console.WriteLine("{0}\n", log.Message);
        }

Это отлично работает, но для нескольких журналов событий я получаю такие сообщения, как

"The description for Event ID '109' in Source 'Microsoft-Windows-Kernel-Power' cannot be found.  The local computer may not have the necessary registry information or message DLL files to display the message, or you may not have permission to access them.  The following information is part of the event:'6', '0', '5'"

И когда я открываю eventvwr, я вижу там описание.

The kernel power manager has initiated a shutdown transition.
Shutdown Reason: Kernel API

Я запускаю этот код как администратор.

Может ли кто-нибудь помочь мне понять, почему я получаю такие сообщения для описания. заранее спасибо

Есть похожие посты, но ни один не поднимает эту проблему. например это

Описание события с идентификатором X в источнике Y не найден.


person Tarun Kumar    schedule 19.06.2018    source источник


Ответы (2)


У вас либо нет доступа к файлу сообщения, либо его местоположение не находится на вашем текущем пути, как администратор.

Расположение файлов сообщений журнала событий определяется в реестре, т. е. если вы посмотрите на

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\System\Microsoft-Windows-Kernel-Power

вы должны найти значение EventMessageFile, которое имеет данные %systemroot%\system32\microsoft-windows-kernel-power-events.dll или подобное - это с моей машины.

Проверьте, находится ли это на вашем пути и какие разрешения у вас есть, как у администратора.

person spodger    schedule 19.06.2018
comment
Да, путь есть, но как администратор у меня есть только ограниченные разрешения (SeChangeNotifyPrivilege, SeImpersonatePrivilege, SeCreateGlobalPrivilege), остальные отключены - person Tarun Kumar; 19.06.2018
comment
Не могли бы вы уточнить, каких разрешений мне может не хватать! Но снова я могу просмотреть описание журнала событий в eventvwr, хотя этот код выше - person Tarun Kumar; 19.06.2018
comment
Я имею в виду только права доступа к файлам для Dll, например «Чтение». Однако я только что попробовал ваш код, и у меня возникла та же проблема. Боюсь, я понятия не имею, почему. - person spodger; 19.06.2018
comment
Есть ли у кого-нибудь из вас, ребята, какие-либо обновления / идеи по этому поводу? Я столкнулся с той же проблемой, и я в недоумении. - person carlaharris; 20.05.2020

Это тема для C#, но если вы получите эту ошибку в PowerShell, просто переключитесь на использование Get-WinEvent вместо Get-EventLog, и все будет в порядке.


Источник: ответ Boe Prox здесь:

Вместо этого используйте Get-WinEvent [...] Get-EventLog лучше подходит для старых ОС.

person ndemou    schedule 27.11.2020
comment
Вопрос о C#, а не о PowerShell... - person Brade; 11.01.2021
comment
Спасибо, что указали на это, Брейд. Вот что бывает, когда перестаешь читать после заголовка! - person ndemou; 11.01.2021