Я пытаюсь реализовать интерфейс регистрации в моем приложении c #, который будет регистрировать события в «Журнале событий Windows» локально или удаленно.Локально проблем нет, так как System.Diagnostics - это простое в использовании пространство имен.
Однако выполнение этого на удаленном компьютере (вход в журналы Windows другого компьютера) приводит к проблемам аутентификации и авторизации, а именно «Доступ запрещен».И это вполне понятно, поскольку было бы нелогично разрешать всем добавлять журналы.
Я знаю, что создание новой папки событий и источника может быть выполнено только локально, что я уже сделал (назовем это «Мое приложение»).Я также запустил службу «Удаленный реестр».
Для удобства я тестировал функцию ведения журнала с помощью инструмента «eventcreate», чтобы определить, что разрешено, а что нет. В «Запуск от имени администратора»cmd.
eventcreate /s myLogServer /id 999 /T Error /L "My Application" /so "My Application" /d "Log Test"
Естественно, с ошибкой «Ошибка: доступ запрещен». Когда я добавляю
/u mydomain\myLogServer /p myPassword
, то все работает нормально. Однако, естественно, я не хочупредоставьте учетные данные администратора myLogServer. Я бы предпочел создать пользователя с ограниченными правами или, что еще лучше, использовать проверку подлинности Windows через клиентский компьютер (что, надеюсь, произойдет, если я не введу / u /p).
Вопрос: Как настроить его так, чтобы только указанные пользователи могли записывать журналы в указанную папку журналов? Пробовал устанавливать разрешения для разделов реестра (HKEY_LOCAL_MACHINE \ SYSTEM \CurrentControlSet \ Services \ EventLog ..).Пробная установка разрешений для файлов журнала событий (*. Evtx).
Подвопрос: Нужно ли выдавать себя за указанного пользователя в коде c #, чтобы получить авторизацию, или есть способ добавить детали аутентификации вобъект EventLog?