Zawijanie liczników na serwerze KMS (niewystarczająca wartość licznika)

Na stronach naszej witryny wielokrotnie omawialiśmy funkcje instalacji, konfiguracji i działania usługi zarządzania kluczami Microsoft KMS (Key Management Service). Dzisiaj rozważymy koncepcję licznika aktywacji na serwerze KMS, funkcje rozliczania liczby aktywacji klienta na serwerze aktywacyjnym, sposoby wymuszenia licznika dla liczby aktywacji i dlaczego to wszystko jest konieczne.

Treść

  • Zasady KMS
  • Błąd aktywacji KMS 0xC004F038 - niewystarczająca wartość licznika
  • Skrypt do owijania licznika KMS
  • Zwiększenie licznika aktywacji za pomocą migawek maszyny wirtualnej

Zasady KMS

Jeszcze raz wróćmy do teoretycznych podstaw działania KMS.

Wskazówka. Zalecamy przeczytanie następujących artykułów na naszej stronie internetowej:

  • Zainstaluj KMS Server w systemie Windows Server 2012 R2
  • Aktywacja systemu Windows za pomocą usługi KMS (KMS Aktywacja systemu Windows 8.1, 2012 R2)
  • Aktywacja ADBA, aktywacja KMS MS Office 2013, 2010
Świetny przegląd systemu aktywacji KMS Microsoftu znajduje się w artykule FAQ na temat technologii aktywacji KMS. .

Zgodnie z programem licencjonowania zbiorowego firmy Microsoft (licencja zbiorowa) minimalna liczba licencji sprzedawanych w jednym pakiecie licencji wynosi 25. Każdy klient licencji korporacyjnej otrzymuje specjalny klucz aktywacyjny CSVLK (lub klucz hosta KMS), za pomocą którego aktywowany jest wewnętrzny serwer KMS firmy. W przyszłości klienci (zarówno system operacyjny Windows, jak i pakiet biurowy MS Office) w sieci firmowej mogą być aktywowani na tym serwerze KMS, bez konieczności uzyskiwania dostępu do serwerów aktywacji Microsoft w Internecie.

Błąd aktywacji KMS 0xC004F038 - niewystarczająca wartość licznika

Jednak wszyscy administratorzy nieuchronnie napotykają fakt, że natychmiast po zainstalowaniu i aktywacji serwera KMS nie aktywuje systemów operacyjnych klientów, którzy się z nim kontaktują. Podczas próby aktywacji systemu operacyjnego na nowym serwerze KMS (w tym przykładzie Windows 7 Pro) pojawia się błąd:

Aktywacja systemu Windows 7, edycja Professional

0xc004f038: Usługa licencjonowania oprogramowania zgłosiła, że ​​nie można aktywować komputera. Liczba zgłoszona przez usługę zarządzania kluczami (KMS) jest niewystarczająca. Skontaktuj się z administratorem systemu.


W rosyjskiej wersji systemu Windows 7 błąd wygląda następująco:

Błąd: 0xc004f038. Usługa licencjonowania oprogramowania zgłosiła, że ​​aktywacja nie była możliwa dla tego komputera. Wartość licznika zgłoszona przez usługę zarządzania kluczami (KMS) nie jest wystarczająca. Skontaktuj się z administratorem systemu.

Faktem jest, że na serwerze KMS istnieje tzw. licznik aktywacji (km liczyć) który zwiększa się o jeden po otrzymaniu nowego żądania aktywacji od klienta w sieci. Podczas uzyskiwania dostępu do usługi zarządzania kluczami serwer przypisuje unikalny identyfikator każdemu klientowi. CMID (identyfikacja komputera klienckiego) i umieszcza go w swojej bazie danych. W takim przypadku system operacyjny komputera, z którego otrzymano żądanie, nie jest aktywowany natychmiast. Te żądania aktywacji są gromadzone w wewnętrznej pamięci podręcznej serwera KMS. Dzieje się tak, dopóki w bazie danych KMS nie zostanie osiągnięty określony minimalny próg żądań aktywacji otrzymanych od klientów w ciągu ostatnich 30 dni. Ten próg to 5 żądań aktywacji z systemów operacyjnych serwera lub 25 żądań z systemów operacyjnych klienta Windows (progi aktywacji systemów operacyjnych dla komputerów stacjonarnych / serwerów są niezależne, tj. Jeśli licznik KMS na serwerze dla systemów klienckich przekroczy 25, serwer ten nadal nie będzie aktywuj północny system operacyjny, dopóki liczba żądań aktywacji z tych platform nie osiągnie 5). Jeśli klient nie skontaktuje się z serwerem aktywacyjnym KMS w ciągu 30 dni, zostanie automatycznie usunięty z bazy danych KMS, a licznik aktywacji zostanie zmniejszony o jeden.

Uzyskaj wartość CMID na określonym komputerze można użyć następującego polecenia:

Get-WmiObject -class SoftwareLicensingService -ComputerName pc1 | Wybierz obiekt ClientMachineID

Możesz zresetować bieżący identyfikator CMID, uruchamiając sysprep lub używając polecenia:

slmgr / rearm  (potrzebujesz ponownego uruchomienia).

W dowolnym momencie można wyświetlić łączną liczbę żądań aktywacji odebranych przez serwer KMS za pomocą polecenia:

slmgr / dli

W tym przykładzie wartość licznika na serwerze KMS wynosi 50 (bieżąca liczba).

Uwaga. Serwer KMS buforuje tylko ostatnie 50 CMID (tj. W tym przypadku liczba klientów serwera KMS może być znacznie większa niż 50).

Aby uzyskać dokładną wartość licznika, uruchom następującą komendę na serwerze KMS:

cscript slmgr.vbs / dlv 98ebfe73-2084-4c97-932c-c0cd1643bea7

Usługa zarządzania kluczami skumulowana liczba żądań otrzymanych od klientów
Całkowita liczba otrzymanych wniosków: 2563

Tj. Serwer KMS otrzymał 2563 żądań aktywacji od klientów.

Okres aktywacji klienta na serwerze KMS - 180 dni i co 7 dni (domyślnie 7 dni, możesz to zmienić za pomocą polecenia slmgr.vbs / sri) klient próbuje odnowić aktywację (na te same 180 dni). Jeśli klient nie odnowi aktywacji w ciągu 180 dni, serwer KMS usuwa identyfikator CMID klienta z bazy danych i zmniejsza licznik aktywacji. Jednocześnie system operacyjny klienta uważa się za aktywowany w ciągu 180 dni. Jeśli klient nie odnowił aktywacji na serwerze KMS w tym czasie, przełącza się w tryb okresu karencji.

Jeśli próbujesz aktywować system operacyjny klienta na serwerze KMS, a licznik się nie zwiększa, może to wynikać z następujących przyczyn:

  • Duplikat CMID (zwykle wynika to z klonowania systemu operacyjnego)
  • Obecność w sieci innych serwerów KMS. Domyślnie klienci mogą automatycznie znaleźć serwer KMS w domenie przy użyciu specjalnego rekordu DNS.  - srv _vlmcs._tcp (możesz uzyskać nazwę serwera, na którą wskazuje ten rekord za pomocą polecenia nslookup -type = srv _vlmcs._tcp) W takim przypadku możemy ręcznie określić konkretny serwer KMS w następujący sposób: slmgr / skms kms_server.winitpro.ru:1688)
  • Klient używa niewłaściwego klucza. Na przykład zamiast otwartego GVLK (ogólny klucz licencji zbiorczej) określono klucz MAK / retail lub określono klucz niezgodny z używanym systemem operacyjnym.

Skrypt do owijania licznika KMS

W niektórych przypadkach, nawet przy zakupionym kluczu VLC, może być trudno od razu uzyskać odpowiednią liczbę klientów potrzebną do przekroczenia progu aktywacji serwera KMS i rozpoczęcia aktywacji klientów (problem dotyczy szczególnie małych lub izolowanych sieci). W takim przypadku po aktywowaniu klienta na serwerze pojawi się błąd 0xC004F038.

W takim przypadku administrator zaczyna myśleć o sztucznym zawinięciu licznika aktywacji KMS. Jednak nie wszystko jest takie proste ... Ani sysprep, ani zmiana adresu MAC karty sieciowej nie pomoże oszukać serwera KMS. Jako dość popularną opcję proponuje się utworzenie brakującej liczby maszyn wirtualnych i aktywację ich na serwerze KMS (maszyny wirtualne muszą być unikalne i nie mogą być tworzone z jednego szablonu). Ale ta metoda jest dość czasochłonna i wymaga obsługi tych maszyn wirtualnych (lub ich ponownego wdrożenia, włączenia i aktywacji co 180 dni).

Jako prostszą alternatywę zalecamy użycie następującego skryptu, który pozwala włącz licznik aktywacji Serwer KMS. Zainstaluj wymaganą wersję systemu operacyjnego (w tym przykładzie Windows 7 Professional), utwórz dowolny katalog, skopiuj do niego następujący plik nietoperza, w tym samym katalogu utwórz dwa puste pliki o nazwach:

7B296FB0-376B-497e-B012-9C450E1B7327-5P-0.C7483456-A289-439d-8115-601632D005A0
7B296FB0-376B-497e-B012-9C450E1B7327-5P-1.C7483456-A289-439d-8115-601632D005A0

Uruchom plik kms_increase.bat:

@echo wyłączone
ustaw skms = kms1.winitpro.ru
dla %% i w (...) zadzwoń: Act% skms%
slmgr / ato
sc stop sppsvc
goto: koniec
: Act
sc stop sppsvc
xcopy "7B296FB0-376B-497e-B012-9C450E1B7327-5P-0.C7483456-A289-439d-8115-601632D005A0" "% systemroot% \ system32 \ *" / H / R / K / Y
xcopy "7B296FB0-376B-497e-B012-9C450E1B7327-5P-1.C7483456-A289-439d-8115-601632D005A0" "% systemroot% \ system32 \ *" / H / R / K / Y
sc start sppsvc
cscript.exe "% systemroot% \ system32 \ slmgr.vbs" / skms% 1
ping 127.0.0.1 -n 5> nul
cscript.exe "% systemroot% \ system32 \ slmgr.vbs" / ipk FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
cscript.exe "% systemroot% \ system32 \ slmgr.vbs" / ato
sc stop sppsvc
: koniec

kms1.winitpro.ru - Nazwa DNS lub adres IP twojego serwera KMS.

liczba punktów w trzecim rzędzie - wymagana liczba połączeń z serwerem KMS (w naszym przykładzie symulujemy dostęp 25 unikatowych klientów).

Do skryptu dodano 5 sekundowe opóźnienie, as w niektórych przypadkach system zwracał informację, że pliki są zajęte, a próba aktywacji się nie liczyła.

Jest ważne. Nie uruchamiaj tego skryptu na samym serwerze KMS! W przeciwnym razie będziesz musiał ponownie aktywować serwer KMS (dozwolone jest tylko 6 prób aktywacji jednego klucza VLC).

Po zakończeniu skryptu sprawdź wartość licznika aktywacji na serwerze KMS:

slmgr / dlv

Wartość licznika Bieżąca liczba powinna wzrosnąć o 25. Następnie serwer KMS aktywuje wszystkie systemy operacyjne klienta uzyskujące do niego dostęp (czy to Windows 7, 8 czy Win 10). Ten skrypt w przyszłości (jeśli wymagana liczba rzeczywistych klientów nie zostanie wpisana) będzie musiał być uruchamiany co 30 dni, ponieważ w przypadku braku żądań do serwera licznik aktywacji zmniejsza się z czasem.

Zwiększenie licznika aktywacji za pomocą migawek maszyny wirtualnej

Jeśli skrypt nie pomógł ci zwiększyć licznika aktywacji na serwerze KMS, możesz zwiększyć wartość licznika, korzystając z możliwości tworzenia migawek maszyny wirtualnej w Hyper-V / VMWare. Algorytm wygląda następująco:

  1. Utwórz nową maszynę wirtualną z systemem Windows 10 (nie aktywuj jej i nie wprowadzaj klucza GVLK, najlepiej tymczasowo odłączyć ją od sieci)
  2. Na pulpicie maszyny Wirtualnej utwórz następujące 2 skrypty, z których jeden resetuje CMID i zmienia nazwę nazwy hosta. Drugi wykonuje aktywację systemu operacyjnego.

    Łapa tylna
    uruchom limit czasu „cmd / c slmgr / rearm” / t 10 / nobreak> NUL
    wmic computerystem gdzie nazwa = "% COMPUTERNAME%" wywołanie zmiana nazwy nazwa = "pc-% random%"
    wyłączenie / r / t 0
    kms_activate.bat
    ustaw skms = kms1.winitpro.ru
    sc start sppsvc
    script.exe "% systemroot% \ system32 \ slmgr.vbs" / skms% 1
    cscript.exe "% systemroot% \ system32 \ slmgr.vbs" / ipk W269N-WFGWX-YVC9B-4J6C9-T83GX
    cscript.exe "% systemroot% \ system32 \ slmgr.vbs" / ato

  3. Umieść skrypt kms_activate.bat w autoloadie.
  4. Utwórz migawkę maszyny wirtualnej.
  5. Uruchom skrypt Rearm.bat z uprawnieniami administratora. Maszyna wirtualna uruchomi się ponownie i aktywuje na serwerze KMS.
  6. Przywróć stan maszyny wirtualnej do poprzedniej migawki.
  7. Wykonaj kroki 5.6 tyle razy, ile żądań aktywacji ma zostać dodanych do serwera KMS.