Hyper-V: создание и управление виртуальными машинами в Windows Server

Server 24.03.2026 15 мин чтения
ЕС
Евгений Семёнов
Генеральный директор ООО АйТи Фреш · 15+ лет в IT
Hyper-V: создание и управление виртуальными машинами

Hyper-V — встроенный гипервизор Microsoft, позволяющий запускать виртуальные машины прямо на Windows Server без установки стороннего ПО. Это основной инструмент виртуализации в корпоративной среде Windows: он используется для консолидации серверов, тестовых стендов, изолированных сред разработки и аварийного восстановления. В этой статье разберём полный цикл работы с Hyper-V — от установки роли до управления ВМ через PowerShell.

Установка роли Hyper-V в Windows Server

Прежде чем создавать виртуальные машины, необходимо установить роль Hyper-V на сервере. Убедитесь, что процессор поддерживает аппаратную виртуализацию (Intel VT-x / AMD-V) и что она включена в BIOS/UEFI. Для установки через PowerShell выполните:

Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart

После перезагрузки сервер будет готов к работе. Убедиться в успешной установке можно командой:

Get-WindowsFeature Hyper-V
Совет: На рабочей станции Windows 10/11 Pro используйте другую команду: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All. Hyper-V недоступен в редакции Home.

Для просмотра всех доступных командлетов модуля Hyper-V выполните Get-Command -Module hyper-v — их более 200. Информацию о хосте виртуализации получите так:

Get-VMHost | Select-Object LogicalProcessorCount, MemoryCapacity

Рекомендуется сразу настроить пути по умолчанию для хранения файлов ВМ и виртуальных дисков, чтобы не указывать их при каждом создании машины:

Set-VMHost -VirtualMachinePath D:\VM -VirtualHardDiskPath 'D:\VM\VHD'

Создание виртуального коммутатора

Виртуальный коммутатор (vSwitch) — это программный сетевой мост, через который виртуальные машины получают доступ к сети. Без него ВМ будут изолированы. Существует три типа коммутаторов: External (доступ к физической сети), Internal (связь ВМ между собой и с хостом) и Private (только между ВМ).

Чтобы создать внешний коммутатор, сначала определите доступные физические адаптеры:

Get-NetAdapter | Where-Object { $_.Status -eq "Up" }

Затем создайте коммутатор, привязав его к нужному адаптеру:

New-VMSwitch -Name "ExtVMSwitch" -AllowManagementOS $True -NetAdapterName "Ethernet0" -SwitchType External
Внимание: При создании внешнего коммутатора сетевое подключение хоста кратковременно прерывается. Выполняйте эту операцию при физическом доступе к серверу или через IPMI/iLO/iDRAC, а не через RDP.

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

Создание ВМ через PowerShell даёт полный контроль над параметрами. Рекомендуется использовать машины второго поколения (Generation 2) — они поддерживают UEFI, Secure Boot и работают быстрее благодаря SCSI-контроллеру:

$VMName = "SRV-APP01"
$VM = @{
  Name               = $VMName
  MemoryStartupBytes = 4GB
  Generation         = 2
  NewVHDPath         = "D:\VM\$VMName\$VMName.vhdx"
  NewVHDSizeBytes    = 60GB
  BootDevice         = "VHD"
  Path               = "D:\VM\$VMName"
  SwitchName         = "ExtVMSwitch"
}
New-VM @VM

Эта команда создаёт ВМ с 4 ГБ RAM, динамическим диском до 60 ГБ и подключением к внешнему коммутатору. Теперь подключим ISO-образ для установки ОС:

Set-VMDvdDrive -VMName SRV-APP01 -Path "D:\ISO\WinSrv2022.iso"
Совет: Для Generation 2 нужно отключить Secure Boot при установке Linux: Set-VMFirmware SRV-APP01 -EnableSecureBoot Off.

Настройка ресурсов ВМ: память и процессор

После создания виртуальной машины можно изменить выделенные ей ресурсы. Для изменения объёма оперативной памяти:

Set-VMMemory -VMName SRV-APP01 -StartupBytes 8GB

Для включения динамической памяти, которая позволяет Hyper-V автоматически распределять RAM между ВМ в зависимости от нагрузки:

Set-VMMemory -VMName SRV-APP01 -DynamicMemoryEnabled $true -MinimumBytes 2GB -StartupBytes 4GB -MaximumBytes 8GB

Назначение количества виртуальных процессоров:

Set-VMProcessor -VMName SRV-APP01 -Count 4
Внимание: Не назначайте ВМ больше vCPU, чем логических процессоров на хосте. Переподписка CPU допустима для нетребовательных нагрузок, но может привести к деградации производительности.

Для добавления ещё одного виртуального жёсткого диска:

New-VHD -Path "D:\VM\SRV-APP01\data.vhdx" -SizeBytes 100GB -Dynamic
Add-VMHardDiskDrive -VMName SRV-APP01 -Path "D:\VM\SRV-APP01\data.vhdx"

Запуск, остановка и базовое управление ВМ

Основные операции с виртуальными машинами выполняются следующими командами:

# Запустить ВМ
Start-VM -Name SRV-APP01

# Корректное выключение (через Integration Services)
Stop-VM -Name SRV-APP01

# Принудительное выключение (аналог выдёргивания кабеля питания)
Stop-VM -Name SRV-APP01 -TurnOff

# Приостановить (пауза)
Suspend-VM -Name SRV-APP01

# Возобновить
Resume-VM -Name SRV-APP01

# Перезагрузка
Restart-VM -Name SRV-APP01 -Force

Для просмотра состояния всех ВМ на хосте:

Get-VM | Format-Table Name, State, CPUUsage, MemoryAssigned, Uptime -AutoSize

Вывести только работающие машины:

Get-VM | Where-Object { $_.State -eq 'Running' }

Запустить все выключенные ВМ одной командой:

Get-VM | Where-Object { $_.State -eq 'Off' } | Start-VM

Чекпоинты (снапшоты): создание и откат

Чекпоинты позволяют зафиксировать текущее состояние ВМ и при необходимости откатиться к нему. Это незаменимо перед установкой обновлений или изменением конфигурации.

# Создать чекпоинт
Checkpoint-VM -Name SRV-APP01 -SnapshotName "Before KB5034441"

# Список чекпоинтов
Get-VMCheckpoint -VMName SRV-APP01

# Откат к чекпоинту
Restore-VMCheckpoint -VMName SRV-APP01 -Name "Before KB5034441" -Confirm:$false

# Удалить чекпоинт (объединит дифференциальные диски)
Remove-VMCheckpoint -VMName SRV-APP01 -Name "Before KB5034441"
Внимание: Не используйте чекпоинты на продуктивных контроллерах домена Active Directory — это может вызвать проблемы с репликацией USN rollback. Для DC используйте резервное копирование средствами Windows Server Backup.
Совет: В Windows Server 2016+ по умолчанию создаются Production Checkpoints, которые используют VSS внутри гостевой ОС и безопаснее стандартных снапшотов.

Экспорт, импорт и клонирование ВМ

Экспорт создаёт полную копию виртуальной машины, включая конфигурацию, диски и чекпоинты. Это основной способ переноса ВМ между хостами Hyper-V:

# Экспорт ВМ (можно выполнять на работающей машине)
Export-VM -Name SRV-APP01 -Path "E:\Export"

# Импорт ВМ
Import-VM -Path "E:\Export\SRV-APP01\Virtual Machines\*.vmcx"

# Импорт с копированием в новое расположение (для клонирования)
Import-VM -Path "E:\Export\SRV-APP01\Virtual Machines\*.vmcx" `
  -Copy -GenerateNewId `
  -VhdDestinationPath "D:\VM\SRV-APP02" `
  -VirtualMachinePath "D:\VM\SRV-APP02"

При клонировании ВМ с Windows обязательно запустите Sysprep перед экспортом, чтобы избежать конфликта SID:

%WINDIR%\system32\sysprep\sysprep.exe /generalize /shutdown /oobe

После импорта переименуйте клон и смените сетевые параметры:

Rename-VM -VMName "SRV-APP01" -NewName "SRV-APP02"
Set-VMNetworkAdapter -VMName SRV-APP02 -DynamicMacAddress

Автозапуск и порядок загрузки ВМ

По умолчанию при перезагрузке хоста Hyper-V виртуальные машины не запускаются автоматически. Это критично для серверов, на которых работают контроллеры домена, DNS и другие инфраструктурные роли.

# Включить автозапуск
Set-VM -Name SRV-DC01 -AutomaticStartAction Start
Set-VM -Name SRV-DC01 -AutomaticStartDelay 0

# Задержка для прикладных серверов (ждём пока DC поднимется)
Set-VM -Name SRV-APP01 -AutomaticStartAction Start
Set-VM -Name SRV-APP01 -AutomaticStartDelay 120

Просмотр текущих настроек автозапуска для всех ВМ:

Get-VM | Select-Object Name, AutomaticStartAction, AutomaticStartDelay, AutomaticStopAction | Format-Table -AutoSize
Совет: Для параметра AutomaticStopAction рекомендуем ShutDown — корректное завершение через Integration Services. Значение Save сохраняет состояние RAM на диск, а TurnOff принудительно выключает ВМ.

Подключение к консоли ВМ и PowerShell Direct

Для подключения к консоли виртуальной машины через графический интерфейс используйте VMConnect:

vmconnect.exe localhost SRV-APP01

Начиная с Windows Server 2016, доступна технология PowerShell Direct — она позволяет выполнять команды внутри гостевой ОС напрямую через шину виртуализации, без сетевого подключения:

# Интерактивная сессия
Enter-PSSession -VMName SRV-APP01

# Выполнить команду без входа в сессию
Invoke-Command -VMName SRV-APP01 -ScriptBlock { Get-Service | Where-Object Status -eq Running }

# Копирование файла в гостевую ОС
$s = New-PSSession -VMName SRV-APP01 -Credential (Get-Credential)
Copy-Item -ToSession $s -Path "C:\Distrib\agent.msi" -Destination "C:\Temp\"
Совет: PowerShell Direct работает даже если у ВМ нет сетевого подключения. Это удобно для первоначальной настройки ОС сразу после установки.

Мониторинг и получение информации о ВМ

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

# Полная информация о ВМ
Get-VM -Name SRV-APP01 | Format-List *

# IP-адреса всех ВМ (через Integration Services)
Get-VM | Select-Object -ExpandProperty NetworkAdapters |
  Select-Object VMName, IPAddresses, Status

# Информация о виртуальных дисках
Get-VMHardDiskDrive -VMName SRV-APP01 | Get-VHD |
  Select-Object Path, VhdFormat, VhdType, FileSize, Size

# Размер виртуального диска на физическом хранилище
Get-VHD -Path "D:\VM\SRV-APP01\SRV-APP01.vhdx" |
  Select-Object @{N='SizeGB';E={[math]::Round($_.FileSize/1GB,2)}},
                @{N='MaxGB';E={[math]::Round($_.Size/1GB,2)}}

Для изменения размера существующего виртуального диска (только увеличение для VHDX):

Resize-VHD -Path "D:\VM\SRV-APP01\SRV-APP01.vhdx" -SizeBytes 120GB

Перемещение хранилища ВМ без простоя

Hyper-V позволяет переместить файлы виртуальной машины на другой диск без выключения (Live Storage Migration):

Move-VMStorage -VMName SRV-APP01 -DestinationStoragePath "E:\VM\SRV-APP01"

Можно перемещать отдельные компоненты — например, только виртуальный диск:

Move-VMStorage -VMName SRV-APP01 -VHDs @(
  @{
    SourceFilePath = "D:\VM\SRV-APP01\SRV-APP01.vhdx"
    DestinationFilePath = "E:\VM\SRV-APP01\SRV-APP01.vhdx"
  }
)
Совет: Live Storage Migration не требует Failover Clustering и работает на отдельном хосте Hyper-V. Это удобно при замене дисков или перераспределении нагрузки на хранилища.

Практические рекомендации по эксплуатации

На основе опыта администрирования сотен серверов Hyper-V мы собрали ключевые рекомендации:

Официальная документация: Microsoft Learn — Windows Server, Microsoft Learn — PowerShell

Часто задаваемые вопросы

Что такое Hyper-V: создание и управление виртуальными машинами в Windows Server?

Hyper-V: создание и управление виртуальными машинами в Windows Server — это важный аспект системного администрирования, который позволяет настроить и оптимизировать работу IT-инфраструктуры. В данной статье подробно рассматриваются все ключевые моменты.

Как правильно настроить Hyper-V: создание и управление виртуальными машинами в Windows Server?

Для корректной настройки Hyper-V: создание и управление виртуальными машинами в Windows Server необходимо следовать пошаговой инструкции, представленной в статье выше. Важно учитывать особенности вашей инфраструктуры и требования безопасности.

Какие типичные ошибки возникают при работе с Hyper-V: создание и управление виртуальными машинами в Windows Server?

Наиболее частые ошибки при работе с Hyper-V: создание и управление виртуальными машинами в Windows Server: некорректная конфигурация, недостаточные права доступа и несовместимость версий. Рекомендуем обратиться к специалистам ITFresh для профессиональной настройки.

IT-аутсорсинг для бизнеса

ООО АйТи Фреш возьмём это на себя

Развёртывание Hyper-V, миграция физических серверов в виртуальные, настройка отказоустойчивых кластеров, мониторинг и резервное копирование ВМ — всё это мы берём на обслуживание. Сосредоточьтесь на бизнесе, а серверную инфраструктуру доверьте профессионалам.

10+лет опыта
200+серверов
24/7поддержка