Доступ к журналу событий Windows
Бывают случаи, когда необходимо предоставить кому-либо права на чтение (или даже на модификацию) журнала событий Windows. Причем сделать это надо так, чтобы пользователь имел доступ только к конкретному журналу и не мог видеть содержимое других. То есть включить данного пользователя в локальную группу Event Log Readers на сервере не представляется возможным.
Начиная с Windows 2008 мы можем воспользоваться утилитой командной строки Wevtutil, которая поможет нам предоставить нужный уровень доступа к требуемым журналам Windows.
В моем примере я буду рассматривать предоставление доменной группе "Developers" прав чтения к кастомизированному журналу "CustomersApp", который находится в разделе Applications and Services Logs. Все команды будем запускать непосредственно на сервере, где находится наш журнал.
1) Запускаем команду wevtutil gl CustomersApp > C:\temp\out.txt
2) Открываем файл c:\temp\out.txt и сохраняем где-нибудь значение параметра channelAccess. В моем случае это
O:BAG:SYD:(A;;0x2;;;S-1-15-2-1)(A;;0xf0007;;;SY)(A;;0x7;;;BA)(A;;0x7;;;SO)(A;;0x3;;;IU)(A;;0x3;;;SU)(A;;0x3;;;S-1-5-3)(A;;0x3;;;S-1-5-33)(A;;0x1;;;S-1-5-32-573)
3) Через оснастку Active Directory Users and Computers узнаем SID группы "Developers" - он понадобится нам в следующем шаге.
4) Перезадаем права доступа к журналу "CustomersApp", запустив команду
wevtutil sl CustomersApp /ca:[значение, которое мы получили на 2 шаге](A;;0x1;;; [SID группы])
В моем случае, полностью команда будет выглядеть так:
wevtutil sl CustomersApp /ca:O:BAG:SYD:(A;;0x2;;;S-1-15-2-1)(A;;0xf0007;;;SY)(A;;0x7;;;BA)(A;;0x7;;;SO)(A;;0x3;;;IU)(A;;0x3;;;SU)(A;;0x3;;;S-1-5-3)(A;;0x3;;;S-1-5-33)(A;;0x1;;;S-1-5-32-573)(A;;0x1;;;S-1-5-21-3617712198-1232425490-2543886632-7052)
То есть, к уже существующему значению channelAccess мы добавляем еще одну секцию прав для группы или пользователя, где задаем уровень предоставляемого доступа (0x1 - чтение журнала, 0x3 - его модификация).