Kui töötate Windowsis virtualiseerimisega, siis varem või hiljem automatiseerite ülesandeid. PowerShell ja Hyper-V sobivad ideaalselt : alates virtuaalmasinate käivitamisest või sulgemisest kuni nende eksportimise, ressursside mõõtmise või virtuaalsete võrkude loomiseni – kõike saab juhtida ilma graafilist konsooli avamata.
Järgmistes ridades vaatame näidete ja parimate tavade abil üle, kuidas PowerShelli abil Hyper-V-d põhjalikult hallata . Näete olulisi käske, virtuaalmasinate loomist ja konfigureerimist, eksporti ja importi, hulgifiltreerimist, mõõdikuid, võrgustamist ja salvestust, samuti kasulikke skripte platvormi oleku ja varundusvõimaluste aruandluseks suurema meelerahu tagamiseks.
Mis on PowerShell ja miks seda Hyper-V-ga kasutada?
PowerShell on Microsofti .NET-põhine automatiseerimis- ja skriptimisraamistik. See ühendab käsuinterpretaatori võimsa skriptimiskeelega , mis sobib ideaalselt administreerimiseks Windowsis, macOS-is ja Linuxis.
Selle käsud (cmdlet-käsud) võimaldavad teil toiminguid aheldada ja luua korduvkasutatavaid skripte. Microsoft pakub sadu põhilisi cmdlet-käske ja Hyper-V mooduliga on teil kõik vajalik hostide, virtuaalmasinate, võrgu ja salvestusruumi haldamiseks konsoolist.

PowerShelli avamine ja kasutamine Hyper-V hostides
Kui hostil on graafiline kasutajaliides, avage menüü Start, otsige PowerShelli ja käivitage „Käivita administraatorina ”. Server Core'i või Hyper-V Serveri installide korral tippige PowerShelli seansi alustamiseks käsureale powershell .
Server Core'is kaugjuurdepääsu saamiseks Remote Desktopi abil kasutage käsku sconfig (valik 7) ja kui peate konsooli juurde naasma, siis valik 15 viib teid tagasi cmd.exe juurde . Ärge unustage lubada RDP-d hostil, millega ühendute.
Kaughaldus ilma RDP-ta on veelgi mugavam: installige tööriistad oma tööjaama käsuga Install-WindowsFeature RSAT-Hyper-V-Tools ja lisage cmdlet-käskudesse (Get-VM, Start-VM jne) käsk -ComputerName , et need sihtmasinal töötaksid. Saate hallata mitut hosti ilma kaugtöölaudade vahel vahetamata.
Olulised Hyper-V cmdlet-id näidetega
Kui te ei suuda käsku või selle süntaksit meenutada, vaadake kataloogi. Get-Command loetleb saadaolevad cmdlet-id, funktsioonid ja aliased ning saate filtreerida mustri järgi:
Get-Command -Module Hyper-V
Get-Command *-VM
Get-Command *-VHD*
Abi, näidete ja parameetrite saamiseks selgitab Get-Help süntaksit ja kuvab isegi praktilisi näiteid:
Get-Help Get-VM
VM-i inventuur ja elutsükkel
Kohaliku või kaugmasina virtuaalmasinate vaatamiseks on esimene samm käsk Get-VM :
Get-VM
Get-VM -ComputerName Server1
Käivitage konkreetsed virtuaalmasinad või partiid. Nimes saate kasutada metamärke :
Start-VM -Name 'Windows Server 2016'
Start-VM -Name 'Hyper-V*'
Lülitab arvuti korralikult välja (või sunnib lülituma, kui see ei reageeri). Stop-VM toetab äärmuslikel juhtudel käske -TurnOff ja -Force ning Save-VM lülitab oleku talveunne.
Stop-VM -Name 'Windows Server 2016'
Stop-VM -Name 'Hyper-V*' -TurnOff
Stop-VM -Name 'Windows Server 2016' -Force
Save-VM -Name 'Windows Server 2016'
Get-VM -Name 'Hyper-V*' | Save-VM
Külalisoperatsioonisüsteemi sujuvaks sulgemiseks on Invoke-VMSHutdown ideaalne, kui integratsioon võimaldab:
Invoke-VMShutdown -VMName 'testvps' -Force
Kontrollpunktid (hetktõmmised)
Kontrollpunktid on enne kriitiliste muudatuste tegemist hindamatud. Checkpoint-VM loob kontrollpunkti ja Get-VMSnapshot kontrollib seda.
Checkpoint-VM -Name 'Windows Server 2016' -SnapshotName 'Update1'
Get-VMSnapshot -VMName 'Windows Server 2016'
Hetktõmmiste mustri järgi puhastamiseks kasutage ahelmeetodit torujuhtme abil. `Remove-VMSnapshot` kustutab teie määratud väärtuse :
Get-VM 'Hyper-V Server 2012' | Remove-VMSnapshot -Name 'Testing*'
Virtuaalsed kettad (VHD/VHDX)
Kontrollib failide teid ja tervist. Test-VHD kinnitab VHD olemasolu ja kehtivust :
Test-VHD -Path 'C:\Testing.vhd'
VHD loomiseks või ühendamiseks kasutage New-VHD ja Add-VMHardDiskDrive käske , et automatiseerida loomine/ühendamine. Fikseeritud suurus on hea tava jõudlustundlike töökoormuste puhul.
New-VHD -Path 'D:\hyper-v\virtual hard disks\wstest.vhdx' -SizeBytes 60GB -Fixed
Add-VMHardDiskDrive -VMName 'WSTEST' -Path 'D:\hyper-v\virtual hard disks\wstest.vhdx'
Mõõdikud ja võrk
Luba ressursimõõtmine ja kontrolli virtuaalmasinate tarbimist. Enable-VMResourceMetering + Measure-VM annab sulle teavet protsessori, muutmälu, ketta ja võrgu kasutamise kohta.
Enable-VMResourceMetering -VMName 'Windows Server 2016'
Measure-VM -VMName 'Windows Server 2016'
Virtuaalsete adapterite loetlemiseks lisage haldus. Get-VMNetworkAdapter lisab virtuaalmasinad ja hosti enda valikuga -All:
Get-VMNetworkAdapter -All
Konfiguratsiooni versioon, protsessid ja filtreerimine
Pärast hosti värskendamist värskendab see vajadusel ka virtuaalmasina versiooni. Update-VMVersion teeb seda turvaliselt.
Update-VMVersion -Name 'TestVM'
Kitsaskohtade diagnoosimiseks kasutage protsesside cmdlett-käske. Get-Process, Stop-Process, Start-Process, Wait-Process ja Debug-Process annavad teile kontrolli.
Get-Process -Id 8892
Get-Process WINWORD | Format-List *
Start-Process -FilePath 'notepad.exe'
Start-Process -FilePath 'powershell' -Verb RunAs
Stop-Process -Name 'notepad'
Stop-Process -Id 5052
Where-Object filtreerib mis tahes kollektsiooni. Kasutage seda teenuste, cmdlettide või protsessidega, et säilitada ainult see, mis on oluline.
Get-Service | Where-Object {$_.Status -eq 'Stopped'}
Get-Command | Where-Object {$_.Name -like '*wait*'}
Get-Process | Where-Object {$_.ProcessName -Match '^sys.*'}
Virtuaalsete masinate loomine ja konfigureerimine PowerShelli abil
2. põlvkonna virtuaalmasina loomine uue VHDX-i ja määratud võrguga toimub ühe käsuga. `new-VM` võimaldab teil mälu, ketta, tee ja kommutaatori ühe sammuga defineerida :
New-VM -Name 'WSTEST' -MemoryStartupBytes 2GB -Generation 2 \
-NewVHDPath 'D:\hyper-v\virtual hard disks\WSTEST.vhdx' \
-NewVHDSizeBytes 60GB -SwitchName 'ExternalSwitch'
Kui vajate ISO-lt käivitamiseks virtuaalset DVD-d, lisage kontroller ja draiv. Pidage meeles, et kontrolleri number ja asukoht peaksid sobima teie paigutusega.
Add-VMSCSIController -VMName 'WSTEST'
Add-VMDvdDrive -VMName 'WSTEST' -ControllerNumber 1 -ControllerLocation 0 -Path 'D:\ISO\my.iso'
Samuti saate ette valmistada fikseeritud kettaid ja need ühendada. Fikseeritud VHDX-id vähendavad fragmentatsiooni ja latentsust nõudlikes I/O-keskkondades.
New-VHD -Path 'D:\hyper-v\virtual hard disks\wstest.vhdx' -SizeBytes 60GB -Fixed
Add-VMHardDiskDrive -VMName 'WSTEST' -Path 'D:\hyper-v\virtual hard disks\wstest.vhdx'
Olemasoleva VHD-ga stsenaariumide korral määrake -VHDPath ja kaughalduse kasutamisel lisage -ComputerName . Atribuut -BootDevice võimaldab teil valida VHD, ISO või võrgukäivituse vahel.
New-VM -ComputerName 'Server1' -Name 'VM1' -MemoryStartupBytes 4GB \
-BootDevice VHD -VHDPath '.\VMs\Win10.vhdx' -Path '.\VMData' \
-Generation 2 -SwitchName 'ExternalSwitch'
Näide PowerShelli ISE-s funktsiooni "splatting" kasutamisest, et muuta see puhtaks ja korratavaks. See sobib ideaalselt mallide loomiseks:
$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
Täiustatud haldus: liikumised, import ja eksport
Virtuaalmasina teisaldamiseks hostide vahel toetab Move-VM teisaldamist salvestusruumiga või ilma ning töötab suurepäraselt, kui allikas on SMB-l:
Move-VM -ComputerName 'Server1' -Name 'VM1' -DestinationHost 'Server2'
Move-VM -ComputerName 'Server1' -Name 'VM1' -DestinationHost 'Server2' \
-IncludeStorage -DestinationStoragePath 'D:\VM_name'
Eksportimine loob täieliku koopia (konfiguratsioon, VHD-d ja hetktõmmised). Export-VM on kasulik arhiveerimiseks, testimiseks või ad-hoc migreerimiseks.
Export-VM -ComputerName 'Server1' -Name 'VM1' -Path 'D:\'
Get-VM | Export-VM -Path 'C:\'
Importimisel on kolm režiimi: registreeri kohapeal (samad failid ja ID), taasta (kopeeri uuele teele, säilitades ID) ja kopeeri (kopeeri uue ID-ga). Valige ID-konfliktide ja sihtkoha põhjal:
# Registrar in situ (elimina antes la VM original con el mismo ID)
Get-VM 'DemoVM' | Remove-VM
Import-VM -Path 'C:\\Virtual Hard Disks\\Exported VMs\\DemoVM\\Virtual Machines\\{GUID}.vmcx'
# Restaurar a nuevas rutas, conservando ID
Import-VM -Path 'C:\\Virtual Hard Disks\\Exported VMs\\Hyper-V Server 2012\\Virtual Machines\\{GUID}.vmcx' \
-Copy -VhdDestinationPath 'C:\\Program Files\\Imported VMs\\VHD Files' \
-VirtualMachinePath 'C:\\Program Files\\Imported VMs\\VM Files'
# Copiar con nuevo ID (importable varias veces en el mismo host)
Import-VM -Path 'C:\\Virtual Hard Disks\\Exported VMs\\DemoVM\\Virtual Machines\\{GUID}.vmcx' \
-Copy -GenerateNewId
Kui töötate Azure Localiga (Windows Server 2019/2022 ja versioonid nagu 2311.2 ja hilisemad), on kaughaldus valikuga -ComputerName normiks: inventuur, käivitamine/peatamine, kontrollpunktid, import/eksport ja teisaldamine teostatakse kõik teie administreerimisarvutist.
Võrk, salvestusruum ja ressursid: mälu ja protsessor
Loo lülitid virtuaalmasinate isoleerimiseks või ühendamiseks kohtvõrguga. New-VMSwitch toetab ribalaiuse režiime ja QoS-i:
New-VMSwitch 'QoS Switch' -NetAdapterName 'Wired Ethernet Connection 3' -MinimumBandwidthMode Weight
Lisage virtuaalsetele masinatele virtuaalsed võrgukaardid ja ühendage need vastava kommutaatoriga. Add-VMNetworkAdapter on teie liitlane virtuaalmasinate võrgus.
Add-VMNetworkAdapter -ComputerName 'Server1' -VMName 'VM1' -Name 'Redmond NIC1'
Add-VMNetworkAdapter -ComputerName 'Server1' -VMName 'VM1' -SwitchName 'Network'
Dünaamiline mälu optimeerib tihedust kontrolli kaotamata. Set-VMMemory reguleerib miinimume, algust, maksimume, prioriteeti ja puhvrit:
Set-VMMemory -ComputerName 'Server1' -Name 'VM1' -DynamicMemoryEnabled $true \
-MinimumBytes 64MB -StartupBytes 256MB -MaximumBytes 2GB -Priority 80 -Buffer 25
Määrake vCPU-dele piirangud ja reserveeringud. Set-VMProcessor määratleb iga virtuaalmasina arvu, reserveeringu, maksimumi ja suhtelise kaalu:
Set-VMProcessor -ComputerName 'Server1' -Name 'VM1' -Count 2 -Reserve 10 -Maximum 75 -RelativeWeight 200
Uute ketaste loomiseks sobib New-VHD nii dünaamiliste kui ka staatiliste VHD/VHDX stsenaariumide jaoks. Soovitud virtuaalmasinaga ühendamiseks kombineeri see Add-VMHardDiskDrive'iga .
Masstoimingud ja filtreerimine
Hyper-V mooduli käskude vaatamine interaktiivsel ruudustikus on väga kasulik. Out-GridView aitab teil kontrollida saadaolevaid käske ja parameetreid:
Get-Command -Module Hyper-V | Out-GridView
Laoseisude filtreerimiseks kasutage oleku järgi filtrit. Where-Object võimaldab teil töötavaid või suletud virtuaalmasinaid lühidalt näha:
Get-VM | Where-Object {$_.State -eq 'Running'}
Get-VM | Where-Object {$_.State -eq 'Off'}
Käivitage kõik väljalülitatud virtuaalmasinad või peatage töötavad virtuaalmasinad konveierite abil. Ideaalne ajastatud ülesannete jaoks.
Get-VM | Where-Object {$_.State -eq 'Off'} | Start-VM
Get-VM | Where-Object {$_.State -eq 'Running'} | Stop-VM
Ümbernimetamine ja puhastamine on samuti lihtsad. Rename-VM ja Remove-VM aitavad teil ümbermärgistada ja eemaldada (pidage meeles, et Remove-VM ei kustuta VHD-sid):
Rename-VM -ComputerName 'Server1' -Name 'VM1' -NewName 'VM2'
Get-VM -Name 'VM2'
Remove-VM -Name 'VM2'
Klastris eemaldage vajadusel terveid gruppe. `Remove-ClusterGroup -RemoveResources` puhastab virtuaalmasina ja selle klastri ressursid.
Get-ClusterGroup
Remove-ClusterGroup -RemoveResources -Name 'VM1'
Jälgimine ja varundamine: skriptid ja tööriistad
Hyper-V tervise auditeerimiseks HTML-aruannete abil genereerib Serhat Akinci skript põhjaliku keskkonnaaruande , mille saab e-postiga saata. Laadige see alla ja vaadake näidisväljundit:
Allalaadimislink · Näidisaruanne
Kui kasutate Hyper-V replikat, jälgib Sangeethi skript replikatsiooni olekut üksikutel sõlmedel või klastritel ja edastab levitamiseks valmis HTML-aruande:
Laadige alla replikatsiooni terviseteabe saatja
Andmekaitse osas on olemas virtuaalmasinatele mõeldud lahendused, näiteks NAKIVO Backup & Replication (VMware, Hyper-V, Nutanix, AWS EC2, Linux, Windows ja Microsoft 365) ja Vinchin Backup & Recovery (Proxmox, VMware, Hyper-V, XenServer, XCP-ng, oVirt, RHV jne). Need pakuvad agendita varundamist, kohest taastamist ja V2V migratsiooni ning hõlbustavad tsentraliseeritud poliitikaid ja ajastamist riskide minimeerimiseks.
Pidage meeles, et Export-VM ja Import-VM on ajutised alternatiivid arhiveerimiseks, testimiseks ja lihtsaks taastamiseks, kuid need ei asenda põhjalikku varundamist koos deduplikatsiooni, krüptimise ja tihendamisega . Eksportimine nõuab rohkem käsitsi sekkumist ja skaleerub suurtes keskkondades vähem tõhusalt.
Nüüd on teil praktiline juhend Hyper-V konsoolile toomiseks: cmdlettide avastamine, virtuaalmasinate loomine ja teisaldamine, ressursside mõõtmine, võrgu ja salvestusruumi peenhäälestamine, hulgifiltreerimine ja tervisearuannete koostamine . PowerShelli ökosüsteem pakub teile kiirust ja täpsust; kombineerige see heade kopeerimispoliitikate ja jälgimisskriptidega ning teil on tugev ja skaleeritav platvorm.