Расширенная политика аудита — не меняются значения

Как говорится, любая ошибка — это ошибка в ДНК, вопрос только в чьей 😉

В данном случае, авторы этого расширения (да и всей этой группы функциональности) сделали некоторый черный ящик, который сбивается, как минимум:

1) Если отсутствует файл, который, как оно считает, должен существовать. Варианты — стереть audit.csv из папки C:\Windows\System32\GroupPolicy или из папки SYSVOL\domain\Policies\{GUID}\Machine\Microsoft\Windows NT\Audit.

2) Если файл имеет неправильную структуру по его представлением. Наблюдал такое при миксе английской GPO и русской локальной политики (когда каким-то образом в audit.csv попало 4 английских строчки и 1 русская).

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

И, в довершение, расширенный аудит в реестре хранится в виде байтового массива, который умеет читать только auditpol, поэтому если есть сложности с применением политики, их выявление затруднено. Причем, если я не ошибаюсь, проверка действующей политики идет по C:\Windows\Security\audit\audit.csv, а не по фактической политике.

Каждый объект групповой политики имеет перечень расширений, которые записаны в gPCMachineExtensionNames. Соответственно, при обработке объекта расширения вызываются локально, причем оптом для всех объектов (как минимум, данное). В этом случае, то расширение, которое обрабатывает расширенную политику аудита, не находило audit.csv для доменной дефолтной политики и молча отрубалось.

Поэтому вот финальный чеклист для тех, у кого наблюдаются проблемы с применением расширенной политики аудита:

1. Включить логирование GPO, как описано в https://adminotes.ru/otladochnyj-zhurnal-obrabotki-gpo-na-klientah-gpsvc-log/

2. Запустить gpupdate /force, посмотреть лог после выполнения.

3. В начале идет список объектов GPO — смотреть строки Found extensions: на предмет подстроки [{F3CCC681-B74C-4060-9F26-CD84525DCA2A}{0F3F3735-573D-9804-99E4-AB2A69BA5FD4}]

4. Если у объекта GPO расширение есть — он задает расширенный аудит и должен существовать файл \\домен\SYSVOL\домен\Policies\{гуид объекта GPO}\Machine\Microsoft\Windows NT\Audit\audit.csv. Если не нужно, чтобы данный объект задавал расширенный аудит — стираем файл (если есть) и с помощью ADSI Edit удаляем у объекта GPO, лежащего в контейнере CN=Policies,CN=System,DC=домен подстроку из п.3.

5. Проверяем существование файла C:\Windows\System32\GroupPolicy\Machine\Microsoft\Windows NT\Audit\audit.csv. Если нет — войти в редактор локальной политики и поменять на установлено/обратно любое из свойств политики расширенного аудита.

6. Не забываем не мешать базовый аудит с расширенным и использовать свойство «Аудит: принудительно переопределяет параметры категории политики аудита параметрами подкатегории политики аудита (Windows Vista или следующие версии)»

7. Применяем gpupdate /force. В идеале заработает сразу. Если нет — смотрим файл C:\Windows\Security\audit\audit.csv на предмет ошибок (например, смесь русского и английского) и правим исходные объекты GPO и Local Security Policy, которые привели к такому результату.

8. Если и это не помогает — смотрим лог gpupdate на предмет строки ProcessGroupPolicyCompletedExInternal: Entering. Extension = {F3CCC681-B74C-4060-9F26-CD84525DCA2A}. Смотрим статусы dwStatus, dwRet, если все без ошибок — 0, иначе — код ошибки. Пробуем починить.

Уф…всё! Считаю проблему решенной и закрытой. ©pavel kingsep on social.technet.microsoft.com