Podczas konfigurowania WinRM na serwerach w domenie Active Directory napotkałem dziwny problem. Po skonfigurowaniu i włączeniu usługi WinRM na serwerze dozwolone jest łączenie się zdalnie za pomocą narzędzia Windows PowerShell Remoting podczas próby zdalnego połączenia się z tym serwerem za pomocą polecenia Enter-PSSession msk-dp01
W konsoli PowerShell pojawia się następujący błąd WinRM:
wiersz: 1 znak: 1
+ Enter-PSSession msk-dp01
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: InvalidArgument: (msk-dp01: String) [Enter-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId: CreateRemoteRunspaceFailed
W angielskiej wersji systemu Windows błąd wygląda następująco:
PS C: \ Windows \ system32> Enter-PSSession msk-dp01Enter-PSSession: Nawiązywanie połączenia ze zdalnym serwerem msk-dp01 nie powiodło się z następującym komunikatem o błędzie: Klient WinRM otrzymał status niepoprawnego żądania HTTP (400), ale usługa zdalna nie zawierała żadnych innych informacji o przyczynie niepowodzenia. Więcej informacji można znaleźć w temacie pomocy about_Remote_Trou Rozwiązywanie problemów.
W linii: 1 znak: 1
+ Enter-PSSession msk-dp01
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: InvalidArgument: (msk-dp01: String) [Enter-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId: CreateRemoteRunspaceFailed
Jednocześnie na serwerze porty WinRm (5985 / HTTP, 5986 / HTTPS) odpowiadają i akceptują połączenia. Można sprawdzić dostępność portów TCP WinRM za pomocą narzędzia PortQryV2 lub polecenia cmdlet Test-NetConnection programu PowerShell:
TNC msk-dp01 -port 5985
Jak się okazało, problem był związany z dużym tokenem Kerberos użytkownika, ponieważ użytkownik jest w zbyt wielu grupach domen. Błąd występuje, gdy rozmiar tokena wynosi 16 Kb (zobacz artykuł MaxTokenSize - rozmiar tokena Kerberos). W naszej sytuacji dzieje się to samo, serwer WinRm resetuje żądanie od klienta, ponieważ rozmiar nagłówka pakietu uwierzytelniającego przekracza 16 Kb. W artykule przez odniesienie wspomnieliśmy, że domyślnie IIS używa rozmiaru nagłówka HTTP nie większego niż 16 Kb, aw przypadku problemów z uwierzytelnianiem HTTP z powodu dużego tokena użytkownika, należy go zwiększyć do 64 Kb
Aby rozwiązać problem, musisz zmniejszyć rozmiar tokena (zmniejszyć liczbę grup zabezpieczeń, których użytkownik jest członkiem), a jeśli nie jest to możliwe, w edytorze rejestru na serwerze musisz zmienić wartość następujących parametrów rejestru DWORD w oddziale HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ HTTP \ Parameters
- MaxFieldLength wzrost do 0000ffff (65535)
- MaxRequestBytes wzrost do 0000ffff (65535)
Pozostaje zrestartować serwer i sprawdzić połączenie WinRm przez Enter-PSSession z klienta.