Při konfiguraci WinRM na serverech v doméně Active Directory jsem narazil na zvláštní problém. Po nakonfigurování a povolení služby WinRM na serveru je povoleno vzdáleně se připojit pomocí Windows PowerShell Remoting, když se pokoušíte vzdáleně připojit k tomuto serveru pomocí příkazu Zadejte-PSSession msk-dp01
V konzole PowerShell se zobrazí následující chyba WinRM:
řádek: 1 znak: 1
+ Zadejte-PSSession msk-dp01
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: InvalidArgument: (msk-dp01: String) [Enter-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId: CreateRemoteRunspaceFailed
V anglické verzi systému Windows chyba vypadá takto:
PS C: \ Windows \ system32> Zadejte-PSSession msk-dp01Enter-PSSession: Připojení ke vzdálenému serveru msk-dp01 selhalo s následující chybovou zprávou: Klient WinRM obdržel stav chybného požadavku HTTP (400), ale vzdálená služba nezahrnovala žádné další informace o příčině selhání. Další informace naleznete v tématu nápovědy about_Remote_Trou Troubleshooting.
Na řádku: 1 znak: 1
+ Zadejte-PSSession msk-dp01
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: InvalidArgument: (msk-dp01: String) [Enter-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId: CreateRemoteRunspaceFailed
Zároveň na serveru porty WinRm (5985 / HTTP, 5986 / HTTPS) reagují a přijímají připojení. Dostupnost portů WinRM TCP můžete zkontrolovat pomocí obslužného programu PortQryV2 nebo rutiny PowerShell Test-NetConnection.:
TNC msk-dp01 -port 5985
Jak se ukázalo, problém se týkal velkého tokenu uživatele Kerberos, protože uživatel je v příliš mnoha skupinách domén. K chybě dochází, když je velikost tokenu 16 Kb (viz článek MaxTokenSize - Kerberos Token Size). V naší situaci se stane totéž, server WinRm resetuje požadavek od klienta, protože velikost záhlaví ověřovacího paketu přesahuje 16 kB. V článku s odkazem jsme zmínili, že ve výchozím nastavení používá služba IIS velikost záhlaví HTTP ne více než 16 Kb, a v případě problémů s ověřováním HTTP kvůli velkému uživatelskému tokenu musí být zvýšena na 64 Kb
Chcete-li problém vyřešit, musíte zmenšit velikost tokenu (snížit počet skupin zabezpečení, kterých je uživatel členem), a pokud to není možné, pak v editoru registru na serveru musíte změnit hodnotu následujících parametrů registru DWORD ve větvi. HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ HTTP \ Parameters
- MaxFieldLength zvýšit na 0000ffff (65535)
- MaxRequestBytes zvýšit na 0000ffff (65535)
Zbývá restartovat server a zkontrolovat připojení WinRm přes Enter-PSSession od klienta.