Powershell Kommandos für Hyper-V [Einsteiger]

Zuletzt aktualisiert am 25. Dezember 2023 von Lars

Mit Windows Server 2012 hat Microsoft eine ganze Menge Powershell-Kommandos für Hyper-V spendiert. Unter Windows Server 2008 gab es gar keine. Dieser Artikel bringt dir einen erster Einblick.

Das allgemeine Powershell-Tutorial findest du hier.

Eine Übersicht der Kommandos erhält man mit:

Get-Command –Module Hyper-V

Eine Liste der Kommandos kann man mittels

Get-Command –Module Hyper-V | out-file -filepath c:\hy-befehle.txt

ausgeben.

CommandType Name ModuleName 
----------- ---- ---------- 
Cmdlet Add-VMDvdDrive Hyper-V 
Cmdlet Add-VMFibreChannelHba Hyper-V 
Cmdlet Add-VMHardDiskDrive Hyper-V 
Cmdlet Add-VMMigrationNetwork Hyper-V 
Cmdlet Add-VMNetworkAdapter Hyper-V 
Cmdlet Add-VMNetworkAdapterAcl Hyper-V 
Cmdlet Add-VMNetworkAdapterExtendedAcl Hyper-V 
Cmdlet Add-VmNetworkAdapterRoutingDomainMapping Hyper-V 
Cmdlet Add-VMRemoteFx3dVideoAdapter Hyper-V 
Cmdlet Add-VMScsiController Hyper-V 
Cmdlet Add-VMStoragePath Hyper-V 
Cmdlet Add-VMSwitch Hyper-V 
Cmdlet Add-VMSwitchExtensionPortFeature Hyper-V 
Cmdlet Add-VMSwitchExtensionSwitchFeature Hyper-V 
Cmdlet Checkpoint-VM Hyper-V 
Cmdlet Compare-VM Hyper-V 
Cmdlet Complete-VMFailover Hyper-V 
Cmdlet Connect-VMNetworkAdapter Hyper-V 
Cmdlet Connect-VMSan Hyper-V 
Cmdlet Convert-VHD Hyper-V 
Cmdlet Copy-VMFile Hyper-V 
Cmdlet Debug-VM Hyper-V 
Cmdlet Disable-VMEventing Hyper-V 
Cmdlet Disable-VMIntegrationService Hyper-V 
Cmdlet Disable-VMMigration Hyper-V 
Cmdlet Disable-VMRemoteFXPhysicalVideoAdapter Hyper-V 
Cmdlet Disable-VMResourceMetering Hyper-V 
Cmdlet Disable-VMSwitchExtension Hyper-V 
Cmdlet Disconnect-VMNetworkAdapter Hyper-V 
Cmdlet Disconnect-VMSan Hyper-V 
Cmdlet Dismount-VHD Hyper-V 
Cmdlet Enable-VMEventing Hyper-V 
Cmdlet Enable-VMIntegrationService Hyper-V 
Cmdlet Enable-VMMigration Hyper-V 
Cmdlet Enable-VMRemoteFXPhysicalVideoAdapter Hyper-V 
Cmdlet Enable-VMReplication Hyper-V 
Cmdlet Enable-VMResourceMetering Hyper-V 
Cmdlet Enable-VMSwitchExtension Hyper-V 
Cmdlet Export-VM Hyper-V 
Cmdlet Export-VMSnapshot Hyper-V 
Cmdlet Get-VHD Hyper-V 
Cmdlet Get-VM Hyper-V 
Cmdlet Get-VMBios Hyper-V 
Cmdlet Get-VMComPort Hyper-V 
Cmdlet Get-VMConnectAccess Hyper-V 
Cmdlet Get-VMDvdDrive Hyper-V 
Cmdlet Get-VMFibreChannelHba Hyper-V 
Cmdlet Get-VMFirmware Hyper-V 
Cmdlet Get-VMFloppyDiskDrive Hyper-V 
Cmdlet Get-VMHardDiskDrive Hyper-V 
Cmdlet Get-VMHost Hyper-V 
Cmdlet Get-VMHostNumaNode Hyper-V 
Cmdlet Get-VMHostNumaNodeStatus Hyper-V 
Cmdlet Get-VMIdeController Hyper-V 
Cmdlet Get-VMIntegrationService Hyper-V 
Cmdlet Get-VMMemory Hyper-V 
Cmdlet Get-VMMigrationNetwork Hyper-V 
Cmdlet Get-VMNetworkAdapter Hyper-V 
Cmdlet Get-VMNetworkAdapterAcl Hyper-V 
Cmdlet Get-VMNetworkAdapterExtendedAcl Hyper-V 
Cmdlet Get-VMNetworkAdapterFailoverConfiguration Hyper-V 
Cmdlet Get-VmNetworkAdapterIsolation Hyper-V 
Cmdlet Get-VMNetworkAdapterRoutingDomainMapping Hyper-V 
Cmdlet Get-VMNetworkAdapterVlan Hyper-V 
Cmdlet Get-VMProcessor Hyper-V 
Cmdlet Get-VMRemoteFx3dVideoAdapter Hyper-V 
Cmdlet Get-VMRemoteFXPhysicalVideoAdapter Hyper-V 
Cmdlet Get-VMReplication Hyper-V 
Cmdlet Get-VMReplicationAuthorizationEntry Hyper-V 
Cmdlet Get-VMReplicationServer Hyper-V 
Cmdlet Get-VMResourcePool Hyper-V 
Cmdlet Get-VMSan Hyper-V 
Cmdlet Get-VMScsiController Hyper-V 
Cmdlet Get-VMSnapshot Hyper-V 
Cmdlet Get-VMStoragePath Hyper-V 
Cmdlet Get-VMSwitch Hyper-V 
Cmdlet Get-VMSwitchExtension Hyper-V 
Cmdlet Get-VMSwitchExtensionPortData Hyper-V 
Cmdlet Get-VMSwitchExtensionPortFeature Hyper-V 
Cmdlet Get-VMSwitchExtensionSwitchData Hyper-V 
Cmdlet Get-VMSwitchExtensionSwitchFeature Hyper-V 
Cmdlet Get-VMSystemSwitchExtension Hyper-V 
Cmdlet Get-VMSystemSwitchExtensionPortFeature Hyper-V 
Cmdlet Get-VMSystemSwitchExtensionSwitchFeature Hyper-V 
Cmdlet Grant-VMConnectAccess Hyper-V 
Cmdlet Import-VM Hyper-V 
Cmdlet Import-VMInitialReplication Hyper-V 
Cmdlet Measure-VM Hyper-V 
Cmdlet Measure-VMReplication Hyper-V 
Cmdlet Measure-VMResourcePool Hyper-V 
Cmdlet Merge-VHD Hyper-V 
Cmdlet Mount-VHD Hyper-V 
Cmdlet Move-VM Hyper-V 
Cmdlet Move-VMStorage Hyper-V 
Cmdlet New-VFD Hyper-V 
Cmdlet New-VHD Hyper-V 
Cmdlet New-VM Hyper-V 
Cmdlet New-VMReplicationAuthorizationEntry Hyper-V 
Cmdlet New-VMResourcePool Hyper-V 
Cmdlet New-VMSan Hyper-V 
Cmdlet New-VMSwitch Hyper-V 
Cmdlet Optimize-VHD Hyper-V 
Cmdlet Remove-VM Hyper-V 
Cmdlet Remove-VMDvdDrive Hyper-V 
Cmdlet Remove-VMFibreChannelHba Hyper-V 
Cmdlet Remove-VMHardDiskDrive Hyper-V 
Cmdlet Remove-VMMigrationNetwork Hyper-V 
Cmdlet Remove-VMNetworkAdapter Hyper-V 
Cmdlet Remove-VMNetworkAdapterAcl Hyper-V 
Cmdlet Remove-VMNetworkAdapterExtendedAcl Hyper-V 
Cmdlet Remove-VMNetworkAdapterRoutingDomainMapping Hyper-V 
Cmdlet Remove-VMRemoteFx3dVideoAdapter Hyper-V 
Cmdlet Remove-VMReplication Hyper-V 
Cmdlet Remove-VMReplicationAuthorizationEntry Hyper-V 
Cmdlet Remove-VMResourcePool Hyper-V 
Cmdlet Remove-VMSan Hyper-V 
Cmdlet Remove-VMSavedState Hyper-V 
Cmdlet Remove-VMScsiController Hyper-V 
Cmdlet Remove-VMSnapshot Hyper-V 
Cmdlet Remove-VMStoragePath Hyper-V 
Cmdlet Remove-VMSwitch Hyper-V 
Cmdlet Remove-VMSwitchExtensionPortFeature Hyper-V 
Cmdlet Remove-VMSwitchExtensionSwitchFeature Hyper-V 
Cmdlet Rename-VM Hyper-V 
Cmdlet Rename-VMNetworkAdapter Hyper-V 
Cmdlet Rename-VMResourcePool Hyper-V 
Cmdlet Rename-VMSan Hyper-V 
Cmdlet Rename-VMSnapshot Hyper-V 
Cmdlet Rename-VMSwitch Hyper-V 
Cmdlet Repair-VM Hyper-V 
Cmdlet Reset-VMReplicationStatistics Hyper-V 
Cmdlet Reset-VMResourceMetering Hyper-V 
Cmdlet Resize-VHD Hyper-V 
Cmdlet Restart-VM Hyper-V 
Cmdlet Restore-VMSnapshot Hyper-V 
Cmdlet Resume-VM Hyper-V 
Cmdlet Resume-VMReplication Hyper-V 
Cmdlet Revoke-VMConnectAccess Hyper-V 
Cmdlet Save-VM Hyper-V 
Cmdlet Set-VHD Hyper-V 
Cmdlet Set-VM Hyper-V 
Cmdlet Set-VMBios Hyper-V 
Cmdlet Set-VMComPort Hyper-V 
Cmdlet Set-VMDvdDrive Hyper-V 
Cmdlet Set-VMFibreChannelHba Hyper-V 
Cmdlet Set-VMFirmware Hyper-V 
Cmdlet Set-VMFloppyDiskDrive Hyper-V 
Cmdlet Set-VMHardDiskDrive Hyper-V 
Cmdlet Set-VMHost Hyper-V 
Cmdlet Set-VMMemory Hyper-V 
Cmdlet Set-VMMigrationNetwork Hyper-V 
Cmdlet Set-VMNetworkAdapter Hyper-V 
Cmdlet Set-VMNetworkAdapterFailoverConfiguration Hyper-V 
Cmdlet Set-VmNetworkAdapterIsolation Hyper-V 
Cmdlet Set-VmNetworkAdapterRoutingDomainMapping Hyper-V 
Cmdlet Set-VMNetworkAdapterVlan Hyper-V 
Cmdlet Set-VMProcessor Hyper-V 
Cmdlet Set-VMRemoteFx3dVideoAdapter Hyper-V 
Cmdlet Set-VMReplication Hyper-V 
Cmdlet Set-VMReplicationAuthorizationEntry Hyper-V 
Cmdlet Set-VMReplicationServer Hyper-V 
Cmdlet Set-VMResourcePool Hyper-V 
Cmdlet Set-VMSan Hyper-V 
Cmdlet Set-VMSwitch Hyper-V 
Cmdlet Set-VMSwitchExtensionPortFeature Hyper-V 
Cmdlet Set-VMSwitchExtensionSwitchFeature Hyper-V 
Cmdlet Start-VM Hyper-V 
Cmdlet Start-VMFailover Hyper-V 
Cmdlet Start-VMInitialReplication Hyper-V 
Cmdlet Stop-VM Hyper-V 
Cmdlet Stop-VMFailover Hyper-V 
Cmdlet Stop-VMInitialReplication Hyper-V 
Cmdlet Stop-VMReplication Hyper-V 
Cmdlet Suspend-VM Hyper-V 
Cmdlet Suspend-VMReplication Hyper-V 
Cmdlet Test-VHD Hyper-V 
Cmdlet Test-VMNetworkAdapter Hyper-V 
Cmdlet Test-VMReplicationConnection Hyper-V 

Die Hyper-V-Rolle fügt man mittels

Add-WindowsFeature Hyper-V –IncludeManagementTools

hinzu.

Erhält man die Meldung:

add-windowsfeature : A prerequisite check for the Hyper-V feature failed.
1. Hyper-V cannot be installed: A hypervisor is already running.
At line:1 char:1
+ add-windowsfeature hyper-v -includemanagementtools
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Hyper-V:ServerComponentWrapper) [Install-WindowsFeature], Exception
+ FullyQualifiedErrorId : Alteration_PrerequisiteCheck_Failed,Microsoft.Windows.ServerManager.Commands.AddWindowsF
eatureCommand

Liegt das an der "Nested Virtualization", also der Virtualisierung unter Virtualisierung, zum Beispiel wenn du Hyper-V in deinem Labor unter VMware Workstation laufen lässt.

Bei VMware kann man das Problem mittels

hypervisor.cpuid.v0 = "FALSE" 
mce.enable = "TRUE"

am Ende der VMX-Datei lösen.

Bestseller Nr. 1

Mittels

Remove-WindowsFeature Hyper-V –IncludeManagementTools

kann man die Hyper-V Management Tools wieder entfernen.

Den Server startet man  mittels

Restart-Computer

neu.

Mittels

Stop-Computer

kann man den Computer herunterfahren.

VMs

Eine neue VM kann man mittels

New-VM VM01 -NoVHD

anlegen. Hier bleibt vieles auf Default gesetzt.

New-VM –Name VM02 –MemoryStartupBytes 1GB –NewVHDPath c:vhdbase.vhdx 
-NewVHDSize 50GB

geht hier weiter und erstellt die VM02 mit 1 GB RAM und einer 50 GB grossen
VHD (dynamisch) im Pfad C:VHD.

Mit

Remove-VM VM01

wird eine VM gelöscht. VHD-Dateien und natürlich VHDx bleiben bestehen. Die Aktion ist analog zum Löschen einer Maschine im Hyper-V-Manager.

VHD-Dateien im Ordner C:\VHD können z.B. gelöscht werden mit:

Remove-Item -Path c:\vhd -recurse

Übersicht Powershell und Hyper-V

VM-Befehle

  • Get-VM
  • Choose-VM
  • Get-VMHost
  • New-VMConnectSession
  • Get-VMState
  • Set-VMState
  • Convert-VmState
  • Ping-VM
  • Test-VMHeartBeat
  • Shutdown-VM
  • Start-VM
  • Stop-VM
  • Suspend-VM
  • Get-VMKVP
  • Add-KVP
  • Remove-KVP
  • Get-VMJPEG
  • New-VM - Erstellt eine VM
  • Remove-VM - Löscht eine VM
  • Set-VM
  • Get-VMCPUCount
  • Set-VMCPUCount
  • Get-VMMemory
  • Set-VMMemory
  • Set-VMSerialPort

Backup, Export, Snapshot

  • Export-VM
  • Import-VM
  • Get-VMSnapshot
  • Choose-VMSnapshot
  • Apply-VMSnapshot
  • New-VMSnapshot
  • Remove-VMSnapshot
  • Rename-VMSnapShot
  • Update-VMSnapshot
  • Get-VMSnapshotTree
  • Get-VmBackupScript

Disk, VHDx

  • Get-VMDiskController
  • Add-VMSCSIController
  • Remove-VMSCSIcontroller
  • Get-VMDriveByController
  • Add-VMDRIVE
  • Remove-VMdrive
  • Get-VMDiskByDrive
  • Add-VMDISK
  • Set-VMDisk
  • Get-VMDisk
  • Get-VMFloppyDisk
  • Add-VMFloppyDisk
  • Add-VMNewHardDisk
  • Get-VHDDefaultPath
  • Get-VHDInfo
  • New-VHD
  • Compact-VHD
  • Test-VHD
  • Convert-VHD
  • Merge-VHD
  • Mount-VHD
  • Unmount-VHD

Netzwerk

  • Get-VMNic
  • List-VMNic
  • Choose-VMNIC
  • Add-VMNIC
  • Remove-VMNIC
  • Set-VMNICAddress
  • Set-VMNICConnection
  • Get-VMNicport
  • Get-VMnicSwitch
  • Choose-VMSwitch
  • New-VMSwitchPort
  • Get-VMByMACaddress
  • Choose-VMExternalEthernet
  • New-VMExternalSwitch
  • New-VMInternalSwitch
  • New-VmPrivateSwitch

Cluster

  • Suspend-ClusterRessource - Maintenance-Modus für eine Disk aktivieren
  • Stop-ClusterRessource - Schaltet eine Ressource in einem Cluster offline
  • Set-ClusterResourceDependency - Legt Abhängigkeiten zwischen Ressourcen
    fest
  • Block-ClusterAccess - Verhindert den Zugriff eines angegeben Benutzers
    auf einen Failover Cluster

Quelle / Weitere Artikel:

Du willst meine Arbeit unterstützen? Dann freue ich mich über eine kleine Spende!

Schreibe einen Kommentar