Share via


Fout 0xC004F074 'Er kan geen contact worden opgenomen met KMS (Key Management Service) '

In dit artikel wordt beschreven hoe u de 0xC004F074 fout kunt oplossen die optreedt wanneer u een virtuele Windows-machine (VM) in Microsoft Azure probeert te activeren.

Voorwaarden

Symptomen

Wanneer u een Azure Windows-VM probeert te activeren, wordt het volgende foutbericht weergegeven in Windows Script Host:

Fout: 0xC004F074 De Software Licensing Service heeft gerapporteerd dat de computer niet kan worden geactiveerd. Er kan geen contact worden opgenomen met kms (Key Management Service). Raadpleeg het gebeurtenislogboek van de toepassing voor meer informatie.

Oorzaak

De VM kan geen verbinding maken met de KMS-service voor activering. Als een Azure KMS wordt gebruikt voor activering (de standaardselectie), moet de activeringsaanvraag afkomstig zijn van een openbaar IP-adres van Azure. De mogelijke oorzaken voor deze verbindingsfout zijn:

  • Geforceerde tunneling, waarbij al het verkeer buiten Azure wordt gerouteerd (meestal naar een on-premises omgeving) met behulp van Azure ExpressRoute of een virtueel netwerkapparaat

  • Verkeer dat wordt geblokkeerd door een virtueel netwerkapparaat of een standaard interne load balancer

Onderzoek

Volg de driedelige procedure in de volgende secties om de specifieke oorzaak van het probleem te bepalen.

Deel 1: de juiste installatiesleutel voor de KMS-client configureren

Opmerking

Dit onderdeel is niet vereist voor VM's waarop Windows 10 Enterprise meerdere sessies worden uitgevoerd (ook wel Windows 10 Enterprise voor virtuele bureaubladen genoemd) in Azure Virtual Desktop).

Voer de volgende Software License Manager-scriptopdracht uit om te bepalen of op uw VM de editie met meerdere sessies wordt uitgevoerd:

slmgr.vbs /dlv

Als de uitvoer de Name: Windows(R), ServerRdsh edition tekenreeks bevat, wordt op de VM de editie met meerdere sessies uitgevoerd en kunt u de rest van dit deel overslaan.

Opmerking

Als u een Windows 10 Enterprise VM met meerdere sessies implementeert en vervolgens de productcode bijwerkt naar een andere editie, kunt u de VM niet terugzetten naar Windows 10 Enterprise meerdere sessies. In plaats daarvan moet u de VM opnieuw implementeren. Zie Kan ik een Windows-VM upgraden naar Windows Enterprise met meerdere sessies? voor meer informatie.

Voor de VM die is gemaakt op basis van een aangepaste installatiekopieën, moet u de juiste installatiesleutel voor de KMS-client configureren voor de VM. Volg deze stappen:

  1. Voer in een opdrachtpromptvenster met verhoogde bevoegdheid de volgende Software License Manager-scriptopdracht uit:

    cscript c:\windows\system32\slmgr.vbs /dlv
    
  2. Controleer de Description waarde in de uitvoer om te bepalen of de VM is gemaakt op basis van handelslicentiemedia (RETAIL kanaal) of volume (VOLUME_KMSCLIENT).

  3. Als de vorige opdrachtuitvoer het RETAIL kanaal aangeeft, voert u de volgende Software License Manager-scriptopdrachten uit. Met de eerste opdracht wordt de installatiesleutel van de KMS-client ingesteld voor de versie van Windows Server die wordt gebruikt, en de tweede opdracht dwingt een andere activeringspoging af.

    cscript c:\windows\system32\slmgr.vbs /ipk <kms-client-setup-key>
    cscript c:\windows\system32\slmgr.vbs /ato
    

    Als u bijvoorbeeld Windows Server 2016 Datacenter gebruikt, wordt de eerste opdracht als volgt weergegeven:

    cscript c:\windows\system32\slmgr.vbs /ipk CB7KF-BWN84-R7R2Y-793K2-8XDDG
    

Deel 2: Controleer of de VM zich achter een interne load balancer van de Standard-SKU bevindt

Volg deze stappen om te controleren of de VM zich achter een interne load balancer van Standard SKU bevindt die uitgaand internetverkeer standaard blokkeert:

  1. Zoek en selecteer virtuele machines in de Azure Portal.

  2. Selecteer in de lijst met virtuele machines de naam van uw VM.

  3. Zoek in het menuvenster voor uw VM de kop Netwerken en selecteer vervolgens Taakverdeling. Als u een bericht ziet met de melding Geen taakverdelingsresources om weer te geven, bevindt de VM zich niet achter een load balancer. In dit geval kunt u doorgaan met Deel 3: Controleer de connectiviteit tussen de VM en de Azure KMS-service.

  4. Als u een load balancer-resource ziet, selecteert u de naam van de load balancer om naar de pagina Overzicht van de load balancer te gaan.

  5. Selecteer Eigenschappen in het menuvenster van de load balancer.

  6. Zoek op de pagina Eigenschappen de waarden voor SKU en Taakverdelingstype en zie vervolgens de volgende tabel voor conclusies.

    Waarden van SKU en taakverdelingstype Conclusie
    De SKU-waarde is Standaard en de waarde van taakverdelingstype is Privé. De VM bevindt zich achter een interne load balancer van de Standard-SKU die uitgaand internetverkeer standaard blokkeert. Zie Oplossing 2: (Voor standaard interne load balancer) Een NAT-gateway of een standaard openbare load balancer gebruiken om uitgaande connectiviteit in te schakelen.
    De SKU-waarde is niet Standaard en de waarde van taakverdelingstype is Openbaar. De VM bevindt zich niet achter een interne load balancer van de Standard-SKU en uitgaand internetverkeer wordt niet standaard geblokkeerd. Ga door naar deel 3: controleer de connectiviteit tussen de VM en de Azure KMS-service.

Deel 3: De connectiviteit tussen de VM en azure KMS-service controleren

  1. Zorg ervoor dat de VM is geconfigureerd voor het gebruik van de juiste Azure KMS-server. Voer hiervoor de volgende Software License Manager-scriptopdracht uit:

    Invoke-Expression "$env:windir\system32\cscript.exe $env:windir\system32\slmgr.vbs /skms azkms.core.windows.net:1688"
    

    Met deze opdracht moet de volgende tekst worden geretourneerd:

    De naam van de sleutelbeheerservice is ingesteld op azkms.core.windows.net:1688 geslaagd.

  2. Zorg ervoor dat de firewall op de VM uitgaand netwerkverkeer naar het KMS-eindpunt op poort 1688 niet blokkeert. U kunt dit doen door een van de volgende opties toe te passen:

    • Controleer de connectiviteit door de cmdlet Test-NetConnection uit te voeren in PowerShell:

      Test-NetConnection azkms.core.windows.net -port 1688
      

      Als de verbindingspoging is toegestaan, geeft de cmdlet 'TcpTestSucceeded: True' weer in de uitvoertekst.

    • Controleer de connectiviteit door het hulpprogramma PsPing uit te voeren:

      .\psping.exe azkms.core.windows.net:1688
      

      In de uitvoer van de opdracht moet de op een na laatste regel lijken op de volgende tekst:

      Sent = 4, Received = 4, Lost = 0 (0% loss)

      Als Lost groter is dan 0 (nul), heeft de VM geen verbinding met de KMS-server. In deze situatie, als de VM zich in een virtueel netwerk bevindt en een aangepaste DNS-server heeft opgegeven, moet u ervoor zorgen dat de DNS-server de azkms.core.windows.net domeinnaam kan omzetten. Als dit niet mogelijk is, wijzigt u de DNS-server in een server die kan worden omgezet azkms.core.windows.net.

      Opmerking

      Als u alle DNS-servers uit een virtueel netwerk verwijdert, gebruiken VM's de interne DNS-service van Azure. Deze service kan worden opgelost kms.core.windows.net.

  3. Gebruik een Azure Network Watcher volgende hoptest om te controleren of het volgende hoptype internet is van de betreffende VM naar bepaalde bestemmingen. Voer de volgende stappen uit om de volgende hoptest toe te passen:

    1. Zoek en selecteer virtuele machines in de Azure Portal.

    2. Selecteer in de lijst met virtuele machines de naam van uw VM.

    3. Zoek in het menuvenster van uw VM de kop Help en selecteer vervolgens Verbindingsproblemen oplossen.

    4. Geef op de pagina Verbindingsproblemen oplossen van uw VM de volgende veldwaarden op.

      Veld Waarde
      Doeltype Handmatig opgeven
      URI, FQDN of IP-adres 20.118.99.224, 40.83.235.53 (voor azkms.core.windows.net), of het IP-adres van het juiste KMS-eindpunt dat van toepassing is op uw regio
      Doelpoort 1688
      Bronpoort 1688
      Diagnostische tests Volgende hop
    5. Selecteer de knop Diagnostische tests uitvoeren .

    6. Nadat de diagnostische tests zijn voltooid, controleert u het vak Resultaten dat onder de knop wordt weergegeven. De test Volgende hop (van bron) moet de statuswaardeGeslaagd hebben en de waarde Details moet Het volgende hoptype: Internet bevatten in de tekst. Als het volgende hoptype Internet is, herhaalt u de volgende hoptest voor elk van de resterende IP-adressen. Als het volgende hoptype echter wordt weergegeven als VirtualAppliance, VirtualNetworkGateway of iets anders dan Internet, treedt waarschijnlijk een van de volgende scenario's op:

      • Er bestaat een standaardroute waarmee het verkeer buiten Azure wordt gerouteerd voordat het verkeer naar het Azure KMS-eindpunt wordt verzonden.

      • Verkeer wordt ergens langs het pad geblokkeerd.

      Zie Oplossing 1 voor deze scenario's : (Voor geforceerde tunneling) Gebruik de aangepaste Azure-route om activeringsverkeer naar de Azure KMS-server te routeren.

  4. Nadat u hebt gecontroleerd of een verbinding met azkms.core.windows.net is geslaagd, voert u de volgende opdracht uit bij de prompt met verhoogde Windows PowerShell. Met deze opdracht wordt geprobeerd de Windows-VM meerdere keren te activeren:

    1..12 | ForEach-Object {
        Invoke-Expression "$env:windir\system32\cscript.exe $env:windir\system32\slmgr.vbs /ato";
        Start-Sleep 5
    }
    

    Als de activeringspoging is geslaagd, wordt met de opdracht een bericht weergegeven dat lijkt op de volgende tekst:

    Windows(R), Server Datacenter-editie (<kms-client-product-key>) activeren... Het product is geactiveerd.

Oplossing 1: (voor geforceerde tunneling) Gebruik de aangepaste Azure-route om activeringsverkeer naar de Azure KMS-server te routeren

Als de oorzaak een scenario voor geforceerde tunneling is waarin verkeer buiten Azure wordt gerouteerd, neemt u contact op met uw netwerkbeheerder om de juiste actie te bepalen. Een mogelijke oplossing wordt beschreven in de sectie Oplossing van windows-activering mislukt in scenario met geforceerde tunneling. Pas deze oplossing toe als deze consistent is met het beleid van uw organisatie.

Oplossing 2: (voor standaard interne load balancer) Gebruik een NAT-gateway of een standaard openbare load balancer

Als een standaard interne load balancer verkeer blokkeert, zijn er twee verschillende benaderingen om het probleem op te lossen, zoals beschreven in SNAT (Source Network Address Translation) gebruiken voor uitgaande verbindingen:

U wordt aangeraden een Azure Virtual Network NAT-configuratie te gebruiken voor uitgaande connectiviteit in productie-implementaties. Zie Wat is Azure NAT Gateway? voor meer informatie over Azure NAT Gateway

Als er echter een vereiste is om al het internetverkeer te blokkeren, moet u uitgaande internettoegang weigeren met behulp van een netwerkbeveiligingsgroepregel (NSG) op het subnet van de VM die u moet activeren. U ziet dat activeringsverkeer van het besturingssysteem naar de KMS-IP-adressen op poort 1688 ingeschakeld blijft vanwege interne regels van het platform.

Contacteer ons voor hulp

Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Feedback-community van Azure.