Итак... Имеем небольшой доменчик тысяч на 30 пользователей образованный миграцией в него разных других доменчиков. в домене конечно попытались во время миграции соблюдать порядок, но доменные политики остались вне поля зрения. Ну так уж случилось) Теперь этот доменчик мигрирует в новую среду, ессно что хочется навести порядок. Лезем в GPMC и видим что-то около 350 объектов групповых политик, многие прилинкованы совсем не к одному контейнеру, многие, как видно из их названия разрабытывались на основе какой то одной типовой и вроде бы как похожи.
Задача - сделать реестр GPO, понять что лишнее, что можно скрестить друг с другом и и вообще - причесать весь этот взрыв на макаронной фабрике.
Ну для начала получаем репорты всех политики простым дедовским способом - на каждой из политик кликаем "правым глазом" и просим сохранить как html а потом и как xml. или пользуемся технетом, находим в нем раздел Group Policy Cmdlets in Windows PowerShell и получаем тоже что и в первом случае но гораздо быстрее)
А! совсем забыл! политики любят вызывать скрипты - выгружаем скрипты - в эксплорере, в адресной строке пишем \\имя_домена попадаем в корень и таи простым поиском ищем файлики со всевозможными исполняемыми расширениями вида *.bat, *.vbs, *.cmd и тому подобное.
ну и получаем кучу мусора в количестве около 600 файликов.
что ж теперь с этим барахлом делать?
ну... берем старый добрый Excel (спасибо товарищу Гейтсу!!!) и по первоначальной дурости пытаемся запихать в него данные XML.
Как ни странно Excel хоть и умеет это делать, но делает с косяками - причина кроется в самом формате XML - заголовки данных для каждого файлика будут разными - ибо в какой-то политике есть параметр, например logon script, а в другой - он просто не определен. От такого количества заголовков Excel-ю слегка сносит кукушечку и по началу он доооолго импортит данные (порядка 4-х часов). каждый раз пытаясь хоть как понять а какой заголовок чему соответвует, а потом мы получаем структурированную кашу работать с которой просто невозможно.
Берем свою вторую дурость и запихиваем данные в эксель путем копипасты из открытого в броузере репорта политики. получается все довольно не плохо, но это не таблица а так - какое то подобие. потом плюем и на форматирование пишем макрос копипасты из открытого excel-ем HTML с закрытием листа и копированием его в новую книгу. получаем 351 лист в новой книге. листать - невозможно. Вспоминаем про гиперссылки внутри книги. злобно сдираем в интернете макрос позволяющий сделать оглавление: http://www.planetaexcel.ru/techniques/3/60/
коротенько это вот так -
Откройте Диспетчер Имен на вкладке Формулы (Formulas – Name Manager) и создайте новый именованный диапазон с именем, допустим, Оглавление. В поле Диапазон (Reference) введите вот такую формулу:
=ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)
=GET.WORKBOOK(1)
Теперь в переменной Оглавление содержатся наши искомые имена. Чтобы извлечь их оттуда на лист, можно воспользоваться функцией ИНДЕКС (INDEX), которая «выдергивает» элементы из массива по их номеру:
=ИНДЕКС(Оглавление; СТРОКА())
=INDEX(Оглавление; ROW())
Функция СТРОКА (ROW) выдает номер текущей строки и, в данном случае, нужна только для того, чтобы вручную не создавать отдельный столбец с порядковыми номерами извлекаемых элементов (1,2,3…). Таким образом, в ячейке А1 у нас получится имя первого листа, в А2 – имя второго и т.д.
И, наконец, для добавления к именам листов "живых" гиперссылок для быстрой навигации, можно использовать все ту же функцию ГИПЕРССЫЛКА (HYPERLINK), которая будет формировать адрес для перехода из имени листа
потом автоматизируем переход с каждого листа на лист с оглавлением - точно! именно созданием гиперссылки из первой ячейки листа!
ну, можно как то уже что то делать)))
смотрим на что получилось и понимаем что надо все это парсить - ну не совпадают номера ячеек на разных листах - так уж устроен вывод GPO в HTML - это даже не таблица, а просто хитро сверстанная простыня с набором данных.
пытаемся понять к каким контейнерам привязаны политики - опять таки макросом:
Sub параметры_безопасности()
'
' Макрос11 Макрос
'
'
Line0:
C1 =
Читать далее...