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

У меня есть этот небольшой кусок кода для чтения "системных" событий из 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".

1 ответ

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

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

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

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

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

Переключитесь на использование Get-WinEvent вместо Get-EventLog, и все будет в порядке.


Источник: Ответ Бо Прокса здесь:

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

Другие вопросы по тегам