Парсинг GPO из HTML в БД
Всем привет!
Есть такая задача - автоматизировать поиск измений в групповых политиках GPO. Т.к. стандарнтные средства Active Directory не показывают, что именно изменилось в GPO, а только сам факт изменения можно увидеть в логе, я решил написать что-то свое. И так, у меня есть такая идея:
Вот я сейчас застрял на втором пункте и не понимаю, как это лучше сделать? Есть небольшой опыт в BASH и Powershell. Как написать такую регулярку, чтобы все разложила пополочкам, не понимаю. С моими навыками в BASH смогу точно выдернуть информацию из разделов GPO "Подробности", "Ссылки". Но разделы "Конфигурция конмпьюрета" и "Конфигурация пользователя" не смогу. Все усложняется тем, что в этих разделах внутри GPO может быть много политик - более тысячи запросто. А у каждой политики несколько значений параметра и вложенные в них подпараметры. Пример 1. В политике «Конфигурация компьютера\Политики\Конфигурация Windows\Параметры безопасности\Локальные политики/Параметры безопасности\Аудит\Аудит: аудит доступа глобальных системных объектов» может несколько значений Параметра: «Включено», «Отключено» или «Не определено». Пример2. В политике «Конфигурация компьютера\Политики\Административные шаблоны\Компоненты Windows/Политики автозапуска\Выключение автозапуска» может несколько значений Параметра: «Включено», «Выключено» или «Не определено». А так же у параметра может быть еще и вложенный параметр. В данном случае он называется «Отключить автозапуск:» и он тоже имеет несколько значений. Например "Все устройства". И таких нюансов много, и не могу найти закономерность. Примечания:
Если кто-то сталкивался с такой задачей, просьба подсказать. Если получиться правильно все распарсить, то смогу далее прикрутить к этому некий веб-интерфейс и вообще получится "конфетка". Пример HTML файла можно взять тут Заранее спасибо! P.S. Не предлагайте Policy Analyzer - не подходит. |
Цитата:
Код:
gc 'D:\Downloads\Default Security for Domain Vasya.html' -Encoding utf8 | |
Цитата:
Прикольная штука. Попробовал, т.к. делал на Винде, то у меня было так: Код:
C:\Users\vasya\Desktop\pandoc.exe C:\Users\vasya\Desktop\123.html -f html -t json -o C:\Users\vasya\Desktop\123.json И вот, что получилоь: 1. Pandoc перевел все в одну строку и там куча массивов внутри массива. Это усложняет дальше обрабатывать этот файл. По крайней мере для меня. В принципе я делал тоже самое на сайте https://alldocs.app/convert-html-to-pandoc-json когда искал решение. 2. Pandoc добавляет лишнее. Например, из этого "Время ожидания в секундах перед включением заставки" получилось это Код:
[{"t":"Str","c":"Время"},{"t":"Space"},{"t":"Str","c":"ожидания"},{"t":"Space"},{"t":"Str","c":"в"},{"t":"Space"},{"t":"Str","c":"секундах"},{"t":"Space"},{"t":"Str","c":"перед"},{"t":"Space"},{"t":"Str","c":"включением"},{"t":"Space"},{"t":"Str","c":"заставки"}]}]]]] Вобщем, не совсем то, что хочется, но буду попробовать дальше раскручивать Pandoc и искать другие решения. Спасибо. |
Переводите не в json, a в plain text, там результат получается лучше:
Код:
gc 'D:\Downloads\Default Security for Domain Vasya.html' | |
Цитата:
1. Например, эту же строку "Время ожидания в секундах перед включением заставки" вернул вот так: Код:
+-----------------------+-----------------------+-----------------------+ Код:
Системные объекты Кажется с этим лучше работать, чем с тем JSON. Спасибо. Тему пока не буду отмечать решенной. Вдруг еще кто-то напишет что-то полезного. |
Время: 16:25. |
Время: 16:25.
© OSzone.net 2001-