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-Meldung | Ursache | Primaere Loesung | PowerShell-Befehl |
|---|---|---|---|
| ”Not enough memory in the system” | Speicheruebercommitment | RAM reduzieren oder dynamischen Speicher aktivieren | Set-VMMemory -DynamicMemoryEnabled $true |
| ”Failed to open attachment” | VHD/VHDX-Datei gesperrt | Datentraeger aushaengen oder auf Backup warten | Dismount-VHD -Path <Pfad> |
| ”The configuration version is not supported” | Versionsinkompatibilitaet | VM-Version aktualisieren | Update-VMVersion -VMName <Name> |
| ”The image’s hash and certificate are not allowed” | Falsche Secure-Boot-Vorlage | Secure-Boot-Vorlage aendern | Set-VMFirmware -SecureBootTemplate |
| ”Synthetic SCSI Controller: Failed” | Integration-Services-Konflikt | Problematischen IC deaktivieren | Disable-VMIntegrationService |
| ”Failed to restore the virtual machine state” | Beschaedigte Konfiguration | VM entfernen und neu erstellen | Remove-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-VMVersionauf 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-AdminundHyper-V-Worker-Admin) auf den tatsaechlichen Unterfehler, bevor Sie Korrekturen versuchen.
Verwandte Artikel
- Resolved: Hyper-V General Access Denied Error Trying to Load Virtual Hard Drive
- How to Configure Hyper-V Replica Using Certificate-Based Authentication (HTTPS)
- Configure Environment to Host Hyper-V Virtual Machines with Shared Storage SMB 3.0
- How to Remotely Manage a Hyper-V Server: Enable Firewall Exceptions