Как нацелить политику на виртуальные машины?


Удобнее всего политики назначать на пользователя. Большая часть политик так и назначается. Но не все политики можно назначить на пользователя. Например, управление сервисами или политики безопасности назначаются только на компьютеры. С другой стороны виртуальные машины требуют особых настроек.

Обычно учётные записи виртуальных машин размещают от отдельной ветке OU и назначают им специальные политики. Но это не всегда удобно, т.к. может привести к дублированию политик, усложнению структуры AD, усложнению делегирования прав. Возникает ситуация аналогичная дуальности архитектуры: вы же не разделяете скорее всего 32-х и 64-х битные компьютеры по разным веткам AD, почему это надо делать для виртуальных и физических машин?

Собственно задача в том, чтобы выполнить групповую политику исключительно на виртуальных машинах в случае, когда их учётные записи лежат в тех же контейнерах AD, что и учётные записи физических машин.

С теоретической точки зрения невозможно определить из программы, что она выполняется в виртуальной среде. На практике не всё так плохо, т.к. производители систем виртуализации (гипервизоров) эмулируют вполне определенные аппаратные устройства и присваивают им «хорошо известные» значения некоторых свойств, которые доступны виртуальной машине.

Проверить эти значения можно с помощью WMI запросов:

Get-WmiObject -Query «select * from Win32_BIOS» -ComputerName testcomp

Например для Microsoft Virtual Server 2005:

SMBIOSBIOSVersion : 080002

Manufacturer : American Megatrends Inc.

Name : BIOS Date: 02/22/06 20:54:49 Ver: 08.00.02

SerialNumber : 0197-5009-1700-0693-8099-8415-07

Version : A M I — 2000622

Ключевое значение тут «A M I».

Для VMware ESX:

SMBIOSBIOSVersion : 6.00

Manufacturer : Phoenix Technologies LTD

Name : PhoenixBIOS 4.0 Release 6.0

SerialNumber : VMware-42 32 41 66 15 d5 15 20-92 ea b4 7a 95 7e f2 17

Version : INTEL — 6040000

Ключевое значение тут «VMware».

Более полный список условий можно найти в опубликованном скрипте http://gallery.technet.microsoft.com/scriptcenter/Determine-if-a-computer-is-cdd20473

Любое условие из скрипта можно преобразовать в фильтр WMI.

Пример фильтра для VMware:

Get-WmiObject -Query «select * from Win32_BIOS where SerialNumber like ‘%VMware%'» -ComputerName testcomp

Условие может быть сложным (с использованием «or» и «and»). Но на практике вам вряд ли нужны все условия сразу. Более подробно о построении запросов можно почитать в документации WQL Operators в библиотеке MSDN.

Теперь остаётся только прописать фильтр для целой политики (Create WMI Filters for the GPO) или включить его в Group Policy Preferences (WMI Query Targeting).

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: