Вопрос или проблема
Из различной документации видно, что для изменения доступа к WMI необходимо использовать WMI для доступа к работающей службе и изменения определенных частей дерева.
Достаточно утомительно менять 150,000 хостов с помощью UI.
А потом приходится включать такие изменения в процесс добавления новых хостов.
Могу написать скрипт для этих же целей, но он должен либо подключаться ко всем этим машинам в реальном времени, либо быть распространен для последующего обновления, скажем, в скрипте запуска/установки. И тогда нужно возиться с копированием бинарных данных SD из примера управления доступом.
Я также обнаружил, что можно изменить файл wbem/*.mof, чтобы включить SDDL, но я пока слабо представляю, как это работает.
Я просто не упускаю какой-то момент простой администрации?
Провел некоторые исследования на эту тему и, похоже, что следующий метод должен сработать:
Для Windows 2003 с Group Policy Management Console (GPMC), выполните следующие шаги:
- Перейдите в
Пуск
>Административные инструменты
>Управление групповой политикой
. - В левой панели перейдите к Forest:
Имя домена
->Домены
->Имя домена
, где Имя домена – это имя домена, который вы хотите изменить. - Щелкните правой кнопкой мыши по
Имя домена
в левой панели и выберитеСоздать и связать объект групповой политики здесь
. - Назовите новую политику
Разрешения WMI
.
ПРИМЕЧАНИЕ: Поскольку WMI должен устанавливать DCOM-соединение с удаленным хостом, этого достаточно для настройки разрешений доступа для DCOM.
Настройка разрешений Distributed Component Object Model (DCOM):
- Перейдите в политику
Разрешения WMI
или черезУправление групповой политикой
, или через плагинADUC
. - Убедитесь, что политика
Разрешения WMI
выделена, и нажмите кнопкуИзменить
. - Перейдите в
Конфигурация компьютера
->Политики
->Настройки Windows
->Настройки безопасности
->Локальные политики
->Параметры безопасности
. - В правой панели пользовательского интерфейса дважды щелкните
DCOM: Ограничения доступа к машине в синтаксисе Security Descriptor Definition Language (SDDL)
. - Поставьте галочку в поле рядом с
Определить этот параметр политики
. - Нажмите кнопку
Изменить безопасность
. - Нажмите кнопку
Добавить
; в появившемся окне укажите используемую учетную запись администратора домена. - Нажмите ОК.
- В поле
Группы или имена пользователей
выберите администратора домена, указанного в шаге №7. - В поле
Разрешения для администраторов
убедитесь, что в колонкеРазрешить
стоит галочка рядом с вариантомУдаленный доступ
. - Нажмите ОК.
- Нажмите ОК.
- В правой панели пользовательского интерфейса дважды щелкните
DCOM: Ограничения запуска машины в синтаксисе Security Descriptor Definition Language (SDDL)
. - Поставьте галочку в поле рядом с
Определить этот параметр политики
. - Нажмите кнопку
Изменить безопасность
. - Нажмите кнопку
Добавить
; в появившемся окне укажите используемую учетную запись администратора домена. - Нажмите ОК.
- В поле Группы или имена пользователей выберите администратора домена, указанного в шаге №16.
- В поле
Разрешения для администраторов
убедитесь, что в колонкеРазрешить
стоит галочка как дляУдаленный запуск
, так и дляУдаленная активация
. - Нажмите ОК.
- Нажмите ОК.
- Закройте окно
Редактор объекта групповой политики
. - Нажмите ОК и закройте окно
Active Directory Пользователи и компьютеры
.
Ссылки на https://answers.splunk.com/answers/2703/how-to-enable-wmi-data-collection-on-a-domain-server.html
В настоящее время нет не эзотерического способа глобальной настройки WMI
настроек безопасности в масштабе домена. У каждой машины есть свои настройки.
Однако, есть блог MSDN, который перечисляет шаги, которые вы можете выполнить для создания
скрипта, содержащего соответствующие дескрипторы безопасности, которые вы
можете затем подключить в GPO как сценарий запуска и вашии
компьютеры получат обновленные настройки безопасности при загрузке.
Вот ссылка на пост в блоге с методами создания скрипта: https://blogs.msdn.microsoft.com/spatdsg/2007/11/21/set-wmi-namespace-security-via-gpo-script/
Этот подход дал мне пригодный метод для включения доступа WMI для учетной записи службы, не являющейся администратором домена, с использованием GPO.
У Microsoft есть другая, более новая статья, демонстрирующая, как это сделать через Group Policy с использованием скрипта PowerShell:
Не уверен, почему они делают это с помощью запланированной задачи. Считаю, что скрипты запуска Group Policy теперь поддерживают PowerShell нативно.
Оригинальный скрипт все еще доступен, но я предлагаю использовать эту копию, которая исправляет ошибку.
.
Ответ или решение
Изменение доступа к WMI (Windows Management Instrumentation) для большого количества хостов, особенно в масштабах, как в вашем случае, с 150,000 устройствах, может быть достаточно сложной задачей. Идейное решение здесь — автоматизация процесса с использованием Group Policy (групповых политик), что позволяет централизованно управлять настройками на уровне домена.
Теория
Cначала давайте рассмотрим, почему контроль доступа к WMI важен. WMI предоставляет унифицированный интерфейс для управления и мониторинга инфраструктуры Windows. Он позволяет выполнять операции, такие как сбор информации о системе и конфигурации, управление сервисами и многого другого. Однако, учитывая его возможности и силу, крайне важно обеспечить, чтобы доступ к WMI был строго контролируем, чтобы обеспечить безопасность.
Групповые политики (Group Policy) в Windows позволяют администраторам доменов централизованно управлять компьютерами и учетными записями пользователей в пределах Active Directory. Используя групповые политики, можно настроить множество параметров, включая аудит, обновления безопасности и сетевые конфигурации, оставаясь при этом на подсети или даже в глобальных масштабах предприятия.
Пример
Настройка доступа к WMI через Group Policy включает несколько этапов, начиная с конфигурации политик DCOM (Distributed Component Object Model), поскольку WMI использует DCOM для удаленного подключения. Пример ниже демонстрирует основные шаги настройки:
-
Создание новой группы политик:
- Откройте ‘Управление групповыми политиками’ (Group Policy Management) через ‘Панель управления’ -> ‘Административные инструменты’.
- Перейдите в раздел вашего домена и создайте новую политику, назовите ее, например, ‘WMI Permissions’.
-
Настройка DCOM:
- В созданной политике перейдите в ‘Конфигурация компьютера’ -> ‘Политики’ -> ‘Параметры Windows’ -> ‘Параметры безопасности’ -> ‘Локальные политики’ -> ‘Параметры безопасности’.
- Найдите и настройте политики ‘DCOM: Machine Access Restrictions in Security Descriptor Definition Language (SDDL) syntax’ и ‘DCOM: Machine Launch Restrictions in Security Descriptor Definition Language (SDDL) syntax’, указав нужные разрешения для учетных записей.
Применение (Application)
Для пошаговой автоматизации этого процесса через PowerShell скрипты, можно использовать встроенные инструменты GPO для сценариев при запуске. Это значительно упрощает массовое внедрение настроек на всех ваших хостах.
Microsoft и сообщество экспертов предоставляют различные ресурсы, например:
- Скрипты, которые добавляют учетные записи в WMI-секьюрити с нужными правами.
- Настройка WMI через PowerShell в консоле GPO, что автоматизирует модификации в конфигурациях.
Для более сложных сценариев, например, когда скрипты PowerShell помогут изменять namespace WMI, можно применять такие скрипты через групповую политику или создавать задачи планировщика Windows, которые будут исполняться при старте системы. Обратите внимание на PowerShell-скрипт Set-WMINameSpaceSecurity, который вы можете найти на GitHub и в подобных ресурсах.
Вывод: настройка доступа к WMI через GPO может казаться довольно сложной, но с правильным подходом, автоматизацией процесса и использованием ресурсов PowerShell и GPO, эту задачу можно сделать менее трудоемкой. Важно следовать документированным шагам и использовать проверенные скрипты, чтобы обеспечить наилучшие результаты.