Назад | Перейти на главную страницу

Почему для большинства записей в журнале событий используется имя пользователя «N / A»? Как его заполнить?

В моем коде, если что-то ужасно пойдет не так, я что-то записываю в журнал событий (с помощью функции ReportEvent). Для этих записей я получаю идентификатор пользователя в записи журнала событий (5-й аргумент функций ReportEvent).

Для множества других записей (из других приложений или из самой Windows) пользовательское поле отображается как «N / A».

Проблема в том, что Windows сама добавляет записи для моего приложения, особенно:

Почему Windows не показывает имя пользователя или идентификатор безопасности пользователя в записях журнала событий? Почему в большинстве случаев это "Н / Д"? Есть ли способ заставить Windows использовать имя пользователя или SID в записях журнала событий, созданных Windows?

Спасибо, Патрик

Насколько мне известно, нет способа указать окнам регистрировать события с именем пользователя. Похоже, что Microsoft отказывается от регистрации имени пользователя для большинства событий.

До Windows 2003 с событиями в журнале событий безопасности обычно ассоциировалось имя пользователя, но, похоже, это не относится к Windows 2008.

Я не могу сказать, почему это так. Записи журнала событий обычно идентифицируются по источнику, идентификатору и категории, а имя пользователя обычно не имеет большого значения для целей устранения неполадок. Для большинства событий имя пользователя будет просто чем-то LocalSystem в любом случае.

Windows по-прежнему регистрирует имя пользователя для некоторых событий, особенно событий из Планировщика заданий. Если вы посмотрите журнал событий Microsoft-Windows-TaskScheduler / Operational, вы увидите, что все события регистрируются под именем пользователя, под которым выполнялись задачи.

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