Udostępnij za pośrednictwem


Błąd 0xC004F074: „Nie można nawiązać połączenia z usługą zarządzania kluczami”.

Dotyczy: ✔️ maszyny wirtualne z systemem Windows

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 na platformie Azure w hoście skryptów systemu Windows jest wyświetlany 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 nawiązać połączenia z usługą zarządzania kluczami. Dodatkowe informacje można znaleźć w dzienniku 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

Badanie

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 16.

Ta część nie jest wymagana w przypadku maszyn wirtualnych z wieloma sesjami systemu Windows 10 Enterprise (znanym także jako Windows 10 Enterprise for Virtual Desktop) w usłudze Azure Virtual Desktop).

Aby określić, czy maszyna wirtualna korzysta z wersji wielosesyjnej, 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 jest uruchomiona w wersji wielosesyjnej i możesz pominąć pozostałą część tej części.

Uwaga 16.

Jeśli wdrożysz maszynę wirtualną z wieloma sesjami systemu Windows 10 Enterprise, a następnie zaktualizujesz klucz produktu do innej wersji, nie możesz przywrócić maszyny wirtualnej do wielosesyjnej sesji systemu Windows 10 Enterprise. 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?

Dla maszyny wirtualnej utworzonej na podstawie obrazu niestandardowego należy skonfigurować odpowiedni klucz konfiguracji klienta usługi KMS dla maszyny wirtualnej. Wykonaj te kroki:

  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 określić, czy maszyna wirtualna została utworzona na podstawie nośnika licencji retail (RETAILkanał) lub zbiorczego (VOLUME_KMSCLIENT).

  3. Jeśli poprzednie dane wyjściowe polecenia wskazują RETAIL kanał, uruchom następujące polecenia skryptu menedżera licencji oprogramowania. 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 systemu Windows Server 2016 Datacenter, pierwsze polecenie będzie wyświetlane 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 witrynie 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 Bez 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 jednostek SKU i Typu równoważenia obciążenia, a następnie zapoznaj się z poniższą tabelą, aby uzyskać wnioski.

    Wartości typu jednostki SKU i równoważenia obciążenia Podsumowanie
    Wartość jednostki SKU to Standardowa, a wartość Typ równoważenia obciążenia to Prywatny. 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 standardowego wewnętrznego modułu równoważenia obciążenia) Użyj bramy translatora adresów sieciowych lub standardowego publicznego modułu równoważenia obciążenia.
    Wartość jednostki SKU nie jest standardowa, a wartość Typ równoważenia obciążenia jest 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 właściwego 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:

    Pomyślnie ustawiono nazwę maszyny usługi zarządzania kluczami azkms.core.windows.net:1688.

  2. Upewnij się, że zapora na maszynie wirtualnej nie blokuje wychodzącego ruchu 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świetli ciąg "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 drugi do ostatniego wiersza powinien przypominać następujący tekst:

      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 rozpoznać azkms.core.windows.net.

      Uwaga 16.

      Jeśli usuniesz wszystkie serwery DNS z sieci wirtualnej, maszyny wirtualne używają 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 usługi Azure Network Watcher, aby sprawdzić, czy typ następnego przeskoku to Internet z maszyny wirtualnej, której dotyczy problem, do określonych miejsc docelowych. Aby zastosować test następnego przeskoku, wykonaj następujące kroki:

    1. W witrynie 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 Wartość
      Typ docelowy Określ ręcznie
      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 przejrzyj pole Wyniki wyświetlane poniżej przycisku. Test Następnego przeskoku (ze źródła) powinien mieć wartość Stan Powodzenie, 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żdego 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ąpi 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 blokowany gdzieś wzdłuż ścieżki.

      W przypadku tych scenariuszy zobacz Rozwiązanie 1: (W przypadku wymuszonego tunelowania) Użyj trasy niestandardowej platformy Azure, aby kierować ruch aktywacji do serwera usługi Azure KMS.

  4. Po upewnieniu się, że połączenie z programem zakończy się azkms.core.windows.net pomyślnie, uruchom następujące polecenie w wierszu polecenia programu 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), wersja Server Datacenter (<kms-client-product-key>) ... Produkt został pomyślnie aktywowany.

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

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

Rozwiązanie 2: (W przypadku standardowego wewnętrznego modułu równoważenia obciążenia) Użyj bramy translatora adresów sieciowych 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ą dwa różne podejścia do rozwiązania problemu, zgodnie z opisem w temacie Use Source Network Address Translation (SNAT) for outbound connections (Use Source Network Address Translation( SNAT) for outbound connections (Korzystanie ze źródłowego tłumaczenia adresów sieciowych (SNAT):

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 nie zezwalasz na wychodzący dostęp 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 reguł wewnętrznych 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 na temat platformy Azure.