Serwer hosta sesji usług pulpitu zdalnego nie ma określonego serwera licencji usług pulpitu zdalnego

Jeden z klientów miał problem z wdrożoną farmą serwerów terminali usług pulpitu zdalnego opartą na systemie Windows Server 2012 R2. Z jakiegoś powodu serwer RDS przestał wydawać licencje terminalowe użytkownikom, chociaż rola serwera licencji została zainstalowana i skonfigurowana, a licencja RDP CAL została aktywowana.

Gdy użytkownik próbuje połączyć się z serwerem terminali, pojawia się błąd:

Sesja zdalna została rozłączona, ponieważ nie ma dostępnych serwerów licencji Pulpitu zdalnego do zapewnienia licencji.

Skontaktuj się z administratorem serwera.

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

Sesja zdalna jest rozłączona, ponieważ nie ma dostępnych serwerów licencjonowania Pulpitu zdalnego.
Skontaktuj się z administratorem serwera

W tym samym czasie na samym serwerze rejestrowany jest błąd:

Identyfikator zdarzenia: 1130
Źródło: TerminalServices-RemoteConnectionManager Na serwerze Host sesji usług pulpitu zdalnego nie określono serwera licencji Pulpitu zdalnego. Aby określić serwer licencji dla serwera Host sesji usług pulpitu zdalnego, użyj narzędzia Konfiguracja hosta sesji usług pulpitu zdalnego.

Za pomocą Menedżera serwera sprawdzamy, czy serwer licencji Pulpitu zdalnego w konfiguracji RDSH to:

Możesz również zweryfikować konfigurację serwera licencyjnego w PowerShell:

Get-RDLicenseConfiguration

Jak widzimy, wskazany jest serwer i używany jest typ licencjonowania Peruser.

Narzędzie RD Licensing Diagnoser również nie widzi problemów z ustawieniami i licencjami serwera RD.

Korzystając z konsoli RD Licensing Manager (licmgr.exe), upewnij się, że serwer ma bezpłatne licencje, ale same licencje nie są wydawane użytkownikom z jakiegoś powodu (wydane = 0).

Dalsze wyszukiwanie w dzienniku zdarzeń przyszło do następującego zdarzenia:

EventID: 1128
Źródło: TerminalServices-RemoteConnectionManager Okres karencji RD Licensing wygasł, a usługa nie została zarejestrowana na serwerze licencji z zainstalowanymi licencjami. Serwer RD Licensing jest wymagany do ciągłej pracy. Serwer hosta sesji usług pulpitu zdalnego może działać bez serwera licencji przez 120 dni od pierwszego uruchomienia.

Najwyraźniej serwer RDSH zdecydował, że upłynął okres próbny korzystania z serwera terminali (okres karencji - 120 dni) i należy go odnowić lub aktywować na pełnoprawnym serwerze licencji RDS. Wygląda jak jakiś błąd RDS w systemie Windows Server 2012.

Liczbę dni do końca okresu karencji RDS można znaleźć za pomocą polecenia:

wmic / namespace: \\ root \ CIMV2 \ TerminalServices PATH Win32_TerminalServiceSetting GDZIE (__CLASS! = "") ZADZWOŃ GetGracePeriodDays

Aby rozwiązać ten problem, musisz usunąć klucz z serwera RDS, który określa licencjonowanie okresu karencji. Data, która określa czas, w którym serwer kończy się w trybie dodatkowym, jest przechowywana w kluczu L $ RTMTIMEBOMB (dość zabawna nazwa to TIME BOMB ....;) znajdującym się w gałęzi rejestru:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ RCM \ GracePeriod

Musisz usunąć klucz L $ RTMTIMEBOMB. Jednak administrator nie ma wystarczających uprawnień, aby to zrobić..

Nie można usunąć wszystkich określonych wartości.

Aby usunąć ten klucz, musisz nadać swojemu kontu uprawnienia właściciela oddziału, a następnie prawo do zmiany (nie opiszę szczegółowo tego procesu).

Teraz kliknij prawym przyciskiem myszy klucze L $ RTMTIMEBOMB i usuń go.

Ponownie uruchamiamy serwer, łączymy się z klientem przez RDP. Sprawdź sukces licencji w konsoli Remote Desktop Licensing Manager.

Jednak od razu mi to nie zadziałało. Za pomocą następującego polecenia PowerShell sprawdź, czy serwer licencyjny jest ustawiony:

$ obj = gwmi -namespace "Root / CIMV2 / TerminalServices" Win32_TerminalServiceSetting
$ obj.GetSpecifiedLicenseServerList ()

Jak widać, serwer licencjonowania RDS nie jest zdefiniowany (lista SpecifiedLSList jest pusta). Za pomocą następującego polecenia określ serwer licencji RD.

$ obj = gwmi -namespace "Root / CIMV2 / TerminalServices" Win32_TerminalServiceSetting
$ obj.SetSpecifiedLicenseServerList ("msk-rdslic.winitpro.ru")

Po tej operacji serwer zaczął wydawać klientom licencje RD.