Стаття присвячена особливостям віртуальних машин Hyper-V з консолі PowerShell. Ми розглянемо створення віртуальних комутаторів та віртуальних машин, зміна налаштувань VM та управління ними. Для автоматизації різних завдань ви можете використовувати розглянуті команди для ручного контролю над вашим VM або в сценарії PowerShell для автоматизації різних завдань.
Зміст:
- Встановлення ролі Hyper-V у Windows Server та Windows 10
- Створіть віртуальний перемикач Hyper-V за допомогою PowerShell
- Створення та зміна налаштувань віртуальної машини Hyper-V за допомогою PowerShell
- Ми використовуємо PowerShell для контролю віртуальних машин Hyper-V
Встановлення ролі Hyper-V у Windows Server та Windows 10
Для встановлення ролі Hyper-V хост повинен мати процесор, який підтримує віртуалізацію за допомогою SLAT. Windows Server використовує команду:
Встановити -windowsfeature -name hyper -v -includemanagementtools -restart
У настільних виданнях (Windows 10 та 11) роль Hyper-V встановлюється наступним чином:
Увімкнути -windowsoptionalfeature -online -featurename microsoft -hyper -v -ll
Для управління хостом Hyper-V на комп’ютері слід встановити модуль Hyper-V. Повний список команд у модулі (залежить від версії Windows) може відображатися наступним чином:
Get-Command -mule Hyper-V
У Windows Server 2022 в модулі Hyper-V 245 Commander доступний.
Ви можете відобразити повний список налаштувань хоста Hyper-V за допомогою команди:
Get-vmhost | fl *
Для відображення лише інформації про кількість доступних ядра та оперативної пам’яті:
Get-vmhost | Виберіть LogicalProcessorcount, MemoryCapacy
Щоб змінити налаштування хоста Hyper-V. Наступна команда змінить шляхи, зберігаючи віртуальні диски та файли конфігурації VM:
SET -VMHOST -VIRTUALMACHINEPATH D: \ VM -VIRTUALHARDSKPATH 'D: \ VM \ VHD'
Створіть віртуальний перемикач Hyper-V за допомогою PowerShell
Перш за все, на сервері Hyper-V потрібно створити віртуальний перемикач. Віртуальні машини зможуть отримати доступ до мережі лише через віртуальний перемикач.
Ми відобразимо список доступних фізичних адаптерів на хості Hyper-V:
Get-Netadapter | Що $ _.Статус -eq "вгору"
Створіть віртуальний зовнішній перемикач:
New -vmswitch -name "extvmswitch" -allowmanagementos $ true -netadaptername Ethernet0 -switchtype зовнішній
Створення та зміна налаштувань віртуальної машини Hyper-V за допомогою PowerShell
Для створення нової віртуальної машини використовується команда New-VM. У цьому прикладі ми створимо новий другий vm з 1 ГБ оперативної пам’яті та диска VHDX 5 Гб.
$ Vmname = "spb-dmz2"
$ Vm = @
Ім'я = $ vmname
MemoryStartupbytes = 1 Гб
Покоління = 2
Newvhdpath = "c: \ hv \ $ vmname \ $ vmname.Vhdx "
Newvhdsiziebytes = 5 Гб
Bootdevice = "vhd"
Path = "C: \ hv \ $ vmname"
Switchname = "extvmswitch"
New-vm @vm
Приклад використання PowerShell для створення віртуальної машини з Windows 11 на Hyper-V.
Розглянемо команди, які можна використовувати для зміни налаштувань віртуальних машин.
Збільшити розмір оперативної пам’яті для VM:
Get-vm -name spb-dmz1 | Встановити -vmmmemory -startupbytes 2gb
Змініть кількість VCPU:
Set-vmprocessor spb-dmz1 -count 2
Дозвольте автоматичному запуску для віртуальної машини Hyper-V:
Get-vm -vmname spb-dmz1 | Set -vm -AutomaticsStartAction Start
Щоб підключити додатковий віртуальний диск у VM, спочатку потрібно його створити:
Новий -vhd -path 'c: \ vm \ test1.vhdx '-sizebytes 2gb
А потім підключіться до VM:
Додати -vmharddiskdrive -vmname spb -dmz1 -path 'c: \ vm \ test1.Vhdx '
Ми використовуємо PowerShell для контролю віртуальних машин Hyper-V
Принесіть список віртуальних машин на хост Hyper-V:
Get-vm
Команда повернула список VM з декількома основними характеристиками. Щоб отримати всі властивості ВМ, виконайте:
Get-vm -name spb-dmz1 | Fl *
Отримайте лише включений VM:
Get-vm | Що $ _.State -eq 'running'
Запустіть віртуальну машину:
Start-vm -name spb-app01
Запустіть усі вимкнено віртуальні машини:
Get-vm | Що $ _.State -eq 'Off' | Start-vm
Вимкніть VM (правильне відключення через гостьову ОС):
Стоп-VM -name spb-app01
Щоб вимкнути VM Power, використовується клавіша Turnoff:
Зупинка -vm -name spb -App01 -Turnoff
Підключіть файл ISO до віртуального пристрою CD/DVD:
Set -vmdvdrive -vmnamname spb -app01 -path c: \ iso \ winsrv2022.ISO
https: // winitpro.ru/index.PHP/2014/06/26/kak-napryamuyu-probrosit-usb-v-virtualnuyu-mashinu-hyper-v/
Щоб перенести всі файли VM на муху на інший диск, використовуйте команду:
Move-VmStorage SPB-App01 -DestinationStoragePath D: \ vm \ spb-App01
Ви можете збільшити або стиснути віртуальний диск за допомогою команди RUSICE-VHD:
Змінити розмір -vhd -path 'c: \ vm \ fs01.vhdx '-sizebytes 50 Гб
Створіть контрольну точку (знімок) вказаного VM:
Get-vm -name spb-app01 | Контрольна точка -Vm -SnapShotName "Перед встановленням патч"
Принесіть список доступних контрольних пунктів:
Поверніть стан ВМ з попереднього пропуску:
Відновити -vmcheckpoint -name "перед встановленням патч" -vmname spb -app01 -confirm: $ fals
Видаліть знімок:
Видаліть -VmCheckPoint -vmname spb -App01 -Name "Перед встановленням патч"
Експорт, імпорт та клонування VM детально описані у статті за посиланням:
Експорт -vm -name spb -App01 -path 'c: \ vhd \ export' -captureLivestate capturecrashconsisttateate
Отримайте IP -адреси гостьових ОС Віртуальні машини:
Get-vm | Виберіть -sexpandproperty networkadapters | Виберіть VMName, ipaddress, статус
Підключіться до консолі певної віртуальної машини:
Vmconnect.Exe LocalHost SPB-APP01
Щоб підключити сеанс PowerShell безпосередньо до гостьової ОС віртуальних машин через шину VMBUS, ви можете використовувати PowerShell Direct (доступний для Guest OS Windows Server, Windows 10 та New. Ви можете використовувати командири Invoke-Command (для запуску сценаріїв) та ENTER-PSSESSION (для введення інтерактивного сеансу PowerShell):
Invoke-Comand -vmname spb-app01 -scriptblock get-process
ENTER-PSSESSION -VMNAME SPB-APP01
Щоб скопіювати файли з хоста Hyper-V у віртуальну машину через PowerShell Direct, використовуйте:
$ Pssession1 = new-pssession-vmname spb-app01 -credical (get-crediential)
Копія -Item -Tossision $ PSSSISIZE1 -PATH C: \ ISO \ WIN10.ISO -Destination D: \ iso \
Ви можете використовувати PowerShell для локального або дистанційного керування віртуальними машинами на хостах Hyper-V (як на сервері Windows у повному графічному або основному режимах, так і на безкоштовному сервері Windows Hyper-V, або Windows 10) як окремо, так і крім додавання Графіці Hyper-V Manager та Windows Admin Center.