Как создать источник событий без повышения привилегий?

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

Есть ли способ создать источник событий без этого запроса на повышение прав? В качестве альтернативы, есть ли другое место или ранее существовавший источник событий, который мне может иметь больше смысла использовать для целей ведения журнала?


person bshacklett    schedule 14.12.2012    source источник


Ответы (2)


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

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

person Bali C    schedule 14.12.2012
comment
Да, я надеялся, что смогу хранить все журналы в одном месте, но я думаю, что ваше предложение о файле журнала - действительно лучший способ сделать это. Я смотрю на Apache log4net прямо сейчас. Я полагаю, что если я не могу стандартизировать запись в журнал событий, по крайней мере, я буду использовать какой-то стандартный API ведения журнала для создания текстового файла. - person bshacklett; 14.12.2012
comment
+1 - это скорее связано с тем, что вы находитесь по другую сторону этого герметичного люка. - person Billy ONeal; 16.12.2012

Под прикрытием создание источника событий требует записи в раздел реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog, который доступен для записи только пользователям с правами администратора. Таким образом, любой API, созданный поверх этого, потребует повышенных разрешений. Создание источника событий будет чем-то, что вам нужно будет сделать после повышения.

Но после того как вы создали источник события, фактически отчетность о событии не требует повышенных разрешений. Если бы вы могли запустить установщик, он мог бы запросить повышение прав и создать источник событий; а затем ваше приложение просто сообщает о событиях, как и любое другое приложение. Но я думаю, что это своего рода недопустимая ситуация в сценарии входа в систему.

person Billy ONeal    schedule 15.12.2012