Работа с Hyper-V и Windows PowerShellWorking with Hyper-V and Windows PowerShell

Изучив основы развертывания Hyper-V, создания виртуальных машин и управления ими, давайте теперь узнаем, как можно автоматизировать многие из связанных с этим действий с помощью PowerShell.Now that you have walked through the basics of deploying Hyper-V, creating virtual machines and managing these virtual machines, let’s explore how you can automate many of these activities with PowerShell.

Получение списка команд Hyper-VReturn a list of Hyper-V commands

  1. Нажмите кнопку "Пуск" в Windows и введите PowerShell.Click on the Windows start button, type PowerShell.
  2. Запустите указанную ниже команду, чтобы отобразить список команд PowerShell, доступных в модуле PowerShell Hyper-V.Run the following command to display a searchable list of PowerShell commands available with the Hyper-V PowerShell Module.
Get-Command -Module hyper-v | Out-GridView

Отобразится примерно следующее:You get something like this:

  1. Чтобы получить дополнительные сведения о конкретной команде PowerShell, введите команду Get-Help.To learn more about a particular PowerShell command use Get-Help. Например, запустив указанную ниже команду, вы получите информацию о команде Get-VM Hyper-V.For instance running the following command returns information about the Get-VM Hyper-V command.
Get-Help Get-VM

Отобразится информация о синтаксисе команды, обязательных и дополнительных параметрах, а также псевдонимах, которые можно использовать.The output shows you how to structure the command, what the required and optional parameters are, and the aliases that you can use.

Получение списка виртуальных машинReturn a list of virtual machines

Чтобы извлечь список виртуальных машин, используйте команду Get-VM.Use the Get-VM command to return a list of virtual machines.

  1. В PowerShell запустите следующую команду:In PowerShell, run the following command:
Get-VM

Отобразится примерно следующее:This displays something like this:

  1. Чтобы извлечь список только тех виртуальных машин, которые включены в данный момент, добавьте к команде Get-VM фильтр.To return a list of only powered on virtual machines add a filter to the Get-VM command. Фильтр можно добавить командой Where-Object.A filter can be added by using the Where-Object command. Дополнительные сведения о фильтрации см. в статье Использование командлета Where-Object.For more information on filtering see the Using the Where-Object documentation.
Get-VM | where {$_.State -eq 'Running'}
  1. Чтобы получить список всех отключенных виртуальных машин, запустите указанную ниже команду.To list all virtual machines in a powered off state, run the following command. Эта команда представляет собой копию команды, приведенной ранее (шаг 2), но только значение фильтра изменено с "Running" (Работают) на "Off" (Отключены).This command is a copy of the command from step 2 with the filter changed from 'Running' to 'Off'.
Get-VM | where {$_.State -eq 'Off'}

Запуск и завершение работы виртуальных машинStart and shut down virtual machines

  1. Чтобы запустить определенную виртуальную машину, выполните следующую команду с указанием имени виртуальной машины:To start a particular virtual machine, run the following command with name of the virtual machine:
Start-VM -Name <virtual machine name>
  1. Чтобы запустить все отключенные на данный момент виртуальные машины, получить список этих машин и передать список команде Start-VM, используется следующая команда:To start all currently powered off virtual machines, get a list of those machines and pipe the list to the Start-VM command:
Get-VM | where {$_.State -eq 'Off'} | Start-VM
  1. Чтобы завершить работу всех работающих виртуальных машин, запустите это:To shut down all running virtual machines, run this:
Get-VM | where {$_.State -eq 'Running'} | Stop-VM

Создание контрольной точки виртуальной машиныCreate a VM checkpoint

Чтобы создать контрольную точку с помощью PowerShell, выберите нужную виртуальную машину, используя команду Get-VM, и передайте ее в команду Checkpoint-VM.To create a checkpoint using PowerShell, select the virtual machine using the Get-VM command and pipe this to the Checkpoint-VM command. В заключение присвойте контрольной точке имя, используя команду -SnapshotName.Finally give the checkpoint a name using -SnapshotName. Полностью команда выглядит так:The complete command looks like the following:

Get-VM -Name <VM Name> | Checkpoint-VM -SnapshotName <name for snapshot>

Создание новой виртуальной машиныCreate a new virtual machine

Следующий пример демонстрирует создание виртуальной машины в интегрированной среде сценариев (ISE) PowerShell.The following example shows how to create a new virtual machine in the PowerShell Integrated Scripting Environment (ISE). Это простой пример. Его можно усложнить, добавив дополнительные функции PowerShell и расширенные сценарии развертывания виртуальной машины.This is a simple example and could be expanded on to include additional PowerShell features and more advanced VM deployments.

  1. Чтобы открыть среду ISE PowerShell, нажмите кнопку "Пуск" и введите PowerShell ISE.To open the PowerShell ISE click on start, type PowerShell ISE.
  2. Запустите указанный ниже код для создания виртуальной машины.Run the following code to create a virtual machine. Подробные сведения о команде New-VM см. в документации по команде New-VM.See the New-VM documentation for detailed information on the New-VM command.
 $VMName = "VMNAME"

 $VM = @{
     Name = $VMName
     MemoryStartupBytes = 2147483648
     Generation = 2
     NewVHDPath = "C:\Virtual Machines\$VMName\$VMName.vhdx"
     NewVHDSizeBytes = 53687091200
     BootDevice = "VHD"
     Path = "C:\Virtual Machines\$VMName"
     SwitchName = (Get-VMSwitch).Name
 }

 New-VM @VM

Подведение итогов и справочные материалыWrap up and References

Этот документ позволяет ознакомиться с модулем PowerShell Hyper-V на примере некоторых простых шагов, а также отдельными примерами сценариев.This document has shown some simple steps to explorer the Hyper-V PowerShell module as well as some sample scenarios. Дополнительные сведения о модуле PowerShell для Hyper-V см. в справочнике по командлетам Windows PowerShell для Hyper-V.For more information on the Hyper-V PowerShell module, see the Hyper-V Cmdlets in Windows PowerShell reference.