Управление Hyper-V из командной строки (часть 1)

Опубликовано: 21 Апреля, 2023

  • Управление Hyper-V из командной строки (часть 4)
  • Управление Hyper-V из командной строки (часть 5)
  • Управление Hyper-V из командной строки (часть 6)
  • Управление Hyper-V из командной строки (часть 7)
  • Управление Hyper-V из командной строки (часть 8)

Введение

Одной из вещей, которой явно не хватает в Hyper-V, является возможность управлять виртуальными машинами через Windows PowerShell. Хотя Microsoft планирует предложить эту возможность в Windows Server 8, сегодня можно выполнять управление виртуальными машинами из командной строки. В этой статье я покажу вам, как это сделать.

Получение библиотеки управления Hyper-V

Несмотря на то, что Hyper-V не предоставляет собственных возможностей управления PowerShell, существует библиотека управления PowerShell, которую можно загрузить с сайта CodePlex.

Прежде чем я покажу вам, как установить эту библиотеку управления, я должен указать, что текущий выпуск предназначен только для работы с PowerShell версии 2. Еще в 2009 году Дэвид Дэвис написал для этого сайта отличную статью, в которой описывался процесс установки Библиотека управления Hyper-V и несколько основных команд PowerShell, ознакомьтесь с ними здесь. Хотя Дэвис использовал в своей статье PowerShell версии 2, версия библиотеки управления, существовавшая в то время, была разработана с учетом обратной совместимости с исходным выпуском PowerShell. Версия библиотеки управления, которую я буду обсуждать, совместима только с PowerShell 2.0, и процесс установки несколько отличается от исходной версии.

Подготовка вашей системы

Прежде чем вы сможете установить библиотеку управления Hyper-V, вам необходимо установить Windows PowerShell. Библиотека управления Hyper-V предназначена для работы с автономным сервером Hyper-V, развертыванием ядра сервера Hyper-V или сервером Windows Server 2008 / 2008 R2, использующим Hyper-V в качестве роли сервера. Для целей этой статьи я буду использовать сервер Windows Server 2008 R2 с ролью Hyper-V.

С учетом сказанного вы можете установить PowerShell, открыв консоль диспетчера серверов, выбрав контейнер «Функции» и щелкнув ссылку «Добавить компоненты». Когда вы это сделаете, мастер добавления компонентов спросит вас, какие функции вы хотите установить. Выберите функцию интегрированной среды сценариев Windows PowerShell и следуйте инструкциям, чтобы завершить процесс установки.

Установка библиотеки управления Hyper-V

Когда вы загружаете библиотеку управления Hyper-V по приведенной выше ссылке, загрузка состоит из одного ZIP-файла. Этот ZIP-файл содержит три вещи:

Install.cmd — установщик библиотеки управления Hyper-V.

PC_Console.REG — файл, который обновляет реестр сервера для размещения библиотеки управления Hyper-V.

Папка HyperV — эта папка содержит двоичные файлы, составляющие библиотеку управления.

С учетом сказанного вы можете начать процесс установки, щелкнув правой кнопкой мыши файл Install.cmd и выбрав команду «Запуск от имени администратора» в появившемся контекстном меню. Когда вы это сделаете, Windows откроет меню командной строки и отобразит сообщение о том, что модуль PowerShell для Hyper-V должен убедиться, что на сервере установлены.NET Framework и Windows PowerShell. Вам будет предложено нажать клавишу для продолжения, но когда вы это сделаете, вы получите ряд сообщений об ошибках, подобных показанным на рисунке A.

Изображение 26911
Рисунок A: Программа установки отображает серию сообщений об ошибках.

Согласно документации к программному обеспечению (которую необходимо загрузить отдельно), эти сообщения об ошибках безвредны. Причина, по которой вы их видите, заключается в том, что программа установки была разработана для использования с развертываниями Server Core. Тем не менее, установщик полезен для копирования двоичных файлов библиотеки управления Hyper-V в нужное место. На самом деле, если вы нажмете клавишу при появлении запроса, программа установки скопирует для вас все двоичные файлы.

Следующее приглашение, которое вы увидите, попросит вас нажать клавишу для обновления реестра сервера. Когда вы нажимаете клавишу, программа установки использует файл PS_Console.REG для обновления реестра сервера.

Последнее приглашение, которое вы увидите, просит вас нажать клавишу для загрузки PowerShell. Когда PowerShell загрузится, вы увидите вопиющую ошибку, подобную той, что показана на рисунке B, сообщающую вам, что модуль Hyper-V не может быть импортирован. И снова эта ошибка возникает из-за того, что установщик был разработан для развертывания основных серверных компонентов.

Изображение 26912
Рисунок B: Программа установки завершается с ошибкой PowerShell.

Хотя ошибка, показанная выше, безобидна, это означает, что вам придется завершить процесс установки вручную. К счастью, это относительно легко сделать.

Несколько слов о безопасности PowerShell

Прежде чем я покажу вам, как завершить процесс установки, мне нужно немного рассказать вам о безопасности PowerShell. PowerShell разработан таким образом, что он не запускает неподписанные сценарии. Это поведение предназначено для предотвращения использования PowerShell в качестве инструмента для вредоносных сценариев.

Сказав это, установка библиотеки управления Hyper-V требует от нас запуска сценария. Поскольку сценарий не подписан, вы можете либо подписать его самостоятельно, либо настроить PowerShell для запуска неподписанных сценариев. Если вы хотите разрешить PowerShell запускать неподписанные сценарии, просто введите следующую команду:

Set-ExecutionPolicy Неограниченный

Импорт модулей Hyper-V

Должен признаться, что я часами мучился с импортом модулей Hyper-V для PowerShell. Согласно документации программного обеспечения, вы должны иметь возможность импортировать модули, выполнив следующую команду PowerShell:

Импорт модуля «C:Program FilesModulesHypervHyperv.psd1»

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

Чтобы запустить PowerShell от имени администратора, просто щелкните правой кнопкой мыши значок PowerShell и выберите команду «Запуск от имени администратора» в контекстном меню, как показано на рисунке C.

Изображение 26913
Рисунок C. Вы должны запускать PowerShell от имени администратора.

Когда PowerShell откроется, введите команду Get-ExecutionPolicy и убедитесь, что PowerShell работает с неограниченной политикой выполнения. Затем введите указанную выше команду Import-Module, чтобы импортировать модуль Hyper-V. Вы можете увидеть, как работают эти команды на рисунке D.

Изображение 26914
Рисунок D. Теперь вы можете импортировать модуль Hyper-V.

Что пошло не так?

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

Обычно вам не нужно разблокировать сценарии, но если у вас возникли проблемы и вы хотите попробовать, вы можете сделать это, открыв проводник Windows и перейдя в папку C:Program FilesModulesHyperv. Теперь щелкните правой кнопкой мыши первый файл в папке и выберите команду «Свойства» в контекстном меню. Когда появится лист свойств файла, нажмите кнопку «Разблокировать», показанную на рис. E. Нажмите «ОК», а затем повторите процесс для каждого файла в папке.

Изображение 26915
Рисунок E: Вы можете разблокировать файл, нажав кнопку «Разблокировать».

Использование библиотеки управления Hyper-V

После того, как вы импортировали модуль Hyper-V, вы можете запустить множество командлетов. Я собираюсь показать вам некоторые из наиболее полезных командлетов в следующей статье этой серии. А пока я хотел бы показать вам один командлет. Если вы войдете в Show-HyperVMenu, вам будет представлен текстовый интерфейс управления для Hyper-V. Этот интерфейс предоставляет те же функции, что и диспетчер Hyper-V. Вы можете увидеть, как выглядит этот интерфейс на рисунке F.

Изображение 26916
Рисунок F. Эта утилита позволяет вам управлять Hyper-V без необходимости запоминать различные командлеты PowerShell.

Вывод

Теперь, когда библиотека управления Hyper-V настроена и работает, я планирую посвятить часть 2 этой серии тому, чтобы показать вам, что вы можете с ней делать.

  • Управление Hyper-V из командной строки (часть 4)
  • Управление Hyper-V из командной строки (часть 5)
  • Управление Hyper-V из командной строки (часть 6)
  • Управление Hyper-V из командной строки (часть 7)
  • Управление Hyper-V из командной строки (часть 8)