Initialstore xml windows 10
Рубрики
Архивы
По умолчанию Hyper-V разрешает создание и управление виртуальными машинами только администраторам. Сегодня я расскажу о том, как делегировать эти права пользователям, не обладающими правами администратора сервера.
Hyper-V используют новую модель авторизации пользователей — Authorization Management Framework, которая позволяет гибко настроить права пользователей на виртуальные машины. Модель очень хорошо продумана и имеет ряд интересных моментов.
Основные термины:
Операция (Operation)
Основной кирпичик модели авторизации — представляет собой действие, которое пользователь может произвести. Примерами операций модели являются op_Create_VM, позволяющая создать виртуальную машину и op_Start_VM, соответственно, запускающая виртуальную машину.
Задача (Task)
Задача — это группа операций, требуемых для выполнения некоторых действий. По умолчанию мы не создаем никаких заданий, но если бы мы могли создать задачу control_VM, то нам бы потребовалось добавить в эту группу операции по запуску (op_Start_VM), остановке (op_Stop_VM), приостановке (op_Pause_VM) и перезапуску (op_Restart_VM) для выполнения необходимых в задаче действий.
Роль (Role)
Роль определяет должность, круг задач или зону ответственности для пользователя. Например, может потребоваться роль Virtual_Network_Admin. Эта роль будет иметь права на все операции и задачи, связанные с виртуальными сетями. При необходимости эту роль можно будет назначать пользователям.
Область (Scope)
Область позволяет вам указать, какие объекты управляются конкретными ролями. Если у вас есть система, и вы хотели бы быть дать пользователю административный доступ к некому набору виртуальных машин в ней, вам потребуется создать область, содержащую эти конкретные виртуальные машины, а затем применить ваши настройки к данной области.
Область по умолчанию (Default Scope)
Область по умолчанию присваивается виртуальным машинам, для которых явно не задана другая область.
Hyper-V может хранить настройки модели авторизации в Active Directory или в локальном файле в формате XML. По умолчанию после установки роли Hyper-V настройки хранятся в файле, который находится по адресу: %programdata%\Microsoft\Windows\Hyper-V\InitialStore.xml. Для того, чтобы изменить настройки, вам потребуется:
Запустить приложение MMC. (Для этого нажмите комбинацию клавиш ‘Win + R’, затем выполните mmc.exe).
В меню Файл выбрать Добавить или удалить оснастку…
Добавить Диспетчер авторизации.
В дереве консоли (левой панели ) выбрать Диспетчер авторизации, затем в меню Действие выбрать пункт Открыть хранилище данных авторизации…
Выбрать XML file в предлагаемом диалоге Открытие хранилища данных авторизации: и открыть файл по указанному выше пути. (Папка programdata является скрытой, так что проще будет скопировать путь целиком).
Выберите InitialStore.xml, затем Hyper-V services, далее Назначение ролей и в конце концов Administrator.
В меню Действие выберите Назначить пользователей и группы, затем из Windows and Active Directory, далее выберите пользователя, которому хотите делегировать права на управления Hyper-V.
Нажмите OK и закройте окно MMC. (При этом можно сохранить или отменить настройки MMC. Это не повлияет на изменения, внесенные вами в модель авторизации).
На этом ваша задача выполнена. Пользователь может полностью контролировать Hyper-V, не являясь администратором на этом сервере. Делегирование гранулярных прав на конкретные виртуальные машины осуществляется абсолютно таким же образом.
Категории: Windows 8. Автор Deamon. 16.11.2013 в 14:15 Нет комментариев
Initialstore xml windows 10
Ссылки на остальные части статьи: 1 , 2, 3, 4 и 5
Только я подумал, что закончил писать статью, но пришло достаточно много писем с вопросом — «Как быть если сервер установлен в режиме Server Core?» Если Сервер установлен в режиме Server Core, то в нем отсутствует большинство привычного пользовательского интерфейса.
Эта часть, альтернатива Первой Части статьи и тут речь пойдет о настройке Сервера в режиме Server Core. Прежде, чем идти дальше, удостоверьтесь, что вы следовали за шагами в предыдущих статьях, чтобы добавить Hyper-V роль на Server Core и включить «Удаленное управление» (Remote management). Удаленное управление — это важный момент, без которого вы не сможете проделать следующие шаги.
Шаг 10 (на Рабочей станции и Сервере)
Этот шаг повторяет Шаг 1 из Первой Части. Удостоверьтесь, что вы используете одинаковые логин и пароль на Рабочей Станции и на Сервере. Для этой статьи я создал пользователя «John» с таким же паролем на обоих компьютерах. Пользователь “John” не обладает Административными правами на Сервере, но на Рабочей Станции — является Администратором. Для заведения пользователя выполните следующую команду:
net user john * /add
Шаг 11 (на Сервере)
Этот шаг повторяет Шаг 2 из Первой Части. Включите правила в Брандмауэре Windows для WMI (Windows Management Instrumentation). Для этого запустите CMD и наберите в нем следующую команду:
netsh advfirewall firewall set rule group=”Windows Management Instrumentation (WMI)” new enable=yes
Убедитесь что команда выполнена и 4-ре правила были обновлены как показано на рисунке.
Note: Строка в кавычках (в нашем примере “Windows Management Instrumentation (WMI)”) должна соответствовать названию группы, определенному в Брандмауэре Windows. Если вы используете не Английскую версию Windows, вам надо вставить правильное значение соответствующее вашей системе.
Шаг 12 (на Сервере)
Этот шаг повторяет Шаг 3 в Первой Части статьи. Этот шаг позволит дать необходимые права пользователю, который будет удаленно подключаться к DCOM компоненту (Distributed COM). На Сервере в режиме установки «Serevr Full» это довольно просто сделать используя «dcomcnfg». К сожалению это невозможно сделать на Сервере в режиме установки «Server Core». Однако есть встроенная группа пользователей, которая выполнит нам соответствующую роль, ее то мы и будем использовать. (По идее, хотя я этого не проверял, это должно в полной мере работать и на Сервере в режиме установки «Serevr Full»)
Нам надо добавить нашего пользователя или группу в группу «Distributed COM Users». В моем примере Сервер называется «jhoward-hp2» а пользователь называется «John». В командной строке выполним следующую команду:
net localgroup “Distributed COM Users” /add jhoward-hp2\john
Шаг 12B (на Рабочей Станции)
Следуйте шагам 5, 6 и 7 в Части 2. Эти шаги повторяются и должны быть проделаны на Рабочей Станции.
Шаг 13 (на Рабочей станции)
Этот шаг дублирует Шаг 4 Первой Части статьи. В нем назначаются соответствующие разрешения на WMI, пользователю, который будет подключаться удаленно. Нам необходимо раздать права на два параметра и как в Шаге 3 выдать права конкретному пользователю или группе или группе “Пользователи прошедшие проверку” (Authenticated Users).
Но это будет сделать немного затруднительно, поскольку на Сервере в режиме установки «Server Core» нет консоли «Управления Компьютером» (Сomputer Management MMC). Однако , поскольку мы уже дали разрешения на «Удаленное управление» (Remote Management) на Сервере, мы сможем это проделать с Рабочей Станции (Vista SP1). На Рабочей Станции войдите в систему под учетной записью с правами Администратора, которая совпадает с учетной записью на Сервере. (В нашем примере это «John»).
Откройте оснастку «Управление Компьютером» (Computer Management), выделите самый верхний узел «Управление Компьютером (Локальный компьютер)» (Computer Management (Local Computer)), нажмите правой кнопкой мыши и выберите «Подключиться к другому компьютеру …» (Connect to another computer …).
В открывшемся окне введите имя Сервера и нажмите «ОК», (в нашем примере имя сервера «jhoward-hp2»). Затем раскрываем ветку “Службы и приложения” (Services and Applications) и выбираем “Управляющий элемент WMI” (WMI Control).
Нажимаем правой кнопкой мыши на “Управляющий элемент WMI” (WMI Control) и выбираем “Свойства” (Properties). Переходим на закладку “Безопасность” (Security) и выделяем ветку Root\CIMV2.
ВАЖНО: Вы должны выставить права дважды, один раз для ветки Root\CIMV2 и еще раз для ветки Root\virtualization.
Нажимаем кнопку “Безопасность” (Security). Если необходимый пользователь или группа еще не имеют доступа, нажимаем кнопку “Добавить” (Add) и добавляем. Обратите внимание, что вы это делаете удаленно, для вас появится запрос на авторизацию. Убедитесь что вы вводите логин в формате «server\username», т.к. в ином случае домен по умолчанию будет использоваться того компьютера, с которого вы подключаетесь.
Теперь выделим добавленного пользователя или группу и нажимаем кнопку “Дополнительно” (Advanced) в разделе “Разрешения для …” (Permissions for …).
В открывшемся окне опять выделяем необходимого пользователя или группу и нажимаем “Изменить” (Edit).
Необходимо сделать следующие три изменения:
- В разделе “Применять:” (Apply to:) поставить “Данное пространство и подпространство имен” (This namespace and subnamespaces).
- В разделе “Разрешить” (Allow) поставить “Включить удаленно” (Remote Enable).
- Разрешить “Применять эти разрешения к объектам и контейнерам только внутри этого контейнера” (Apply these permissions to objects and/or containers within this container only).
Окно должно выглядеть, как показано на рисунке. Если все правильно, нажимайте “ОК” для закрытия окон.
Повторите эти операции для ветки “Root\Virtualization”.
Нажимайте “ОК” на открытых окнах для подтверждения всех изменений и закрывайте окно “Управление компьютером” (Computer Management).
Шаг 14 (на Рабочей станции)
Этот шаг дублирует Шаг 5 из Первой Части статьи и речь тут пойдет о настройке ролевых разрешений для приложений на сервере с Hyper-V ролью используя “Диспетчер авторизации” (Authorization Manager (AZMan)). Я предполагаю, что вы используете настройки политики по умолчанию и не вносили до этого никаких изменений.
Что бы сделать себе жизнь немного проще, на Рабочую Станцию по сети подключите системный диск Сервера. В моем примере системный диск Сервера — «G». Для подключения выполните в командной строке на Рабочей Станции следующую команду (замените G и jhoward-hp2 на то что у вас):
net use * \\jhoward-hp2\g$
Открываем “Диспетчер авторизации” (Authorization Manager), Пуск-Выполнить: “azman.msc”
В открывшемся окне, правой кнопкой мыши нажимаем на “Диспетчер авторизации” (Authorization Manager), выбираем “Открыть хранилище данных авторизации…” (Open Authorization Store).
Убедитесь, что выбран тип хранилища “Файл XML” (XML file), нажав кнопку “Обзор” (Browse) переходим на сетевой диск, который только что подключили, в директорию “\ProgramData\Microsoft\Windows\Hyper-V” выбираем файл “InitialStore.xml” и нажимаем “ОК”.
Я не буду усложнять, поэтому в контексте Hyper-V дам права Администратора пользователю “John”, которого мы завели ранее. Разверните список “InitialStore.xml\Hyper-V services\Role Assignments\Administrator” и выделите “Administrator”.
В правой части окна, нажимаем правой кнопкой мыши, выбираем “Assign Users and Groups” и далее “From Windows and Active Directory…”.
Откроется запрос на авторизацию. Убедитесь что вы вводите логин в формате «server\username», т.к. в ином случае домен по умолчанию будет использоваться того компьютера, с которого вы подключаетесь.
В этом пункте я мог бы сказать о том что необходимо добавить пользователя, так как мы это делали для Сервера в режиме установки «Server Full». Однако я натолкнулся на препятствие. “Диспетчер авторизации” (Authorization Manager) запущенный удаленно не смог найти пользователя «John» на Сервере (так же небыли видны и все другие пользователи которых я создал на Сервере). Хотя с помощью «Управления компьютером» (Computer Management) все они были видны на удаленном Сервере.
Ответ, я думал, в том чтобы создать новую группу на Сервере и добавить в нее пользователя «John». Но и это не сработало. Не все было потеряно. Первое что пришло в голову написать отчет об ошибке. Второе — придумать обходной план. Я приношу свои извинения заранее, но обходной вариант действительно ужасен — вручную редактировать InitialStore.xml.
Давайте взглянем на файл InitialStore.xml, который у нас получился когда мы описывали настройку Сервера в режиме «Server Full», в раздел “Name=Administrator”. На первом скриншоте мы видим кусок XML файла, в котором «John» присутствует, а на втором — нет.
Таким образом, это только вопрос обнаружения и добавления соответствующего SID пользователя/группы. Как сложно это может быть? Спасибо scripting guy, ответ не заставил себя долго ждать. Я написал небольшой скрипт «test.vbs» и запустил его на Рабочей станции — «cscript test.vbs». (Замените «jhoward-hp2» в обоих местах на название своего Сервера и «John» на имя вашего пользователя. Так же обратите внимание на то, что не должно быть пробела между «john» и Domain=).
strComputer = «.»
Set objWMIService = _
GetObject(«winmgmts:\\jhoward-hp2\root\cimv2»)
Set objAccount = objWMIService.Get _
(«Win32_UserAccount.Name=’john’,Domain=’jhoward-hp2′»)
Wscript.Echo objAccount.SID
Итак, теперь у меня есть SID для пользователя «John» и я могу с помощью notepad отредактировать файл InitialStore.xml. Сетевой диск Сервера у меня все еще подключен. ВАЖНО: Сделайте копию вашего InitialStore.xml файла.
К сожалению notepad не самый лучший редактор XML файлов. Есть достаточно много бесплатных редакторов XML, но я решил остановиться на notepad, потому как хотел доказать что всю эту работу можно сделать встроенными компонентами. Здесь вы можете увидеть, что я добавил новый tag — все после S-1-5-21-602….. и до
Чтобы увидеть, не напортачил ли я где, просмотрим файл, открыв его в Internet Explorer.
Да, теперь вы можете закрыть “Диспетчер авторизации” (Authorization Manager).
ВАЖНО: Вы должны перегрузить Сервер для того чтобы изменения вступили в силу.
Шаг 15 (вдалеке от клавиатуры)
Этот шаг дублирует Шаг 8 из Части 2 этой статьи. Очень глубоко вздохните и поздравьте себя. Откройте пиво, сходите на вечеринку, делайте все что хочется. Вы зашли настолько далеко, что заслужили это. Перепроверьте, что вы следовали всем шагам данной статьи и сделали все правильно. Не правда ли вы помните о том, что надо перезапустить Сервер?
Шаг 16 (на Рабочей Станции)
Зайдите в систему под учетной записью пользователя, которому вы дали права на Рабочей станции (John в нашей статье).
Запустите консоль управления “Hyper-V Manager”, Разрешите запуск приложения, если у вас включен “Контроль Учетных Записей” (User Account Control — UAC), введите соответствующие логин и пароль если ваш пользователь не обладает административными правами.
Нажмите “Подключиться к Серверу” (Connect to Server) и введите имя Сервера.
Еще сильнее трепещите в ожидании до появления окна как, показано ниже. На скриншоте видно Сервер «jhoward-hpu» — это сервер в режиме инсталляции «Server Full» и Сервер «jhoward-hp2» — в режиме «Server Core».
Hyper-V | artv | 22.05.2009
Desktop Operating Systems, How to Articles, Hyper-V, Windows Server 2008