Fehler 0xC004F074 „Es konnte kein Schlüsselverwaltungsdienst (Key Management Service, KMS) erreicht werden“
Gilt für: ✔️ Windows-VMs
In diesem Artikel wird erläutert, wie Sie den 0xC004F074 Fehler beheben, der auftritt, wenn Sie versuchen, einen virtuellen Windows-Computer (VM) in Microsoft Azure zu aktivieren.
Voraussetzungen
- PowerShell
- Das Skript "Software License Manager " (slmgr.vbs)
- Das PsPing-Tool
Symptome
Wenn Sie versuchen, eine Azure Windows-VM zu aktivieren, wird die folgende Fehlermeldung in Windows Script Host angezeigt:
Fehler: 0xC004F074 Der Softwarelizenzierungsdienst hat gemeldet, dass der Computer nicht aktiviert werden konnte. Es konnte kein Schlüsselverwaltungsdienst (Key Management Service, KMS) erreicht werden. Weitere Informationen finden Sie im Anwendungsereignisprotokoll.
Ursache
Der virtuelle Computer kann zur Aktivierung keine Verbindung mit dem KMS-Dienst herstellen. Wenn ein Azure KMS für die Aktivierung verwendet wird (standardauswahl), muss die Aktivierungsanforderung von einer öffentlichen Azure-IP-Adresse stammen. Mögliche Ursachen für diesen Verbindungsfehler sind:
Erzwungenes Tunneln, bei dem der gesamte Datenverkehr außerhalb von Azure (in der Regel an eine lokale Umgebung) mit Azure ExpressRoute oder einer virtuellen Netzwerk-Appliance weitergeleitet wird
Datenverkehr, der von einer virtuellen Netzwerk-Appliance oder einem standardmäßigen internen Lastenausgleichsmodul blockiert wird
Untersuchung
Um die spezifische Ursache des Problems zu ermitteln, befolgen Sie das dreiteilige Verfahren in den folgenden Abschnitten.
Teil 1: Konfigurieren des entsprechenden KMS-Clientsetupschlüssels
Notiz
Dieser Teil ist nicht für VMs erforderlich, die Windows 10 Enterprise multi-session (auch als Windows 10 Enterprise for Virtual Desktops bezeichnet) in Azure Virtual Desktop ausführen.
Um zu ermitteln, ob Ihre VM die Multisitzungsedition ausführt, führen Sie den folgenden Skriptbefehl für Software License Manager aus:
slmgr.vbs /dlv
Wenn die Ausgabe die Name: Windows(R), ServerRdsh edition
Zeichenfolge enthält, wird auf dem virtuellen Computer die Multisitzungsedition ausgeführt, und Sie können den Rest dieses Teils überspringen.
Notiz
Wenn Sie einen virtuellen Windows 10 Enterprise-Virtuellen Computer mit mehreren Sitzungen bereitstellen und dann den Product Key auf eine andere Edition aktualisieren, können Sie die VM nicht auf Windows 10 Enterprise multi-session zurücksetzen. Stattdessen müssen Sie die VM erneut bereitstellen. Weitere Informationen finden Sie unter Kann ich eine Windows-VM auf Windows Enterprise-Multi-Session aktualisieren?
Für den virtuellen Computer, der aus einem benutzerdefinierten Image erstellt wird, müssen Sie den entsprechenden KMS-Clientsetupschlüssel für den virtuellen Computer konfigurieren. Führen Sie folgende Schritte aus:
Führen Sie in einem Eingabeaufforderungsfenster mit erhöhten Rechten den folgenden Skriptbefehl für Den Software License Manager aus:
cscript c:\windows\system32\slmgr.vbs /dlv
Überprüfen Sie den
Description
Wert in der Ausgabe, um zu ermitteln, ob der virtuelle Computer aus Einzelhandelsmedien (RETAIL
Kanal) oder VolumenlizenzmedienVOLUME_KMSCLIENT
erstellt wurde.Wenn die vorherige Befehlsausgabe den
RETAIL
Kanal angibt, führen Sie die folgenden Skriptbefehle des Software License Manager aus. Der erste Befehl legt den KMS-Clientsetupschlüssel für die verwendete Version von Windows Server fest, und der zweite Befehl erzwingt einen weiteren Aktivierungsversuch.cscript c:\windows\system32\slmgr.vbs /ipk <kms-client-setup-key> cscript c:\windows\system32\slmgr.vbs /ato
Wenn Sie beispielsweise Windows Server 2016 Datacenter verwenden, wird der erste Befehl wie folgt angezeigt:
cscript c:\windows\system32\slmgr.vbs /ipk CB7KF-BWN84-R7R2Y-793K2-8XDDG
Teil 2: Überprüfen, ob sich der virtuelle Computer hinter einem internen Standard-SKU-Lastenausgleich befindet
Führen Sie die folgenden Schritte aus, um zu überprüfen, ob sich der virtuelle Computer hinter einem internen Standard-SKU-Lastenausgleich befindet, der ausgehenden Internetdatenverkehr standardmäßig blockiert:
Suchen Sie im Azure Portal nach Virtuelle Computer und wählen Sie diese aus.
Wählen Sie in der Liste der virtuellen Computer den Namen Ihrer VM aus.
Suchen Sie im Menübereich für Ihren virtuellen Computer die Netzwerküberschrift, und wählen Sie dann den Lastenausgleich aus. Wenn eine Meldung angezeigt wird, dass keine Lastenausgleichsressourcen angezeigt werden, liegt der virtuelle Computer nicht hinter einem Lastenausgleich. In diesem Fall können Sie mit Teil 3 fortfahren: Überprüfen Sie die Verbindung zwischen dem virtuellen Computer und dem Azure KMS-Dienst.
Wenn eine Lastenausgleichsressource angezeigt wird, wählen Sie den Namen des Lastenausgleichsmoduls aus, um zur Übersichtsseite des Lastenausgleichs zu wechseln.
Wählen Sie im Menübereich des Lastenausgleichs die Option "Eigenschaften" aus.
Suchen Sie auf der Seite "Eigenschaften" die Werte für SKU und Lastenausgleichstyp, und lesen Sie dann die folgende Tabelle, um Schlussfolgerungen zu ziehen.
Werte von SKU und Lastenausgleichstyp Zusammenfassung Der SKU-Wert ist "Standard", und der Wert " Lastenausgleichstyp " ist "Privat". Der virtuelle Computer befindet sich hinter einem internen Standard-SKU-Lastenausgleich, der ausgehenden Internetdatenverkehr standardmäßig blockiert. Informationen zum Aktivieren der ausgehenden Konnektivität finden Sie unter Lösung 2: (Für standardmäßiges internes Lastenausgleichsmodul) Verwenden eines NAT-Gateways oder eines standardmäßigen öffentlichen Lastenausgleichs. Der SKU-Wert ist nicht Standard, und der Lastenausgleichstypwert ist öffentlich. Der virtuelle Computer liegt nicht hinter einem internen Standard-SKU-Lastenausgleich, und ausgehender Internetdatenverkehr wird standardmäßig nicht blockiert. Fahren Sie mit Teil 3 fort: Überprüfen Sie die Verbindung zwischen dem virtuellen Computer und dem Azure KMS-Dienst.
Teil 3: Überprüfen der Verbindung zwischen dem virtuellen Computer und dem Azure KMS-Dienst
Stellen Sie sicher, dass der virtuelle Computer richtig konfiguriert ist, damit er den richtigen Azure KMS-Server verwendet. Führen Sie dazu den folgenden Skriptbefehl für Den Software License Manager aus:
Invoke-Expression "$env:windir\system32\cscript.exe $env:windir\system32\slmgr.vbs /skms azkms.core.windows.net:1688"
Dieser Befehl sollte den folgenden Text zurückgeben:
Der Schlüsselverwaltungsdienst-Computername wurde erfolgreich auf azkms.core.windows.net:1688 festgelegt.
Stellen Sie sicher, dass die Firewall in der VM den ausgehenden Netzwerkdatenverkehr an den KMS-Endpunkt am Port 1688 nicht blockiert. Wenden Sie dazu eine der folgenden Optionen an:
Überprüfen Sie die Konnektivität, indem Sie das Cmdlet Test-NetConnection in PowerShell ausführen:
Test-NetConnection azkms.core.windows.net -port 1688
Wenn der Verbindungsversuch zulässig ist, zeigt das Cmdlet "TcpTestSucceeded: True" im Ausgabetext an.
Überprüfen Sie die Konnektivität, indem Sie das PsPing-Tool ausführen:
.\psping.exe azkms.core.windows.net:1688
In der Befehlsausgabe sollte die zweite bis letzte Zeile dem folgenden Text ähneln:
Sent = 4, Received = 4, Lost = 0 (0% loss)
Wenn
Lost
größer als 0 (Null) ist, verfügt der virtuelle Computer nicht über eine Verbindung mit dem KMS-Server. Wenn sich der virtuelle Computer in einem virtuellen Netzwerk befindet und einen benutzerdefinierten DNS-Server angegeben hat, müssen Sie sicherstellen, dass der DNS-Server denazkms.core.windows.net
Domänennamen auflösen kann. Wenn dies nicht möglich ist, ändern Sie den DNS-Server in einen, der aufgelöstazkms.core.windows.net
werden kann.Notiz
Wenn Sie alle DNS-Server aus einem virtuellen Netzwerk entfernen, verwenden VMs den internen DNS-Dienst von Azure. Dieser Dienst kann
kms.core.windows.net
auflösen.
Verwenden Sie einen nächsten Hoptest für Azure Network Watcher, um zu überprüfen, ob der nächste Hoptyp internet vom betroffenen virtuellen Computer zu bestimmten Zielen ist. Führen Sie die folgenden Schritte aus, um den nächsten Hoptest anzuwenden:
Suchen Sie im Azure Portal nach Virtuelle Computer und wählen Sie diese aus.
Wählen Sie in der Liste der virtuellen Computer den Namen Ihrer VM aus.
Suchen Sie im Menübereich Ihrer VM die Hilfeüberschrift , und wählen Sie dann die Verbindungsproblembehandlung aus.
Geben Sie auf der Seite "Verbindungsproblembehandlung " ihrer VM die folgenden Feldwerte an.
Feld Wert Zieltyp Manuell angeben URI, FQDN oder IP-Adresse 20.118.99.224, 40.83.235.53 (für azkms.core.windows.net
) oder die IP des entsprechenden KMS-Endpunkts, der für Ihre Region giltZielport 1688 Quellport 1688 Diagnosetests Nächster Hop Wählen Sie die Schaltfläche "Diagnosetests ausführen" aus .
Überprüfen Sie nach Abschluss der Diagnosetests das Feld "Ergebnisse ", das unterhalb der Schaltfläche angezeigt wird. Der Test "Nächster Hop" (aus Quelle) sollte den Statuswert "Erfolg" aufweisen, und der Wert "Details" sollte den Typ "Nächster Hop" enthalten: "Internet" im Text. Wenn der nächste Hoptyp internet ist, wiederholen Sie den nächsten Hoptest für jeden der verbleibenden IPs. Wenn der nächste Hoptyp jedoch als VirtualAppliance, VirtualNetworkGateway oder etwas anderes als Internet angezeigt wird, tritt wahrscheinlich eine der folgenden Szenarien auf:
Eine Standardroute ist vorhanden, die den Datenverkehr außerhalb von Azure leitet, bevor der Datenverkehr an den Azure KMS-Endpunkt gesendet wird.
Der Datenverkehr wird irgendwo entlang des Pfads blockiert.
Diese Szenarien finden Sie unter Lösung 1: (For forced tunneling) Use the Azure custom route to route activation traffic to the Azure KMS server.
Nachdem Sie überprüft haben, ob eine Verbindung
azkms.core.windows.net
erfolgreich ist, führen Sie den folgenden Befehl an der Windows PowerShell-Eingabeaufforderung mit erhöhten Rechten aus. Dieser Befehl versucht mehrmals, die Windows-VM zu aktivieren:1..12 | ForEach-Object { Invoke-Expression "$env:windir\system32\cscript.exe $env:windir\system32\slmgr.vbs /ato"; Start-Sleep 5 }
Wenn der Aktivierungsversuch erfolgreich ist, zeigt der Befehl eine Meldung an, die dem folgenden Text ähnelt:
Aktivieren von Windows(R), Server Datacenter Edition (<kms-client-product-key>) ... Das Produkt wurde erfolgreich aktiviert.
Lösung 1: (For forced tunneling) Use the Azure custom route to route activation traffic to the Azure KMS server
Wenn es sich bei der Ursache um ein Erzwungenes Tunnelszenario handelt, in dem Datenverkehr außerhalb von Azure weitergeleitet wird, arbeiten Sie mit Ihrem Netzwerkadministrator zusammen, um den richtigen Aktionsverlauf zu ermitteln. Eine mögliche Lösung wird im Abschnitt "Lösung " der Windows-Aktivierung im Szenario für erzwungenes Tunneling beschrieben. Wenden Sie diese Lösung an, wenn sie mit den Richtlinien Ihrer Organisation konsistent ist.
Lösung 2: (Für standardmäßiges internes Lastenausgleichsmodul) Verwenden eines NAT-Gateways oder eines standardmäßigen öffentlichen Lastenausgleichsmoduls
Wenn ein standardmäßiger interner Lastenausgleich Datenverkehr blockiert, gibt es zwei verschiedene Ansätze zum Beheben des Problems, wie unter Verwendung der Quellnetzwerkadressübersetzung (Source Network Address Translation, SNAT) für ausgehende Verbindungen beschrieben:
Ordnen Sie dem Subnetz ein NAT-Gateway (Network Address Translation) zu.
Es wird empfohlen, eine NAT-Konfiguration für azure Virtual Network für ausgehende Verbindungen in Produktionsbereitstellungen zu verwenden. Weitere Informationen zu Azure NAT Gateway finden Sie unter Was ist Azure NAT Gateway?.
Wenn es jedoch eine Anforderung gibt, den gesamten Internetdatenverkehr zu blockieren, stellen Sie sicher, dass Sie den ausgehenden Internetzugriff verweigern, indem Sie eine Netzwerksicherheitsgruppe (NSG)-Regel im Subnetz der VM verwenden, die Sie aktivieren müssen. Beachten Sie, dass der Datenverkehr der Betriebssystemaktivierung an die KMS-IPs an Port 1688 aufgrund von plattforminternen Regeln weiterhin aktiviert bleibt.
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.