De ultieme gids voor het automatiseren van Hyper-V-taken met PowerShell

Laatste update: 08/05/2025
Auteur: Isaac
  • PowerShell Hiermee kunt u Hyper-V-beheer automatiseren en centraliseren, waardoor u fouten vermindert en tijd bespaart.
  • Hyper-V-cmdlets variëren van basisbewerkingen (Boot, afsluiten, snapshots) tot geavanceerd en extern beheer.
  • Dankzij scriptintegratie kunt u eenvoudig routines aanpassen en uitvoeren die specifiek zijn afgestemd op elke virtuele infrastructuur.

Powershell Hyper-V-automatisering

La Virtualisatie is de geworden standaard voor moderne IT-infrastructuur en Hyper-V van Microsoft is een van de meestgebruikte oplossingen door bedrijven van alle omvang. Maar het beheren van tientallen of honderden virtuele machines handmatig kan een titanentaak zijn. De oplossing? De automatisering met behulp van PowerShell, de krachtige native scripting-omgeving van Windowswaarmee u Hyper-V-omgevingen op een eenvoudige en efficiënte manier kunt orkestreren, beheren en optimaliseren.

Als het gebruik van beheerst wordt PowerShell op Hyper-V, wordt een wereld aan mogelijkheden ontdekt voor bespaar tijd, fouten vermijden y vermenigvuldig de productiviteit. Van het direct creëren van virtuele machines tot het beheren van snapshots, het monitoren van bronnen en het beheren op afstand: de mogelijkheden zijn zo breed als de behoeften van elke IT-manager. En het mooiste is: dit alles kan met slechts een paar commando's of aangepaste scripts, zelfs zonder directe toegang tot het bureaublad van de servers.

Waarom Hyper-V automatiseren met PowerShell?

PowerShell Het is niet zomaar een commandoconsole: het is een krachtig automatiseringsframework en beheer dat meer dan 160 native cmdlets integreert, speciaal voor Hyper-V. Met dit aantal gespecialiseerde opdrachten kunt u met elk aspect van de hypervisor interacteren: virtuele machines, switches, schijven, migraties, snapshots, processen, opslagruimte y mucho más.

Het gebruik van PowerShell voor Hyper-V biedt voordelen zoals:

  • Automatisering van repetitieve taken:Door scripts te plannen en uit te voeren die hele clusters beheren, bespaart u uren aan handmatig werk en minimaliseert u de kans op menselijke fouten.
  • Gecentraliseerd beheer op afstand:Het is mogelijk om hosts en VM's te beheren vanaf elke computer, zonder afhankelijk te zijn van de grafische interface.
  • Massale inzet en beheer: Maak, wijzig of verwijder virtuele machines in batches met parameters die aan elk geval zijn aangepast.
  • Integratie met externe systemen: PowerShell-scripts kunnen verbinding maken met systemen backup, monitoring of inventarisatie.

Een van de grootste voordelen van PowerShell is de flexibiliteit en de native integratie in Windows Server en Windows 10/11. Alle Hyper-V-cmdlets kunnen lokaal of op afstand worden gebruikt en zelfs worden gecombineerd tot complexe scripts voor geavanceerde taken.

Aan de slag: vereisten en omgeving

Voordat we beginnen met het automatiseren van taken, is het goed om een ​​aantal belangrijke punten in gedachten te houden:

  • Om PowerShell met Hyper-V te gebruiken, hebt u het volgende nodig: Hyper-V-rol is ingeschakeld op de server of computer vanaf waar het beheerd zal worden.
  • El Hyper-V-module moet geïnstalleerd zijn; Dit gebeurt normaal gesproken automatisch wanneer de rol wordt geactiveerd, maar op clientsystemen kan het met Install-WindowsFeature RSAT-Hyper-V-Tools.
  • Het wordt aanbevolen voer PowerShell uit als beheerder om toestemmingsproblemen bij interactie met virtuele machines te voorkomen.
  • Als u op afstand werkt (een andere host beheert), kan het nodig zijn om Remote Desktop en controleer of het gebruikte account rechten heeft voor Hyper-V op de doelcomputer.
  Hoe kiest u de beste geluidscodecs: een praktische en vergelijkende gids

Om PowerShell te openen zijn er verschillende opties: via de grafische interface door “PowerShell” in Start te typen; vanaf de opdrachtregel (cmd.exe); of gebruik PowerShell ISE als u op zoek bent naar geavanceerde script- en foutopsporingsmogelijkheden.

Hyper-V-cmdlets ontdekken

Een van de eerste twijfels bij het starten is hoe je moet weten welke commando's zijn beschikbaar om Hyper-V te beheren. Het antwoord is:

Get-Command -Module hyper-v

Deze opdracht retourneert een volledig overzicht van alle cmdlets die in de Hyper-V-module zijn ingebouwd. Ze kunnen worden gefilterd of weergegeven in beter beheersbare formaten (tabel, lijst, pop-upvenster) met behulp van Formaat-Tabel, Formaat-Lijst u Out-GridView respectievelijk.

Om gedetailleerde hulp voor een cmdlet te bekijken, doet u het volgende:

Get-Help CmdletName

Voor informatie, syntaxis, parameters en voorbeelden over het weergeven van virtuele machines:

Krijg hulp Krijg VM

Vergeet niet de help bij te werken door het volgende uit te voeren: Update-Help om over de meest recente en nuttige informatie te beschikken.

Basisbeheer: virtuele machines weergeven, starten en afsluiten

Zodra de omgeving herkend is, worden alledaagse handelingen triviaal. Dit zijn enkele essentiële opdrachten voor dagelijks gebruik:

  • Alle virtuele machines weergeven: Get-VM
  • Filter op status: krijg alleen de apparaten die actief zijn of uitgeschakeld zijn:
    • Haal-VM | Waar-Object {$_.State -eq 'Running'}
    • Haal-VM | Waar-Object {$_.State -eq 'Uit'}
  • Zoeken naar een specifieke VM: Haal-VM | Waar-Object {$_.Name -eq 'VMName'}

Virtuele machines starten en afsluiten Het is ook heel direct:

  • Start een VM: Start-VM -Naam 'VMName'
  • Een VM stoppen: Stop-VM -Naam 'VMName'
  • Start alle uitgeschakelde VM's op: Haal-VM | Waar-Object {$_.State -eq 'Uit'} | Start-VM
  • Sluit alle actieve VM's af: Haal-VM | Waar-Object {$_.State -eq 'Running'} | Stop-VM

U kunt ook bulkbewerkingen automatiseren op basis van aangepaste criteria, zoals VM-naam, status of kenmerken.

Geautomatiseerde creatie van virtuele machines in Hyper-V

Een van de grootste tijdsbesparingen komt voort uit de onbeheerde VM-creatie. Met PowerShell kunt u alle belangrijke parameters aanpassen: naam, geheugen, generatie, schijf, locatie, netwerkswitch, enzovoort.

Eenvoudig voorbeeld voor het maken van een Generatie 2 VM met een virtuele harde schijf van 50 GB die aan een specifieke switch is toegewezen:

  Kan Roku worden gebruikt zonder wifi? Ontdek hoe u dit kunt doen

New-VM -Naam «DemoVM» -MemoryStartupBytes 2GB -Generatie 2 -NewVHDPath «C:\Virtual Machines\DemoVM\DemoVM.vhdx» -NewVHDSizeBytes 53687091200 -SwitchName «Extern netwerk»

Er kunnen extra schijven, controllers en dvd-stations worden toegevoegd, en het opstarten vanaf een ISO kan uitgebreid worden geconfigureerd.

Een virtuele switch maken met PowerShell:

New-VMSwitch -Naam “MySwitch” -NetAdapterName “Ethernet”

De aanpassing kan worden opgeschaald naar het maken van scripts die tientallen VM's implementeren met variaties in naam, opslag, netwerk, enz.

hyper-v
Gerelateerd artikel:
Volledige handleiding voor het importeren en exporteren van virtuele machines in Hyper-V

Snapshots en controlepunten: geavanceerd beheer met PowerShell

De controlepunten (snapshots) kunt u de exacte status van een virtuele machine op een bepaald tijdstip vastleggen. Met PowerShell kunt u niet alleen eenvoudig bestanden aanmaken, maar ook volledig beheren: u kunt ze een naam geven, herstellen, exporteren en verwijderen.

  • Standaard controlepunt aanmaken: Controlepunt-VM - Naam 'DemoVM'
  • Maak een controlepunt met een aangepaste naam: Controlepunt-VM -Naam 'DemoVM' -SnapshotName «BeforeUpdate»
  • Controleer punten voor een virtuele machine: Get-VMCheckpoint -VMName 'DemoVM'
  • Een controlepunt herstellen: Restore-VMCheckpoint -Naam 'DemoVM – Test' -VMName 'DemoVM' -Bevestig:$false
  • Een controlepunt hernoemen: Hernoemen-VMCheckpoint -VMName 'DemoVM' -Name 'OldName' -NewName 'NewName'
  • Momentopname verwijderen: Verwijderen-VMCheckpoint -VMName 'DemoVM' -Name 'SnapshotObsolete'

Er drie soorten controlepunten:

  • Standaard: RAM- en schijfstatus vastleggen; nuttig, maar kan de consistentie van sommige services beïnvloeden.
  • productie: Maakt gebruik van Volume Shadow Copy Service (VSS), ideaal voor productieomgevingen.
  • Alleen productie: Hetzelfde als Productie, maar als deze faalt, wordt er niet teruggevallen naar Standaard.

De configuratie van het controlepunttype per VM gebeurt met:

Set-VM -Naam 'DemoVM' -CheckpointType Productie

Het wordt aanbevolen om controlepunten regelmatig te valideren en op te schonen om ophoping en mogelijke prestatieproblemen te voorkomen.

kloon virtualbox VM
Gerelateerd artikel:
Hoe u virtuele schijven tussen formaten kunt converteren met VBoxManage en andere tools

Geavanceerde bewerkingen: migraties, back-ups en exporten

La levende migratie Met Hyper-V beschikt u over een van de krachtigste mogelijkheden: u kunt virtuele machines tussen hosts verplaatsen zonder ze te stoppen. Hiervoor is PowerShell essentieel:

Move-VM -Naam 'DemoVM' -DestinationHost 'DestinationHost'

Opties zoals opslag, bestemmingsroutes of toegewezen bronnen kunnen worden aangepast.

  Windows-beveiligingscontrole met behulp van auditpol en wevtutil

naar een VM exporteren compleet met zijn configuratie en schijven is de meest effectieve:

Export-VM 'DemoVM' -Pad «F:\Backups» -CopyState

Controlepunten kunnen ook afzonderlijk worden geëxporteerd om taken te vergemakkelijken ramp herstel:

Export-VMCheckpoint -VMName 'DemoVM' -Naam 'BeforeUpdate' -Pad 'F:\Snapshots'

De huidige status van een virtuele machine kan worden opgeslagen met:

Opslaan-VM 'DemoVM'

Netwerk-, opslag- en VM-bronnen beheren

PowerShell is even effectief voor het bewaken en wijzigen van netwerk- en opslagcomponenten:

  • Virtuele netwerkadapters: Get-VMNetworkAdapter -VMName 'DemoVM'
  • VHDX-schijven maken en koppelen: Nieuwe VHD - Pad 'C:\VMs\DiscoExtra.vhdx' - Grootte bytes 60 GB - Vast
  • Add-VMHardDiskDrive -VMName 'DemoVM' -Pad 'C:\VMs\DiscoExtra.vhdx'

De status en gezondheid van virtuele schijven kunt u controleren met:

Test-VHD - Pad 'C:\VMs\DiscoExtra.vhdx'

Bovendien kunnen VM-bronnen worden bewaakt om knelpunten te identificeren:

  • CPU-, RAM-, schijf- en netwerkgebruik: Meet-VM -VMName 'DemoVM'
  • Activeer bronmeting: Enable-VMResourceMetering -VMName 'DemoVM'

Het beheren van geheugen- en CPU-instellingen is eenvoudig:

  • Get-VMMemory -VMName 'DemoVM'
  • Get-VMCPUCount -VMName 'DemoVM'
hyper-v
Gerelateerd artikel:
Wat is Hyper-V Live Migration: een complete en praktische gids om alles te begrijpen

Extern beheer en PowerShell Direct

Een van de meest opvallende recente ontwikkelingen is PowerShell Direct, waarmee u opdrachten op virtuele machines vanaf de host kunt uitvoeren, zelfs zonder netwerk- of voorafgaande communicatieconfiguratie. Ideaal voor beperkte omgevingen of noodherstel.

Om een ​​directe sessie te openen:

Voer PSSession -VMName 'DemoVM' in

Complexe scripts kunnen ook op de VM worden gestart met:

Invoke-Command -VMName 'DemoVM' -ScriptBlock { Get-Service }

Bestandsoverdracht wordt mogelijk gemaakt door permanente sessies:

$Session = New-PSSession -VMName 'DemoVM' -Credential (Get-Credential)

Kopie-Item -ToSession $Session -Pad 'C:\installer.exe' -Bestemming 'C:\temp'

PowerShell Direct Het is beschikbaar vanaf Windows Server 2016 en Windows 10, zolang de virtuele machine zich op dezelfde host bevindt.