Средствам управления hyper v не удалось получить доступ к ожидаемому классу wmi на компьютере

Обновлено: 07.07.2024

В блоге Алексея Кибкало вычитал полезную штуку — как позволить простому смертному пользователю, не обладающему администраторскими правами, управлять Hyper-V, создавать и запускать виртуальные машины и так далее.

  • Запустить приложение MMC. (Для этого выберите пункт Run в Start Menu или нажмите комбинацию клавиш 'Windows Key + R', затем выполните mmc.exe).
  • В меню File выбрать Add/Remove Snap-in.
  • Добавить Authorization Manager.
  • В дереве консоли (левой панели ) выбрать Authorization Manager, затем в меню Action выбрать пункт Open Authorization Store.
  • Выбрать XML file в предлагаемом диалоге Select the authorization store type: и открыть файл по указанному выше пути. (Папка %programdata% является скрытой, так что проще будет скопировать путь целиком).
  • Выберите InitialStore.xml, затем Microsoft Hyper-V services, далее Role Assignments и в конце концов Administrator.
  • В меню Action выберите Assign Users and Groups, затем From Windows and Active Directory, далее выберите пользователя, которому хотите делегировать права на управления Hyper-V. Нажмите OK и закройте окно MMC. (При этом можно сохранить или отменить настройки MMC. Это не повлияет на изменения, внесенные вами в модель авторизации).

Описанные в этой статье шаги применимы к версии RC0 гипервизора Hyper-V и RC0 версии клиентской утилиты управления Hyper-V Manager для Vista SP1 (x86 и x64).

Итак, на сервере следует выполнить следующие шаги:

Разрешить в Windows Firewall правило «Windows Management Instrumentation (WMI)» следующей командой:
netsh advfirewall firewall set rule group=«windows management instrumentation (wmi)» new enable=yes

Внимание: в различных локализованных ОС встроенные правила брандмауэера могут назваться по-разному. Необходимо указать название правила именно так, как оно выглядит в инструментах управления Windows Firewall. Например, в русской версии Windows Server 2008 приведенная выше строка будет выглядеть так:

netsh advfirewall firewall set rule group=«Инструментарий управления Windows (WMI — входящий трафик)» new enable=yes

Предоставить пользователю права на удаленный запуск (remote launch and activation) в DCOM. Это можно сделать как для конкретного пользователя или группы, так и для всех AUTHENTICATED USERS.
Нажмите Start, выберите Run, запустите dcomcnfg.exe.
В Component Services раскройте Computers, правой кнопкой нажмите на My Computer и выберите в меню пункт Properties.
В My Computer Properties раскройте COM Security.
В Launch and Activation Permissions выберите Edit Limits.
В случае, если пользователь не указан в списке Groups of user names в окне Launch Permission, добавьте его кнопкой Add.
В Launch Permission выберите пользователя или группу и в колонке Allow в Permissions for user укажите Remote Launch и Remote Activation. Нажмите OK.
Предоставить пользователю права на удаленное управление (remote enable) в пространстве имен (namespace) **root\CIMv2 и root\virtualization. Это можно сделать как для конкретного пользователя или группы, или для AUTHENTICATED USERS.
В Control Panel зайдите в Administrative Tools и запустите Computer Management.
В Computer Management раскройте Services and Applications, правой кнопкой выберите WMI Control и нажмите Properties.
В закладке Security выберите Advanced.
В случае, если пользователь не указан в списке Permission в окне Advanced Security Settings, добавьте его кнопкой Add.
В Advanced Security Settings выберите имя пользователя и нажмите Edit.
В выпадающем меню Apply To окна Permission Entry выберите This namespace and subnamespaces и укажите Remote Enable в колонке Allow. Нажмите OK.
Предоставьте пользователю права на Hyper-V. Эта процедура описана выше.
Перезагрузите сервер. (Если вы хотите избежать перезагрузки сервера, достаточно перезапустить следующие сервисы: winmgmt, vmms, vhdsvc & nvspwmi).
Внимание: если сервер с установленной ролью Hyper-V, которым вы хотите управлять удаленно, используя локальную запись с правами администратора, не входит в домен, и при этом на сервере включен User Account Control (UAC), то имейте в виду следующее. По умолчанию к локальным учетным записям при неинтерактивном (в том числе сетевом) доступе применяется UAC Filtering. То есть, даже если вы являетесь администратором сервера, при попытке удалённого подключения UAC предоставит вам права стандартного пользователя. Поэтому в таком случае вам потребуется напрямую предоставить пользователю права на Hyper-V способом, описанным в предыдущей статье.

Итак, сервер мы настроили. Теперь ряд настроек потребуется выполнить и на клиентском ПК с Vista SP1.

Разрешить на Windows Firewall правило «Windows Management Instrumentation (WMI)» командой
netsh advfirewall firewall set rule group=«windows management instrumentation (wmi)» new enable=yes

В русской версии Windows Vista эта же команда выглядит следующим образом:

netsh advfirewall firewall set rule group=«Инструментарий управления Windows (WMI — входящий трафик)» new enable=yes

А на системах с ОС, предшествующими Windows Vista (Windows XP / 2003), для этого служит команда

Для установки Microsoft Windows Sever 2016 можно воспользоваться порталом Microsoft Azure или Hyper-V. В материале будет кратко рассмотрен первый вариант и подробнее вариант с применением Hyper-V.

Установка с применением Azure

Используя Microsoft Azure, вам не нужно иметь мощный сервер или производительную рабочую станцию, с большим количеством ядер процессора и внушительным размером оперативной памяти. Нет необходимости искать и скачивать образы операционных систем для установки.

Воспользоваться Microsoft Azure возможно бесплатно. При регистрации, на счет аккаунта зачисляется 12500 руб. В момент регистрации, вас поросят ввести данные вашей банковской карты. Будьте внимательны, возможно списание средств за платные услуги. Помимо Microsoft Windows Sever 2016, Azure позволяет разворачивать Linux ситемы, SQL серверы и т.п.

Выбор версии Microsoft Windows Sever 2016 на портале Azure

Установка с применением Hyper-V

Установку будем проводить, на локальной машине с операционной системой Windows 10 Professional 64bit. Использование на Windows 10 Home не возможно, только профессиональная и корпоративная версии Windows.

Для начала нужно включить Hyper-V версия 10.1. Попытавшись сделать это через

«Программы и компоненты» - «Включение или отключение компонентов Windows»

мы столкнулись с проблемой. При открытии оснастки и попытке подключиться к локальному серверу, система выдавала ошибку:

«Убедитесь что служба управления виртуальной машиной запущена и у вас есть необходимые полномочия для подключения к серверу.Средствам управления Hyper-V не удалось получить доступ к ожидаемому классу WMI на компьютере».

Конечно, можно было бы потратить свое время на разбор этой ошибки, чтения логов системы и устранения причин. Вероятно это легко решается выставлением прав доступа и запуска служб системы. Но разбираться в этом не очень хотелось, поэтому мы поступили иначе, воспользовались PowerShell.

Включение Hyper-V через PowerShell.

Нужно запустить PowerShell от Администратора и дать команду

После чего перезагрузить систему.

Создание виртуальной машины.

Инсталлировать будем Windows Server 2016. Официальный iso образ, серверной операционной системы, можно взять на официальном сайте Microsoft. Используйте бесплатную версию 180 дней или приобретите лицензию.

Правой кнопкой мыши, Ваш сервер - Создать - Виртуальная машина

Мастер создания виртуального сервера предложит два варианта создания виртуальной машины:

  • простой метод создания виртуальной машины с настройками по умолчанию.
  • вариант с ручными настройками, позволяющий полностью контролировать процесс создания машины

Вариант по умолчанию описывать не стоит. Там все просто, достаточно нажать кнопку «Готово» и машина будет создана.

Во втором варианте, вам будет предложено определять параметры создаваемой машины. В процессе создания виртуальной машины необходимо следовать инструкциям мастера установки. Указать размер выделяемой оперативной памяти виртуальной машине, при старте системы. А так же размер места, под жесткий диск гостевой системы. Расположение файлов виртуальных жестких дисков машины, в локальной файловой системе и т.п. По умолчанию виртуальные диски расположены по адресу C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks\. Файлы имеют расширение vhdx, и вы можете изменять их размер, объединять, преобразовывать, сжимать диски.

Два варианта поколений виртуальной машины:

  • Поколение 1 поддерживает 32 и 64 битные гостевые операционные системы
  • Поколение 2 поддержка только 64 битных гостевых операционных систем

Далее необходимо указать где находится iso образ системы, в нашем случае это Microsoft Windows Sever 2016.

Ссылки на остальные части статьи: 1 , 2, 3, 4 и 5

Шаг 10 (на Рабочей станции и Сервере)

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 (на Сервере)

net localgroup “Distributed COM Users” /add jhoward-hp2\john

Шаг 12B (на Рабочей Станции)

Следуйте шагам 5, 6 и 7 в Части 2. Эти шаги повторяются и должны быть проделаны на Рабочей Станции.

Шаг 13 (на Рабочей станции)

Этот шаг дублирует Шаг 4 Первой Части статьи. В нем назначаются соответствующие разрешения на WMI, пользователю, который будет подключаться удаленно. Нам необходимо раздать права на два параметра и как в Шаге 3 выдать права конкретному пользователю или группе или группе “Пользователи прошедшие проверку” (Authenticated Users).

p3f4

Нажимаем правой кнопкой мыши на “Управляющий элемент WMI” (WMI Control) и выбираем “Свойства” (Properties). Переходим на закладку “Безопасность” (Security) и выделяем ветку Root\CIMV2.

p3f7

ВАЖНО: Вы должны выставить права дважды, один раз для ветки Root\CIMV2 и еще раз для ветки Root\virtualization.

p3f9

p3f10

Теперь выделим добавленного пользователя или группу и нажимаем кнопку “Дополнительно” (Advanced) в разделе “Разрешения для …” (Permissions for …).

p3f11

В открывшемся окне опять выделяем необходимого пользователя или группу и нажимаем “Изменить” (Edit).

p3f12

Необходимо сделать следующие три изменения:

  1. В разделе “Применять:” (Apply to:) поставить “Данное пространство и подпространство имен” (This namespace and subnamespaces).
  2. В разделе “Разрешить” (Allow) поставить “Включить удаленно” (Remote Enable).
  3. Разрешить “Применять эти разрешения к объектам и контейнерам только внутри этого контейнера” (Apply these permissions to objects and/or containers within this container only).

Окно должно выглядеть, как показано на рисунке. Если все правильно, нажимайте “ОК” для закрытия окон.

p3f13

Повторите эти операции для ветки “Root\Virtualization”.

p3f14

Нажимайте “ОК” на открытых окнах для подтверждения всех изменений и закрывайте окно “Управление компьютером” (Computer Management).

Шаг 14 (на Рабочей станции)

Этот шаг дублирует Шаг 5 из Первой Части статьи и речь тут пойдет о настройке ролевых разрешений для приложений на сервере с Hyper-V ролью используя “Диспетчер авторизации” (Authorization Manager (AZMan)). Я предполагаю, что вы используете настройки политики по умолчанию и не вносили до этого никаких изменений.

net use * \\jhoward-hp2\g$

Открываем “Диспетчер авторизации” (Authorization Manager), Пуск-Выполнить: “azman.msc”

p3f17

В открывшемся окне, правой кнопкой мыши нажимаем на “Диспетчер авторизации” (Authorization Manager), выбираем “Открыть хранилище данных авторизации…” (Open Authorization Store).

Убедитесь, что выбран тип хранилища “Файл XML” (XML file), нажав кнопку “Обзор” (Browse) переходим на сетевой диск, который только что подключили, в директорию “\ProgramData\Microsoft\Windows\Hyper-V” выбираем файл “InitialStore.xml” и нажимаем “ОК”.

p3f19

Я не буду усложнять, поэтому в контексте Hyper-V дам права Администратора пользователю “John”, которого мы завели ранее. Разверните список “InitialStore.xml\Hyper-V services\Role Assignments\Administrator” и выделите “Administrator”.

p3f20

В правой части окна, нажимаем правой кнопкой мыши, выбираем “Assign Users and Groups” и далее “From Windows and Active Directory…”.

Чтобы увидеть, не напортачил ли я где, просмотрим файл, открыв его в Internet Explorer.

Да, теперь вы можете закрыть “Диспетчер авторизации” (Authorization Manager).

ВАЖНО: Вы должны перегрузить Сервер для того чтобы изменения вступили в силу.

Шаг 15 (вдалеке от клавиатуры)

Этот шаг дублирует Шаг 8 из Части 2 этой статьи. Очень глубоко вздохните и поздравьте себя. Откройте пиво, сходите на вечеринку, делайте все что хочется. Вы зашли настолько далеко, что заслужили это. Перепроверьте, что вы следовали всем шагам данной статьи и сделали все правильно. Не правда ли вы помните о том, что надо перезапустить Сервер?

Шаг 16 (на Рабочей Станции)

Зайдите в систему под учетной записью пользователя, которому вы дали права на Рабочей станции (John в нашей статье).

Нажмите “Подключиться к Серверу” (Connect to Server) и введите имя Сервера.

Успешно развернутая инфраструктура Hyper-V управляется с помощью диспетчера Hyper-V или центра администрирования Windows. Это можно сделать локально или удаленно, но во многих случаях удаленное управление является более эффективным способом, особенно если у нас больше серверов. Начиная с Windows 8, Microsoft интегрировала клиент Hyper-V в выпуски Professional и Enterprise операционной системы (Windows 8, Windows 8.1 и Windows 10). Это дает дополнительную гибкость, поскольку вам, как ИТ-администратору, нужно делать это не с Windows Server, а с вашего клиентского компьютера с Windows.


Некоторые ИТ-администраторы испытывают проблемы при подключении с клиента Windows к удаленному серверу Hyper-V. Существуют разные причины, по которым эта проблема может возникнуть, но в этой статье мы поговорим об отсутствии доверия между исходным и целевым компьютером. Ошибка известна как: «Произошла ошибка при попытке подключения к серверу «ServerName». Убедитесь, что служба управления виртуальными машинами запущена и у вас есть права на подключение к серверу. Не удалось подключиться к удаленному серверу: клиент WinRM не может обработать запрос. Политика компьютера не позволяет делегировать учетные данные пользователя целевому компьютеру… » как показано на скриншоте ниже.


Поскольку причина очевидна, на следующих нескольких шагах мы проведем вас через процесс включения доверия между клиентским компьютером Windows и удаленным сервером Hyper-V.

Разрешить делегирование новых учетных данных с помощью проверки подлинности сервера только для NTLM

  1. Щелкните правой кнопкой мыши на Стартовое меню и найдите редактор групповой политики, набрав gpedit
  2. открыто Изменить групповую политику
  3. Перейдите к Настройки компьютера> Административные шаблоны> Система> Делегирование полномочий
  4. Двойной клик по Разрешить делегирование новых учетных данных с проверкой подлинности сервера только для NTLM
  5. Активируйте политику, нажав на включить
  6. Нажмите Шоу… рядом с Добавить серверы в список
  7. Нажмите на поле и введите имя сервера WSMAN / Hyper-V. В нашем примере сервер называется hyperv01, поэтому мы введем wsman / hyperv01
  8. Нажмите Хорошо подтвердить
  9. Нажмите Применять а потом Хорошо

По умолчанию групповая политика компьютера обновляется в фоновом режиме каждые 90 минут со случайным смещением от 0 до 30 минут. Поскольку мы не хотим ждать этого, мы будем принудительно обновлять с помощью CMD или Powershell. Пожалуйста, следуйте процедуре ниже. Также мы можем изменить интервал обновления для групповой политики, начиная с 0 минут до 31 дня.

Читайте также: