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

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

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

Введение

В этой статье вы узнаете, как получить доступ к спискам виртуальных машин и сводной информации о виртуальных машинах с помощью простых команд PowerShell. Вы также узнаете, как правильно останавливать и запускать виртуальные машины из командной строки.

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

Прежде чем я начну

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

Базовое управление виртуальными машинами

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

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

Команда Get-VM отобразит таблицу, показывающую каждую виртуальную машину и имя хост-сервера, на котором она в данный момент существует (это особенно удобно для больших кластеров, в которых виртуальная машина может работать на любом из нескольких узлов кластера). Команда Get-VM также показывает текущее состояние каждой виртуальной машины, а также время работы каждой виртуальной машины. Таблица также содержит поле владельца, но это поле обычно не заполняется.

Теперь, когда вы знаете, как получить список виртуальных машин, существующих на вашем сервере, представьте, что вы хотите увидеть дополнительную информацию о конкретной виртуальной машине. Вы можете сделать это с помощью команды Get-VMSummary вместе с именем виртуальной машины, которую вы хотите проверить.

На рис. A показаны как команда Get-VM, так и команда Get-VMSummary в действии. Как вы можете видеть на рисунке, команда Get-VMSummary показывает вам имя виртуальной машины, IP-адрес, операционную систему и некоторые другие статистические данные.

Изображение 26847
Рисунок A. Команда Get-VMSummary предоставляет подробную информацию о виртуальной машине.

Между прочим, у этих команд есть несколько приятных вариаций. Если, например, вы хотите получить список виртуальных машин с определенного сервера, вы можете добавить параметр –Server к командлету Get-VM. Например, чтобы увидеть все виртуальные машины на сервере с именем Main, вы должны использовать следующую команду:

Точно так же вы можете получить сводную информацию с виртуальной машины на удаленном сервере, добавив переключатель –Server. Например, если вы хотите просмотреть информацию о виртуальной машине с именем DNS на сервере с именем Main, вы должны использовать эту команду:

Вы можете увидеть, как работают эти команды, на рисунке B.

Изображение 26848
Рисунок B. Библиотеку управления Hyper-V можно запускать на удаленных серверах, даже если библиотека управления не установлена на удаленном сервере.

Конечно, библиотека управления Hyper-V полезна не только для сбора информации о ваших виртуальных машинах. Также можно запускать и останавливать виртуальные машины из командной строки. Команда, которую вы должны использовать для запуска виртуальной машины: Start-VM <имя виртуальной машины>

Когда вы введете эту команду, вы увидите довольно зловещее предупреждающее сообщение о том, что задание выполняется в фоновом режиме, как показано на рисунке C. Вы можете игнорировать это сообщение, так как оно просто означает, что виртуальная машина запускается и что Задание WMI, инициирующее действие запуска, поставлено в очередь.

Изображение 26849
Рисунок C: Вы можете игнорировать это предупреждающее сообщение.

На самом деле, если вы внимательно прочитаете предупреждение, показанное выше, вы заметите, что PowerShell фактически предоставляет вам идентификационный номер задания WMI, а также командлеты, которые вы будете использовать для проверки состояния задания. Во время написания этой статьи я ввел эти команды несколько раз, и, на мой взгляд, использование этих команд не очень практично, потому что команды требуют много очень утомительного набора текста. Гораздо быстрее просто использовать команду Get-VM, чтобы убедиться, что виртуальная машина запущена, как показано на рисунке D. Обратите внимание на то, что на рисунке я указал имя виртуальной машины, когда использовал команду Get-VM, поэтому я не Не нужно перебирать полный список виртуальных машин.

Изображение 26850
Рисунок D: Вы можете использовать команду Get-VM для проверки состояния виртуальной машины.

Учитывая, что для запуска виртуальной машины используется команда Start-VM, очевидно, что для остановки виртуальной машины используется команда Stop-VM. Хотя Stop-VM — вполне допустимая команда, есть кое-что важное, что вам нужно знать, прежде чем использовать ее.

Команда Stop-VM, по сути, просто переводит виртуальную машину в остановленное состояние. Эта команда более или менее похожа на виртуальный сервер, эквивалентный выдергиванию шнура питания из задней части машины. Хотя иногда может потребоваться команда Stop-VM, лучше выключать виртуальные машины с помощью команды Invoke-VMShutdown. Эта команда на самом деле сообщает операционной системе виртуальной машины о необходимости корректного завершения работы. Само собой разумеется, что эта команда была разработана для использования с виртуальными машинами под управлением операционных систем Windows.

Если вы посмотрите на снимок экрана, показанный на рисунке E, вы увидите, что я сначала ввел команду Stop-VM. Я сделал это только для того, чтобы продемонстрировать, что Stop-VM — допустимая команда. Когда PowerShell спросил меня, действительно ли я хочу остановить виртуальную машину, я прервал процесс, нажав N. Затем я использовал команду Invoke-VMShutdown (вместе с именем виртуальной машины), чтобы начать процесс корректного завершения работы. PowerShell снова спросил меня, действительно ли я хочу выполнить эту операцию. На этот раз я ввел Y, и выключение было инициировано. Наконец, я убедился, что виртуальная машина была выключена, введя команду Get-VM.

Изображение 26851
Рисунок E: По возможности следует использовать команду Invoke-VMShutdown, а не команду Stop-VM.

Вывод

Теперь, когда вы знаете, как просматривать сводку по виртуальной машине и как запускать и останавливать виртуальные машины из командной строки, пришло время перейти к более интересным вещам. В части 3 я собираюсь начать с двух команд устранения неполадок — PingVM и TestVmHeartBeat. Далее я собираюсь показать вам некоторые приемы настройки распределения памяти виртуальной машины.

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