Dela via


Fel 0xC004F074 "Ingen nyckelhanteringstjänst (KMS) kunde kontaktas"

Den här artikeln beskriver hur du löser det 0xC004F074 fel som uppstår när du försöker aktivera en virtuell Windows-dator (VM) i Microsoft Azure.

Förutsättningar

Symptom

När du försöker aktivera en virtuell Azure Windows-dator visas följande felmeddelande i Windows Script Host:

Fel: 0xC004F074 Software Licensing Service rapporterade att datorn inte kunde aktiveras. Ingen nyckelhanteringstjänst (KMS) kunde kontaktas. Mer information finns i programhändelseloggen.

Orsak

Den virtuella datorn kan inte ansluta till KMS-tjänsten för aktivering. Om en Azure KMS används för aktivering (standardvalet) måste aktiveringsbegäran komma från en offentlig IP-adress i Azure. Möjliga orsaker till det här anslutningsfelet är:

  • Tvingad tunneltrafik, där all trafik dirigeras utanför Azure (vanligtvis till en lokal miljö) med hjälp av antingen Azure ExpressRoute eller en virtuell nätverksinstallation

  • Trafik som blockeras av antingen en virtuell nätverksinstallation eller en intern standardlastbalanserare

Undersökning

Om du vill fastställa den specifika orsaken till problemet följer du proceduren i tre delar i följande avsnitt.

Del 1: Konfigurera lämplig konfigurationsnyckel för KMS-klienten

Obs!

Den här delen krävs inte för virtuella datorer som kör Windows 10 Enterprise flera sessioner (kallas även Windows 10 Enterprise för virtuella skrivbord) i Azure Virtual Desktop).

Du kan ta reda på om den virtuella datorn kör multisessionsutgåvan genom att köra följande skriptkommando för Software License Manager:

slmgr.vbs /dlv

Om utdata innehåller strängen Name: Windows(R), ServerRdsh edition kör den virtuella datorn multisessionsutgåvan och du kan hoppa över resten av den här delen.

Obs!

Om du distribuerar en Windows 10 Enterprise virtuell dator med flera sessioner och sedan uppdaterar produktnyckeln till en annan utgåva kan du inte återställa den virtuella datorn till Windows 10 Enterprise flera sessioner. I stället måste du distribuera om den virtuella datorn. Mer information finns i Kan jag uppgradera en virtuell Windows-dator till Windows Enterprise multi-session?

För den virtuella dator som skapas från en anpassad avbildning måste du konfigurera lämplig KMS-klientkonfigurationsnyckel för den virtuella datorn. Gör så här:

  1. Kör följande skriptkommando för Software License Manager i ett upphöjt kommandotolkfönster:

    cscript c:\windows\system32\slmgr.vbs /dlv
    
  2. Kontrollera värdet Description i utdata för att avgöra om den virtuella datorn har skapats från återförsäljningslicensmedia (RETAIL kanal) eller volym (VOLUME_KMSCLIENT).

  3. Om föregående kommandoutdata anger RETAIL kanalen kör du följande Software License Manager-skriptkommandon. Det första kommandot anger konfigurationsnyckeln för KMS-klienten för den version av Windows Server som används, och det andra kommandot tvingar fram ytterligare ett aktiveringsförsök.

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

    Om du till exempel använder Windows Server 2016 Datacenter visas det första kommandot på följande sätt:

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

Del 2: Kontrollera om den virtuella datorn ligger bakom en intern standard-SKU-lastbalanserare

Följ de här stegen för att kontrollera om den virtuella datorn ligger bakom en intern standard-SKU-lastbalanserare som blockerar utgående Internettrafik som standard:

  1. I Azure Portal söker du efter och väljer Virtuella datorer.

  2. I listan över virtuella datorer väljer du namnet på den virtuella datorn.

  3. Leta upp rubriken Nätverk i menyfönstret för den virtuella datorn och välj sedan Belastningsutjämning. Om du ser ett meddelande om att det inte finns några belastningsutjämningsresurser att visa ligger den virtuella datorn inte bakom någon lastbalanserare. I det här fallet kan du gå vidare till del 3: Kontrollera anslutningen mellan den virtuella datorn och Azure KMS-tjänsten.

  4. Om du ser en lastbalanseringsresurs väljer du namnet på lastbalanseraren för att gå till lastbalanserarens översiktssida .

  5. I menyfönstret i lastbalanseraren väljer du Egenskaper.

  6. På sidan Egenskaper letar du upp värdena för SKU och Belastningsutjämningstyp och läser sedan följande tabell för slutsatser.

    Värden för SKU och belastningsutjämningstyp Sammanfattning
    SKU-värdet är Standard och värdet för belastningsutjämningstyp är Privat. Den virtuella datorn ligger bakom en intern standard-SKU-lastbalanserare som blockerar utgående Internettrafik som standard. Information om hur du aktiverar utgående anslutning finns i Lösning 2: (För intern standardlastbalanserare) Använd en NAT-gateway eller en offentlig standardlastbalanserare.
    SKU-värdet är inte Standard och värdet för belastningsutjämningstyp är offentligt. Den virtuella datorn ligger inte bakom en intern standard-SKU-lastbalanserare och utgående Internettrafik blockeras inte som standard. Fortsätt till del 3: Kontrollera anslutningen mellan den virtuella datorn och Azure KMS-tjänsten.

Del 3: Kontrollera anslutningen mellan den virtuella datorn och Azure KMS-tjänsten

  1. Kontrollera att den virtuella datorn är konfigurerad för att använda rätt Azure KMS-server. Det gör du genom att köra följande skriptkommando för Software License Manager:

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

    Det här kommandot ska returnera följande text:

    Nyckelhanteringstjänstens datornamn har angetts till azkms.core.windows.net:1688 korrekt.

  2. Kontrollera att brandväggen på den virtuella datorn inte blockerar utgående nätverkstrafik till KMS-slutpunkten på port 1688. Använd något av följande alternativ för att göra detta:

    • Kontrollera anslutningen genom att köra cmdleten Test-NetConnection i PowerShell:

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

      Om anslutningsförsöket tillåts visar cmdleten "TcpTestSucceeded: True" i utdatatexten.

    • Kontrollera anslutningen genom att köra PsPing-verktyget:

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

      I kommandots utdata bör den näst sista raden likna följande text:

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

      Om Lost är större än 0 (noll) har den virtuella datorn inte anslutning till KMS-servern. I det här fallet måste du se till att DNS-servern kan matcha domännamnet azkms.core.windows.net om den virtuella datorn finns i ett virtuellt nätverk och har en anpassad DNS-server angiven. Om det inte går ändrar du DNS-servern till en som kan matcha azkms.core.windows.net.

      Obs!

      Om du tar bort alla DNS-servrar från ett virtuellt nätverk använder virtuella datorer Azures interna DNS-tjänst. Den här tjänsten kan lösa kms.core.windows.net.

  3. Använd ett Azure Network Watcher nästa hopptest för att kontrollera att nästa hopptyp är Internet från den berörda virtuella datorn till specifika mål. Följ dessa steg för att tillämpa nästa hopptest:

    1. I Azure Portal söker du efter och väljer Virtuella datorer.

    2. I listan över virtuella datorer väljer du namnet på den virtuella datorn.

    3. Leta upp rubriken Hjälp i menyfönstret på den virtuella datorn och välj sedan Anslutningsfelsök.

    4. På sidan Anslutningsfelsökning för den virtuella datorn anger du följande fältvärden.

      Fält Värde
      Måltyp Ange manuellt
      URI, FQDN eller IP-adress 20.118.99.224, 40.83.235.53 (för ) eller IP-adressen för azkms.core.windows.netlämplig KMS-slutpunkt som gäller för din region
      Målport 1688
      Källport 1688
      Diagnostiska tester Nästa hopp
    5. Välj knappen Kör diagnostiktester .

    6. När diagnostiktesterna är klara granskar du rutan Resultat som visas under knappen. Testet Nästa hopp (från källa) bör ha statusvärdetLyckades och värdet Information bör innehålla Nästa hopptyp: Internet i texten. Om nästa hopptyp är Internet upprepar du nästa hopptest för var och en av de återstående IP-adresserna. Men om nästa hopptyp visas som VirtualAppliance, VirtualNetworkGateway eller något annat än Internet, uppstår förmodligen något av följande scenarier:

      • Det finns en standardväg som dirigerar trafiken utanför Azure innan trafiken skickas till Azure KMS-slutpunkten.

      • Trafiken blockeras någonstans längs sökvägen.

      För dessa scenarier, se Lösning 1: (För tvingad tunneltrafik) Använd den anpassade Azure-vägen för att dirigera aktiveringstrafik till Azure KMS-servern.

  4. När du har kontrollerat att en anslutning till azkms.core.windows.net har slutförts kör du följande kommando i den upphöjda Windows PowerShell prompten. Det här kommandot försöker aktivera den virtuella Windows-datorn flera gånger:

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

    Om aktiveringsförsöket lyckas visar kommandot ett meddelande som liknar följande text:

    Aktiverar Windows(R), Server Datacenter Edition (<kms-client-product-key>) ... Produkten har aktiverats.

Lösning 1: (För tvingad tunneltrafik) Använd den anpassade Azure-vägen för att dirigera aktiveringstrafik till Azure KMS-servern

Om orsaken är ett scenario med tvingad tunneltrafik där trafiken dirigeras utanför Azure kan du kontakta nätverksadministratören för att fastställa rätt åtgärd. En möjlig lösning beskrivs i avsnittet Lösning i Windows-aktiveringen misslyckas i scenariot med tvingad tunneltrafik. Använd den här lösningen om den överensstämmer med organisationens principer.

Lösning 2: (För intern standardlastbalanserare) Använd en NAT-gateway eller en offentlig standardlastbalanserare

Om en intern standardlastbalanserare blockerar trafik finns det två olika metoder för att åtgärda problemet, enligt beskrivningen i Använda källnätverksadressöversättning (SNAT) för utgående anslutningar:

Vi rekommenderar att du använder en Azure Virtual Network NAT-konfiguration för utgående anslutning i produktionsdistributioner. Mer information om Azure NAT Gateway finns i Vad är Azure NAT Gateway?

Men om det finns ett krav på att blockera all Internettrafik kontrollerar du att du nekar utgående Internetåtkomst med hjälp av en nätverkssäkerhetsgruppsregel (NSG) i undernätet för den virtuella dator som du måste aktivera. Observera att operativsystemets aktiveringstrafik till KMS-IP-adresser på port 1688 fortfarande är aktiverad på grund av interna plattformsregler.

Kontakta oss för att få hjälp

Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.