Віртуалізація

Віртуальні машини Hyper-V контролю за допомогою PowerShell

Віртуальні машини Hyper-V контролю за допомогою PowerShell

Стаття присвячена особливостям віртуальних машин Hyper-V з консолі PowerShell. Ми розглянемо створення віртуальних комутаторів та віртуальних машин, зміна налаштувань VM та управління ними. Для автоматизації різних завдань ви можете використовувати розглянуті команди для ручного контролю над вашим VM або в сценарії PowerShell для автоматизації різних завдань.

Зміст:

Встановлення ролі 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 "вгору"

Якщо ваш сервер підтримує SR-IOV (одноразовий вхід/вихід (вводу/вивода) віртуалізація), Зверніть увагу, що вам потрібно включити цю опцію під час створення комутатора. Увімкніть sr-iov для існуючого vSwitch не може. Це детальніше описано у статті, ми включаємо підтримку SR-IOV для віртуальних машин Hyper-V.

Створіть віртуальний зовнішній перемикач:

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

Поспішання VM можна вимкнути так.

Підключіть файл ISO до віртуального пристрою CD/DVD:

Set -vmdvdrive -vmnamname spb -app01 -path c: \ iso \ winsrv2022.ISO

Прямий проект USB-диска від хоста Hyper-V до віртуальної машини описаний у статті

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

Щоб створити резервну копію віртуальних машин Hyper-V, ви можете використовувати вбудовану резервну копію Windows Server.

Отримайте 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.

Встановіть яскравість екрана в Windows 10
Ви помітили, що ваші очі втомлюються з довгою роботою за комп’ютером? Причиною може бути неправильні налаштування яскравості екрана. Якщо ви використо...
Інструкції, як оновити систему до нового Windows 11
Ми розповідаємо, як оновити Windows 11. Детальні інструкції як для підтримуваних, так і для непідтримуваних пристроїв.  Коротко про Windows 11 Потенц...
Як максимально спростити встановлення Windows та створити профіль користувача безпосередньо в розподілі
Як максимально прискорити установку Windows? Для цього необхідно встановити SSD-диск і бажано з флеш -накопичувача USB 3.0, підключений до порту USB 3...