WinRM nemůže požadavek zpracovat. Z cílového počítače nelze určit typ obsahu odpovědi HTTP

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:

Enter-PSSession: Připojení ke vzdálenému serveru msk-dp01 selhalo. Chybová zpráva: Klient WinRM nemůže požadavek zpracovat. Nelze určit typ obsahu odpovědi HTTP z cílového počítače. Typ obsahu není platný nebo chybí. Další informace naleznete v tématu nápovědy about_Remote_Trou Troubleshooting..

řá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-dp01

Enter-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.