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
- PowerShell
- Skrypt Menedżera licencji oprogramowania (slmgr.vbs)
- Narzędzie PsPing
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:
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
Description
Sprawdź wartość w danych wyjściowych, aby ustalić, czy maszyna wirtualna została utworzona na podstawie nośnika licencji sprzedaży detalicznej (RETAIL
kanału) lub woluminu (VOLUME_KMSCLIENT
).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:
W Azure Portal wyszukaj i wybierz pozycję Maszyny wirtualne.
Na liście maszyn wirtualnych wybierz nazwę maszyny wirtualnej.
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.
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.
W okienku menu modułu równoważenia obciążenia wybierz pozycję Właściwości.
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
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.
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ć problemazkms.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
.
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:
W Azure Portal wyszukaj i wybierz pozycję Maszyny wirtualne.
Na liście maszyn wirtualnych wybierz nazwę maszyny wirtualnej.
W okienku menu maszyny wirtualnej znajdź nagłówek Pomoc , a następnie wybierz pozycję Rozwiązywanie problemów z połączeniem.
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 regionuPort docelowy 1688 Port źródłowy 1688 Testy diagnostyczne Następny przeskok Wybierz przycisk Uruchom testy diagnostyczne .
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.
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:
Skojarz bramę translatora adresów sieciowych (NAT) z podsiecią.
Zmień na standardowy publiczny moduł równoważenia obciążenia i zdefiniuj reguły ruchu wychodzącego.
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.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla