Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Мы уже обсуждали общие вопросы модели делегирования Authorization Management Framework и Authorization Manager, используемый в Hyper-V. Сейчас пришло время более детально рассмотреть некоторые наиболее насущные вопросы. Большинство заказчиков, которым я рассказываю про модель делегирования в Hyper-V первым делом спрашивают меня, возможно ли делегировать пользователю или группе некоторые права на конкретную виртуальную машину. В Virtual Server 2005 единственным способом предоставления доступа к ограниченному набору ВМ являлось использование NTFS ограничений на конфигурационные файлы, так чтобы пользователи могли работать лишь с теми виртуальными машинами, на которые у них достаточно NTFS прав. Модель, используемая в Hyper-V позволяет настраивать это более гибко.
Одним из фундаментальных терминов Authorization Management Framework является Область (Scope). Что это такое я уже рассказывал, - очевидно, что для задачи делегирования прав на конкретные виртуальные машины следует создать область, содержащую данные машины. Создается область в консоли Authorization Manager.
Далее вам нужно поместить в данную область необходимые виртуальные машины. В некоторых случаях удобно для каждой ВМ создавать отдельную область, - когда вы хотите разным группам пользователей дать доступ к разным пересекающимся наборам ВМ. Иногда удобно виртуальные машины группировать в области по ролям - контроллеры, Exchange серверы, тестовые серверы отделов.
Следующим шагом станет помещение самих виртуальных машин в созданную область. Увы, этот шаг совсем не тривиален, по крайней мере пока у вас не установлен и настроен System Center Virtual Machine Manager 2008. Средств помещения виртуальной машины в заданную область в MMC консоли AzMan нет (в ней вообще не фигурируют сами ВМ), возможностей сделать это из командной строки в версии Hyper-V RC1 я не знаю. Однако, я знаю как это можно сделать через WMI запросы, а значит, это можно сделать и средствами PowerShell. Во вложении к статье вы найдете два скрипта, которые автоматизируют эту задачу. Первый скрипт - Getscope.vbs в качестве параметра требует имя виртуальной машины, а возвращает название области, которой она принадлежит. Если возвращенное значение пустое, значит виртуальная машина принадлежит к области по умолчанию (default scope). Второй скрипт Setscope.vbs в качестве параметров требует имя виртуальной машины и название созданной области, в которую вы хотите поместить виртуальную машину. В результате работы скрипта виртуальная машина переместится в указанную область.
Наиболее сложная часть на этом закончена. Далее потребуется лишь описать Задачи (Tasks) и Роли (Roles) в данной области, и связать роли с доменными пользователями или группами. Об этом я расскажу в следующий раз. Если знатоки PowerShell помогут переписать мои скрипты в виде cmdlet'ов, буду очень признателен.
Comments
Anonymous
January 01, 2003
Чтобы GetScope не давал ошибки, область должна быть вручную создана (на картинках в статье видно как) И SetScope может помещать машины только в существующую областьAnonymous
January 01, 2003
В рамках подготовки к Virtualization Launch пришлось таки придумывать примеры. Радуйтесь :) Пример помещения ВМ в Область. Исхожу из того, что на сервере:
- Есть несколько ВМ, название части из которых начинается на "01_"
- Существует отдельная область с именем "01_Scope"
Пример ниже перенесет все ВМ с именем, начинающимся с "01_" в область "01_Scope"
$VM_Service = get-wmiobject -namespace rootvirtualization Msvm_VirtualSystemManagementService
$ListofVMs =get-wmiobject -namespace rootvirtualization Msvm_ComputerSystem -filter "ElementName <> Name " |
where { $_.ElementName -like "01_*"} foreach ($VM in $ListofVMs) { if ( $VM -ne $Null) { $VMGlobalSetting = get-wmiobject -namespace rootvirtualization Msvm_VirtualSystemGlobalSettingData | where
{ $_.ElementName -like "$($VM.ElementName)" } $VMGlobalSetting.ScopeOfResidence = “01_Scope” $VM_Service.ModifyVirtualSystem($VM.__PATH, $VMGlobalSetting.psbase.Gettext(1)) } }
Anonymous
July 25, 2008
Alex, пример выполнения команд добавьте плиз!! для таких как я в статью =) Для получения принадлежности к области: C:HVTools>Getscope.vbs "Project Server 2007" где - "Project Server 2007" название виртуально машины. Для установки принадлежности к области: C:HVTools>Setscope.vbs "Project Server 2007" "SharePoint Servers" где - "Project Server 2007" название виртуально машины. где - "SharePoint Servers" название области в которую помещается VM.Anonymous
September 22, 2010
воспользовался скриптами но оба выдают ошибку C:Getscope.vbs "service.contoso.com" -Line: 15 Chart:1 Error: Invalid parameter Code:80041008 Source:SWbemObjectSet что не так?Anonymous
May 30, 2012
Очень познавательно. А где можно прочитать следующую часть? я не нашёл Часть 3... Спасибо.