Udostępnij za pośrednictwem


Błąd 0xC004F074 "Nie można skontaktować się z usługą zarządzania kluczami (KMS)"

W tym artykule omówiono sposób rozwiązywania błędu 0xC004F074 występującego podczas próby aktywowania maszyny wirtualnej z systemem Windows na platformie Microsoft Azure.

Wymagania wstępne

Symptomy

Podczas próby aktywowania maszyny wirtualnej z systemem Windows platformy Azure na hoście skryptów systemu Windows występuje następujący komunikat o błędzie:

Błąd: 0xC004F074 Usługa licencjonowania oprogramowania zgłosiła, że nie można aktywować komputera. Nie można skontaktować się z usługą zarządzania kluczami (KMS). Aby uzyskać dodatkowe informacje, zobacz dziennik zdarzeń aplikacji.

Przyczyna

Maszyna wirtualna nie może nawiązać połączenia z usługą KMS w celu aktywacji. Jeśli usługa Azure KMS jest używana do aktywacji (wybór domyślny), żądanie aktywacji musi pochodzić z publicznego adresu IP platformy Azure. Możliwe przyczyny tego błędu łączności obejmują:

  • Wymuszone tunelowanie, w którym cały ruch jest kierowany poza platformę Azure (zazwyczaj do środowiska lokalnego) przy użyciu usługi Azure ExpressRoute lub wirtualnego urządzenia sieciowego

  • Ruch zablokowany przez wirtualne urządzenie sieciowe lub standardowy wewnętrzny moduł równoważenia obciążenia

Dochodzenia

Aby określić konkretną przyczynę problemu, wykonaj trzyczęściową procedurę w poniższych sekcjach.

Część 1. Konfigurowanie odpowiedniego klucza konfiguracji klienta usługi KMS

Uwaga

Ta część nie jest wymagana dla maszyn wirtualnych, które działają Windows 10 Enterprise wielu sesjach (znanych również jako Windows 10 Enterprise dla pulpitów wirtualnych) w usłudze Azure Virtual Desktop).

Aby określić, czy na maszynie wirtualnej jest uruchomiona wersja wielosesyjna, uruchom następujące polecenie skryptu programu Software License Manager:

slmgr.vbs /dlv

Jeśli dane wyjściowe zawierają Name: Windows(R), ServerRdsh edition ciąg, maszyna wirtualna uruchamia edycję wielosesyjną i możesz pominąć resztę tej części.

Uwaga

Jeśli wdrożysz Windows 10 Enterprise maszynę wirtualną z wieloma sesjami, a następnie zaktualizujesz klucz produktu do innej wersji, nie będzie można przywrócić maszyny wirtualnej do Windows 10 Enterprise wielu sesji. Zamiast tego należy ponownie wdrożyć maszynę wirtualną. Aby uzyskać więcej informacji, zobacz Czy mogę uaktualnić maszynę wirtualną z systemem Windows do wielu sesji systemu Windows Enterprise?

W przypadku maszyny wirtualnej utworzonej na podstawie obrazu niestandardowego należy skonfigurować odpowiedni klucz konfiguracji klienta usługi KMS dla maszyny wirtualnej. Wykonaj następujące czynności:

  1. W oknie wiersza polecenia z podwyższonym poziomem uprawnień uruchom następujące polecenie skryptu programu Software License Manager:

    cscript c:\windows\system32\slmgr.vbs /dlv
    
  2. Description Sprawdź wartość w danych wyjściowych, aby ustalić, czy maszyna wirtualna została utworzona na podstawie nośnika licencji sprzedaży detalicznej (RETAILkanału) lub woluminu (VOLUME_KMSCLIENT).

  3. Jeśli poprzednie dane wyjściowe polecenia wskazują RETAIL kanał, uruchom następujące polecenia skryptu programu Software License Manager. Pierwsze polecenie ustawia klucz konfiguracji klienta usługi KMS dla używanej wersji systemu Windows Server, a drugie polecenie wymusza kolejną próbę aktywacji.

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

    Jeśli na przykład używasz Windows Server 2016 Datacenter, pierwsze polecenie zostanie wyświetlone w następujący sposób:

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

Część 2. Sprawdzanie, czy maszyna wirtualna znajduje się za wewnętrznym modułem równoważenia obciążenia jednostki SKU w warstwie Standardowa

Wykonaj następujące kroki, aby sprawdzić, czy maszyna wirtualna znajduje się za wewnętrznym modułem równoważenia obciążenia jednostki SKU w warstwie Standardowa, który domyślnie blokuje wychodzący ruch internetowy:

  1. W Azure Portal wyszukaj i wybierz pozycję Maszyny wirtualne.

  2. Na liście maszyn wirtualnych wybierz nazwę maszyny wirtualnej.

  3. W okienku menu maszyny wirtualnej znajdź nagłówek Sieć , a następnie wybierz pozycję Równoważenie obciążenia. Jeśli zostanie wyświetlony komunikat z informacją Brak zasobów równoważenia obciążenia do wyświetlenia, maszyna wirtualna nie znajduje się za żadnym modułem równoważenia obciążenia. W takim przypadku możesz przejść do części 3: sprawdź łączność między maszyną wirtualną a usługą Azure KMS.

  4. Jeśli widzisz zasób modułu równoważenia obciążenia, wybierz nazwę modułu równoważenia obciążenia, aby przejść do strony Przegląd modułu równoważenia obciążenia.

  5. W okienku menu modułu równoważenia obciążenia wybierz pozycję Właściwości.

  6. Na stronie Właściwości znajdź wartości jednostki SKU i typu równoważenia obciążenia, a następnie zapoznaj się z poniższą tabelą, aby uzyskać wnioski.

    Wartości jednostki SKU i typu równoważenia obciążenia Wniosku
    Wartość jednostki SKU to Standardowa, a wartość Typ równoważenia obciążenia to Prywatna. Maszyna wirtualna znajduje się za wewnętrznym modułem równoważenia obciążenia jednostki SKU w warstwie Standardowa, który domyślnie blokuje wychodzący ruch internetowy. Aby włączyć łączność wychodzącą, zobacz Rozwiązanie 2: (W przypadku wewnętrznego modułu równoważenia obciążenia w warstwie Standardowa) Używanie bramy TRANSLATOR lub publicznego modułu równoważenia obciążenia w warstwie Standardowa.
    Wartość jednostki SKU nie jest standardowa, a wartość Typ równoważenia obciążenia to Publiczna. Maszyna wirtualna nie znajduje się za wewnętrznym modułem równoważenia obciążenia jednostki SKU w warstwie Standardowa, a wychodzący ruch internetowy nie jest domyślnie blokowany. Przejdź do części 3. Sprawdź łączność między maszyną wirtualną a usługą Azure KMS.

Część 3. Weryfikowanie łączności między maszyną wirtualną a usługą Azure KMS

  1. Upewnij się, że maszyna wirtualna jest skonfigurowana do używania poprawnego serwera usługi Azure KMS. W tym celu uruchom następujące polecenie skryptu programu Software License Manager:

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

    To polecenie powinno zwrócić następujący tekst:

    Nazwa maszyny usługi zarządzania kluczami ustawiona na azkms.core.windows.net:1688 pomyślnie.

  2. Upewnij się, że zapora na maszynie wirtualnej nie blokuje ruchu wychodzącego sieciowego do punktu końcowego usługi KMS na porcie 1688. W tym celu zastosuj jedną z następujących opcji:

    • Sprawdź łączność, uruchamiając polecenie cmdlet Test-NetConnection w programie PowerShell:

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

      Jeśli próba połączenia jest dozwolona, polecenie cmdlet wyświetla "TcpTestSucceeded: True" w tekście wyjściowym.

    • Sprawdź łączność, uruchamiając narzędzie PsPing:

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

      W danych wyjściowych polecenia od drugiego do ostatniego wiersza powinien być podobny do następującego tekstu:

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

      Jeśli Lost wartość jest większa niż 0 (zero), maszyna wirtualna nie ma łączności z serwerem usługi KMS. W takiej sytuacji, jeśli maszyna wirtualna znajduje się w sieci wirtualnej i ma określony niestandardowy serwer DNS, należy upewnić się, że serwer DNS może rozpoznać azkms.core.windows.net nazwę domeny. Jeśli nie, zmień serwer DNS na taki, który może rozwiązać problem azkms.core.windows.net.

      Uwaga

      Jeśli usuniesz wszystkie serwery DNS z sieci wirtualnej, maszyny wirtualne będą używać wewnętrznej usługi DNS platformy Azure. Ta usługa może rozwiązać problem kms.core.windows.net.

  3. Użyj testu następnego przeskoku platformy Azure Network Watcher, aby sprawdzić, czy typ następnego przeskoku to Internet z maszyny wirtualnej, która ma problem, do określonych miejsc docelowych. Aby zastosować test następnego przeskoku, wykonaj następujące kroki:

    1. W Azure Portal wyszukaj i wybierz pozycję Maszyny wirtualne.

    2. Na liście maszyn wirtualnych wybierz nazwę maszyny wirtualnej.

    3. W okienku menu maszyny wirtualnej znajdź nagłówek Pomoc , a następnie wybierz pozycję Rozwiązywanie problemów z połączeniem.

    4. Na stronie Rozwiązywanie problemów z połączeniem maszyny wirtualnej określ następujące wartości pól.

      Pole Value
      Typ miejsca docelowego Ręczne określanie
      Identyfikator URI, nazwa FQDN lub adres IP 20.118.99.224, 40.83.235.53 (dla azkms.core.windows.net), lub adres IP odpowiedniego punktu końcowego usługi KMS, który ma zastosowanie do Twojego regionu
      Port docelowy 1688
      Port źródłowy 1688
      Testy diagnostyczne Następny przeskok
    5. Wybierz przycisk Uruchom testy diagnostyczne .

    6. Po zakończeniu testów diagnostycznych zapoznaj się z polem Wyniki wyświetlonym poniżej przycisku. Test Następny przeskok (ze źródła) powinien mieć wartość Stanpowodzenie, a wartość Szczegóły powinna zawierać typ następnego przeskoku: Internet w tekście. Jeśli typ następnego przeskoku to Internet, powtórz test następnego przeskoku dla każdej z pozostałych adresów IP. Jeśli jednak typ następnego przeskoku jest wyświetlany jako VirtualAppliance, VirtualNetworkGateway lub cokolwiek innego niż Internet, prawdopodobnie występuje jeden z następujących scenariuszy:

      • Istnieje trasa domyślna, która kieruje ruch poza platformę Azure przed wysłaniem ruchu do punktu końcowego usługi Azure KMS.

      • Ruch jest zablokowany gdzieś wzdłuż ścieżki.

      Aby zapoznać się z tymi scenariuszami, zobacz Rozwiązanie 1: (W przypadku wymuszonego tunelowania) Używanie niestandardowej trasy platformy Azure do kierowania ruchu aktywacji do serwera usługi Azure KMS.

  4. Po sprawdzeniu, czy połączenie z usługą zakończy się azkms.core.windows.net pomyślnie, uruchom następujące polecenie w tym wierszu Windows PowerShell z podwyższonym poziomem uprawnień. To polecenie próbuje aktywować maszynę wirtualną z systemem Windows kilka razy:

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

    Jeśli próba aktywacji zakończy się pomyślnie, polecenie wyświetli komunikat podobny do następującego tekstu:

    Aktywowanie systemu Windows(R), server datacenter edition (<kms-client-product-key>) ... Produkt został pomyślnie aktywowany.

Rozwiązanie 1: (W przypadku wymuszonego tunelowania) Użyj niestandardowej trasy platformy Azure do kierowania ruchu aktywacji do serwera usługi Azure KMS

Jeśli przyczyną jest scenariusz wymuszonego tunelowania, w którym ruch jest kierowany poza platformę Azure, skontaktuj się z administratorem sieci, aby określić prawidłowy kierunek działania. Jedno z możliwych rozwiązań zostało opisane w sekcji Rozwiązanieaktywacji systemu Windows kończy się niepowodzeniem w scenariuszu wymuszonego tunelowania. Zastosuj to rozwiązanie, jeśli jest ono zgodne z zasadami organizacji.

Rozwiązanie 2: (W przypadku wewnętrznego modułu równoważenia obciążenia w warstwie Standardowa) Użyj bramy TRANSLATOR lub publicznego modułu równoważenia obciążenia w warstwie Standardowa

Jeśli standardowy wewnętrzny moduł równoważenia obciążenia blokuje ruch, istnieją dwie różne metody rozwiązywania problemu, zgodnie z opisem w temacie Use Source Network Address Translation (SNAT) for outbound connections (Używanie tłumaczenia adresów sieciowych źródłowych (SNAT) dla połączeń wychodzących:

Zalecamy użycie konfiguracji translatora adresów sieciowych usługi Azure Virtual Network na potrzeby łączności wychodzącej we wdrożeniach produkcyjnych. Aby uzyskać więcej informacji na temat usługi Azure NAT Gateway, zobacz Co to jest usługa Azure NAT Gateway?

Jeśli jednak istnieje wymóg blokowania całego ruchu internetowego, upewnij się, że odmawiasz wychodzącego dostępu do Internetu przy użyciu reguły sieciowej grupy zabezpieczeń w podsieci maszyny wirtualnej, którą musisz aktywować. Zwróć uwagę, że ruch aktywacji systemu operacyjnego do adresów IP usługi KMS na porcie 1688 pozostaje włączony z powodu wewnętrznych reguł platformy.

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.