Die Fehlermeldung “The Virtual Machine Management Service failed to start the virtual machine” ist eines der haeufigsten und frustrierendsten Probleme, mit denen Hyper-V-Administratoren konfrontiert werden. Dieser Fehler erscheint, wenn Sie versuchen, eine virtuelle Maschine ueber den Hyper-V-Manager oder PowerShell einzuschalten, und der VMMS-Dienst die VM aus verschiedenen zugrunde liegenden Gruenden nicht initialisieren kann. In diesem Leitfaden erfahren Sie, wie Sie die sechs haeufigsten Ursachen fuer diesen Fehler diagnostizieren und gezielte PowerShell-basierte Korrekturen fuer jede einzelne anwenden.

Voraussetzungen

  • Windows Server 2016, 2019, 2022 oder 2025 mit installierter Hyper-V-Rolle
  • Administrativer Zugriff auf den Hyper-V-Host
  • PowerShell 5.1 oder hoeher
  • Grundlegende Vertrautheit mit dem Hyper-V-Manager und der VM-Konfiguration
  • Zugriff auf die Ereignisanzeige fuer die Protokollanalyse

Den VMMS-Startfehler verstehen

Der Virtual Machine Management Service (VMMS) ist der zentrale Windows-Dienst, der fuer die Verwaltung aller Hyper-V-Operationen verantwortlich ist. Wenn Sie bei einer virtuellen Maschine auf “Starten” klicken, fuehrt VMMS eine Reihe von Vorabpruefungen durch, bevor es die Kontrolle an den VM Worker Process (vmwp.exe) uebergibt. Wenn eine dieser Pruefungen fehlschlaegt, meldet VMMS den generischen Fehler:

Beim Versuch, die ausgewaehlte(n) virtuelle(n) Maschine(n) zu starten, ist ein Fehler aufgetreten. ‘VMName’ konnte nicht gestartet werden. The Virtual Machine Management Service failed to start the virtual machine ‘VMName’.

Die tatsaechliche Ursache verbirgt sich im Unterfehler, der diese Meldung begleitet. Zu verstehen, welchen Unterfehler Sie sehen, ist der Schluessel zu einer schnellen Loesung. Der VMMS-Startprozess validiert die Speicherverfuegbarkeit, Datentraegerzugaenglichkeit, Firmware-Konfiguration, Integration-Services-Kompatibilitaet und die Integritaet der VM-Konfigurationsdateien in dieser Reihenfolge.

Sie koennen den letzten Fehler einer VM schnell mit PowerShell abrufen:

Get-VM -Name "VMName" | Select-Object Name, State, Status

Fuer weitere Details fragen Sie die Hyper-V-Ereignisprotokolle ab:

Get-WinEvent -FilterHashtable @{
    LogName = 'Microsoft-Windows-Hyper-V-VMMS-Admin'
    Level   = 2
} -MaxEvents 10 | Format-List TimeCreated, Message

Haeufige Ursachen und Loesungen

1. Unzureichender Speicher oder Speicheruebercommitment

Die haeufigste Ursache ist schlicht unzureichend verfuegbarer physischer RAM auf dem Host. Hyper-V muss den konfigurierten Start-RAM fuer eine VM reservieren, bevor sie gestartet werden kann. Wenn andere laufende VMs den Grossteil des Host-Speichers verbrauchen, kann die neue VM ihre Zuweisung nicht erhalten.

Das Problem diagnostizieren:

# Gesamten physischen Speicher des Hosts pruefen
Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property Capacity -Sum |
    Select-Object @{N='TotalRAM_GB';E={[math]::Round($_.Sum/1GB,2)}}

# Zugewiesenen Speicher aller VMs pruefen
Get-VM | Where-Object State -eq 'Running' |
    Select-Object Name,
        @{N='AssignedMB';E={$_.MemoryAssigned/1MB}},
        @{N='StartupMB';E={$_.MemoryStartup/1MB}}

# Verfuegbaren Speicher auf dem Host pruefen
Get-Counter '\Memory\Available MBytes' |
    Select-Object -ExpandProperty CounterSamples |
    Select-Object CookedValue

Das Problem beheben:

Option A — Den Start-Speicher der VM reduzieren:

Set-VMMemory -VMName "VMName" -StartupBytes 2GB

Option B — Dynamischen Speicher aktivieren, damit die VM mit weniger starten und bei Bedarf wachsen kann:

Set-VMMemory -VMName "VMName" -DynamicMemoryEnabled $true `
    -MinimumBytes 512MB -StartupBytes 2GB -MaximumBytes 8GB

Option C — Andere VMs herunterfahren oder ihren Zustand speichern, um Ressourcen freizugeben:

Stop-VM -Name "LowPriorityVM" -Save

2. VHD/VHDX durch einen anderen Prozess oder ein Backup gesperrt

Wenn eine Backup-Anwendung (Windows Server Backup, Veeam oder ein anderer Agent) aktiv einen Snapshot Ihrer VHD/VHDX-Dateien erstellt, oder wenn der Datentraeger an eine andere VM oder sogar einen anderen Hyper-V-Host angebunden ist, bleibt die Datei gesperrt. VMMS kann kein exklusives Schreib-Handle erwerben und die VM kann nicht gestartet werden.

Das Problem diagnostizieren:

# Pruefen welche VMs eine bestimmte VHD verwenden
Get-VM | Get-VMHardDiskDrive |
    Where-Object Path -like "*diskname*" |
    Select-Object VMName, Path

# Pruefen ob die VHD als Datentraeger auf dem Host eingebunden ist
Get-VHD -Path "D:\VMs\VMName\disk.vhdx" |
    Select-Object Path, Attached, @{N='SizeGB';E={[math]::Round($_.FileSize/1GB,2)}}

# Prozesse auflisten die die Datei sperren koennten (erfordert handle.exe von Sysinternals)
# handle.exe "disk.vhdx"

Das Problem beheben:

Wenn der Datentraeger auf dem Host eingebunden ist:

Dismount-VHD -Path "D:\VMs\VMName\disk.vhdx"

Wenn ein Backup-Prozess die Sperre haelt, warten Sie auf dessen Abschluss oder stoppen Sie den Backup-Auftrag. Wenn eine andere VM versehentlich die gleiche VHD referenziert:

# Den Datentraeger von der anderen VM entfernen
Remove-VMHardDiskDrive -VMName "OtherVM" -ControllerType SCSI `
    -ControllerNumber 0 -ControllerLocation 1

3. Inkompatible VM-Konfigurationsversion

Wenn Sie eine VM importieren, die auf einem neueren Hyper-V-Host erstellt wurde (zum Beispiel Windows Server 2025), auf einen aelteren Host (Windows Server 2019), wird die Konfigurationsversion moeglicherweise nicht unterstuetzt. Umgekehrt muss eine aeltere VM auf einem neueren Host moeglicherweise aktualisiert werden, bevor bestimmte Funktionen korrekt arbeiten.

Das Problem diagnostizieren:

# Konfigurationsversion der VMs pruefen
Get-VM | Select-Object Name, Version, State |
    Sort-Object Version | Format-Table -AutoSize

# Unterstuetzte Konfigurationsversionen auf diesem Host pruefen
Get-VMHostSupportedVersion |
    Select-Object Version, IsDefault | Format-Table

Das Problem beheben:

Um eine VM auf die aktuelle Hostversion zu aktualisieren (dies ist eine Einwegoperation):

# Die VM muss ausgeschaltet sein
Stop-VM -Name "VMName" -Force
Update-VMVersion -VMName "VMName"

Wenn Sie die VM auf einen aelteren Host verschieben muessen, muessen Sie sie auf dem neueren Host exportieren und auf dem aelteren Host mit einer kompatiblen Konfigurationsversion neu erstellen. Es gibt keinen Downgrade-Pfad fuer VM-Konfigurationsversionen.

4. Secure-Boot-Konflikte mit Linux-VMs

VMs der Generation 2 haben Secure Boot standardmaessig mit der Zertifikatsvorlage “Microsoft Windows” aktiviert. Wenn Sie eine Linux-Distribution installieren, ist der Bootloader mit einem anderen Zertifikat signiert. Die VM kann nicht mit einem Firmware-Fehler starten, es sei denn, Sie aendern die Secure-Boot-Vorlage oder deaktivieren Secure Boot vollstaendig.

Das Problem diagnostizieren:

Get-VMFirmware -VMName "LinuxVM" |
    Select-Object VMName, SecureBoot, SecureBootTemplate

Das Problem beheben:

Option A — Die UEFI Certificate Authority-Vorlage verwenden (empfohlen fuer die meisten Linux-Distributionen):

Set-VMFirmware -VMName "LinuxVM" `
    -SecureBootTemplate MicrosoftUEFICertificateAuthority

Option B — Secure Boot vollstaendig deaktivieren (weniger sicher, funktioniert aber fuer alle OS-Typen):

Set-VMFirmware -VMName "LinuxVM" -EnableSecureBoot Off

5. Probleme mit Integrationsdiensten

Veraltete oder nicht uebereinstimmende Integration-Services-Komponenten (IC) koennen manchmal verhindern, dass eine VM startet, insbesondere nach einem Host-Upgrade. Dies ist in modernen Hyper-V-Versionen weniger haeufig, da IC-Updates ueber Windows Update bereitgestellt werden, tritt aber bei aelteren VMs noch auf.

Das Problem diagnostizieren:

Get-VM | Select-Object Name, IntegrationServicesVersion, State |
    Format-Table -AutoSize

# Individuellen Status der Integrationsdienste pruefen
Get-VMIntegrationService -VMName "VMName" |
    Select-Object Name, Enabled, PrimaryStatusDescription

Das Problem beheben:

Problematische Integrationsdienste deaktivieren, die den Start verhindern:

# Guest Service Interface deaktivieren falls es Probleme verursacht
Disable-VMIntegrationService -VMName "VMName" -Name "Guest Service Interface"

# Oder alle nicht wesentlichen Dienste deaktivieren
Get-VMIntegrationService -VMName "VMName" |
    Where-Object { $_.Name -ne "Heartbeat" -and $_.Name -ne "Shutdown" } |
    Disable-VMIntegrationService

Nach dem Start der VM aktualisieren Sie die Integration Services innerhalb des Gastbetriebssystems und aktivieren Sie die Dienste anschliessend wieder.

6. Beschaedigte VM-Konfiguration

VM-Konfigurationsdateien (.vmcx fuer Generation 2 oder .xml fuer Generation 1) koennen durch unerwartete Host-Abschaltungen, Speicherausfaelle oder unterbrochene Live-Migrationen beschaedigt werden. Wenn die Konfiguration unlesbar ist, kann VMMS die VM-Einstellungen ueberhaupt nicht analysieren.

Das Problem diagnostizieren:

# Speicherort der VM-Konfigurationsdatei pruefen
Get-VM -Name "VMName" | Select-Object Name, Path, ConfigurationLocation

# Pruefen ob die Konfigurationsdateien existieren
Test-Path "C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\<GUID>.vmcx"

# VM-Fehler im Ereignisprotokoll pruefen
Get-WinEvent -FilterHashtable @{
    LogName   = 'Microsoft-Windows-Hyper-V-VMMS-Admin'
    Level     = 2
    StartTime = (Get-Date).AddHours(-24)
} | Where-Object Message -like "*configuration*" |
    Select-Object TimeCreated, Message

Das Problem beheben:

Wenn Sie eine aktuelle Sicherung der Konfiguration haben, stellen Sie sie wieder her. Andernfalls erstellen Sie die VM neu und verweisen auf die vorhandenen Datentraeger:

# Den defekten VM-Eintrag entfernen (VHD-Dateien bleiben erhalten)
Remove-VM -Name "VMName" -Force

# Mit vorhandenen Datentraegern neu erstellen
New-VM -Name "VMName" -MemoryStartupBytes 4GB `
    -VHDPath "D:\VMs\VMName\disk.vhdx" `
    -Generation 2 -SwitchName "ExternalSwitch"

# Einstellungen nach Bedarf neu konfigurieren
Set-VMProcessor -VMName "VMName" -Count 4
Set-VMMemory -VMName "VMName" -DynamicMemoryEnabled $true `
    -MinimumBytes 1GB -MaximumBytes 8GB

Vergleich der Unterfehler und Loesungen

Unterfehler-MeldungUrsachePrimaere LoesungPowerShell-Befehl
”Not enough memory in the system”SpeicheruebercommitmentRAM reduzieren oder dynamischen Speicher aktivierenSet-VMMemory -DynamicMemoryEnabled $true
”Failed to open attachment”VHD/VHDX-Datei gesperrtDatentraeger aushaengen oder auf Backup wartenDismount-VHD -Path <Pfad>
”The configuration version is not supported”VersionsinkompatibilitaetVM-Version aktualisierenUpdate-VMVersion -VMName <Name>
”The image’s hash and certificate are not allowed”Falsche Secure-Boot-VorlageSecure-Boot-Vorlage aendernSet-VMFirmware -SecureBootTemplate
”Synthetic SCSI Controller: Failed”Integration-Services-KonfliktProblematischen IC deaktivierenDisable-VMIntegrationService
”Failed to restore the virtual machine state”Beschaedigte KonfigurationVM entfernen und neu erstellenRemove-VM dann New-VM

Praxisbeispiel

Sie haben einen Hyper-V-Produktionshost mit Windows Server 2022 und 64 GB RAM. Der Server hostet acht virtuelle Maschinen, und ein naechtliches Backup laeuft um 2:00 Uhr mit Veeam Backup. Am Montagmorgen stellen Sie fest, dass zwei VMs, die am Wochenende fuer Patches neu gestartet wurden, nicht wieder online gekommen sind. Beide zeigen “The Virtual Machine Management Service failed to start the virtual machine” im Hyper-V-Manager.

Ihre Untersuchung zeigt zwei verschiedene Probleme. Die erste VM, ein Linux-basierter Webserver, wurde waehrend des Wartungsfensters auf einen neuen Kernel aktualisiert. Nach dem Neustart blockiert Secure Boot den neuen Bootloader, da die VM noch die Secure-Boot-Vorlage “Microsoft Windows” verwendete. Sie beheben es mit:

Set-VMFirmware -VMName "WebServer01" `
    -SecureBootTemplate MicrosoftUEFICertificateAuthority
Start-VM -Name "WebServer01"

Die zweite VM, ein Windows-Anwendungsserver, schlaegt mit dem Unterfehler “not enough memory” fehl. Waehrend die VM ausgeschaltet war, hatte ein Kollege eine grosse Test-VM gestartet, die 16 GB RAM verbraucht. Sie pruefen die Gesamtzuweisung:

Get-VM | Where-Object State -eq 'Running' |
    Measure-Object -Property MemoryAssigned -Sum |
    Select-Object @{N='TotalAssignedGB';E={[math]::Round($_.Sum/1GB,2)}}

Die Summe betraegt 58 GB, wodurch nur 6 GB frei bleiben — nicht genug fuer den Anwendungsserver, der 8 GB beim Start benoetigt. Sie aktivieren dynamischen Speicher auf dem Anwendungsserver mit einem Minimum von 4 GB:

Set-VMMemory -VMName "AppServer02" -DynamicMemoryEnabled $true `
    -MinimumBytes 4GB -StartupBytes 4GB -MaximumBytes 8GB
Start-VM -Name "AppServer02"

Beide VMs laufen jetzt. Sie planen eine Kapazitaetsueberpruefung, um zukuenftige Uebercommitment-Situationen zu verhindern.

Stolperfallen und Sonderfaelle

Besonderheiten von Generation-2-VMs. Generation-2-VMs verwenden UEFI-Firmware und haben strengere Boot-Anforderungen. Eine als Generation 1 erstellte VM kann nicht ohne Neuerstellung in Generation 2 konvertiert werden. Wenn Sie Firmware-bezogene Fehler sehen, pruefen Sie immer, ob Sie es mit einer Gen-1- oder Gen-2-VM zu tun haben: Get-VM -Name "VMName" | Select-Object Generation.

Verschachtelte Virtualisierung. Wenn Sie Hyper-V innerhalb einer Hyper-V-VM ausfuehren (verschachtelte Virtualisierung), erfordert der innere Host, dass die aeussere VM explizit die Virtualisierungserweiterungen offenlegt. Ohne dies koennen innere VMs nicht mit einem Prozessorinkompatibilitaetsfehler starten. Aktivieren Sie dies mit Set-VMProcessor -VMName "OuterVM" -ExposeVirtualizationExtensions $true.

Failover-Cluster-Szenarien. In einer geclusterten Umgebung kann eine VM moeglicherweise nicht starten, weil das Cluster Shared Volume (CSV) einem anderen Knoten gehoert oder sich im umgeleiteten Zugriffsmodus befindet. Pruefen Sie den CSV-Status mit Get-ClusterSharedVolume | Select-Object Name, State, OwnerNode bevor Sie VMMS-Fehler beheben.

Dateisperren durch Antivirenprogramme. Echtzeit-Antivirenscans koennen VHD/VHDX-Dateien beim Zugriff kurzzeitig sperren und intermittierende Startfehler verursachen. Konfigurieren Sie Ausnahmen fuer Ihre VM-Speicherpfade: *.vhdx, *.vhd, *.vmcx, *.vmrs und den gesamten Ordner Virtual Machines.

Inkompatibilitaet des gespeicherten Zustands. Wenn eine VM auf einem Host mit einer anderen Prozessorfamilie gespeichert und dann verschoben wurde, schlaegt die Wiederherstellung aus dem gespeicherten Zustand fehl. Loeschen Sie den gespeicherten Zustand und starten Sie die VM kalt: Remove-VMSavedState -VMName "VMName".

Fehlerbehebung

Verwenden Sie diese Diagnosebefehle, um die Ursache systematisch zu identifizieren, wenn die Fehlermeldung allein nicht ausreicht:

# Schritt 1: Detaillierten VM-Status abrufen
Get-VM -Name "VMName" | Format-List *

# Schritt 2: Hyper-V-Betriebsereignisprotokolle abfragen
Get-WinEvent -FilterHashtable @{
    LogName   = 'Microsoft-Windows-Hyper-V-Worker-Admin'
    Level     = 2,3
    StartTime = (Get-Date).AddHours(-1)
} -MaxEvents 20 | Format-List TimeCreated, Id, Message

# Schritt 3: VMMS-Dienstgesundheit pruefen
Get-Service vmms | Select-Object Name, Status, StartType

# Schritt 4: VMMS neu starten wenn der Dienst beeintraechtigt ist (betrifft kurzzeitig alle VMs)
Restart-Service vmms -Force

# Schritt 5: Integritaet der VM-Konfiguration validieren
Get-VM -Name "VMName" | Test-VHD

# Schritt 6: Verfuegbarkeit der Host-Ressourcen pruefen
Get-VMHostNumaNode | Select-Object NodeId, MemoryAvailable, MemoryTotal

# Schritt 7: Konnektivitaet des virtuellen Switches ueberpruefen
Get-VMSwitch | Select-Object Name, SwitchType, NetAdapterInterfaceDescription

Wenn der VMMS-Dienst selbst nicht starten kann, pruefen Sie das Windows-System-Ereignisprotokoll auf Dienstabsturzereignisse. Ein beschaedigtes VMMS-WMI-Repository kann durch Ausfuehren von winmgmt /salvagerepository von einer erhoehten Eingabeaufforderung aus repariert werden.

Zusammenfassung

  • Der Fehler “VMMS failed to start the virtual machine” ist eine generische Huelle um sechs haeufige Unterfehler, jeweils mit einer eigenen Ursache und Loesung.
  • Speicheruebercommitment ist die haeufigste Ursache — pruefen Sie immer den verfuegbaren RAM vor dem Starten von VMs und nutzen Sie dynamischen Speicher zur Optimierung der Zuweisung.
  • VHD/VHDX-Dateisperren durch Backups, andere VMs oder eingebundene Datentraeger verhindern, dass VMMS Schreibzugriff auf den virtuellen Datentraeger erhaelt.
  • Konfigurationsversionsinkompatibilitaeten treten beim Verschieben von VMs zwischen Hosts mit verschiedenen Windows-Server-Versionen auf — verwenden Sie Update-VMVersion auf dem neueren Host.
  • Secure-Boot-Vorlagenkonflikte blockieren Linux-VMs der Generation 2 — wechseln Sie zur Vorlage MicrosoftUEFICertificateAuthority.
  • Integration-Services-Probleme sind in modernem Hyper-V selten, koennen aber den Start auf aktualisierten Hosts blockieren — deaktivieren und reaktivieren Sie problematische Dienste.
  • Beschaedigte VM-Konfigurationen erfordern das Entfernen und Neuerstellen der VM unter Beibehaltung der VHD-Dateien.
  • Pruefen Sie immer die Hyper-V-Ereignisprotokolle (Microsoft-Windows-Hyper-V-VMMS-Admin und Hyper-V-Worker-Admin) auf den tatsaechlichen Unterfehler, bevor Sie Korrekturen versuchen.

Verwandte Artikel