A WinRM nem tudja feldolgozni a kérelmet. Nem sikerült meghatározni a HTTP-válasz tartalom típusát a rendeltetési számítógéptől

A WinRM konfigurálásakor az Active Directory tartomány kiszolgálóin furcsa problémát tapasztaltam. Miután a WinRM szolgáltatást konfigurálta és engedélyezte a kiszolgálón, távolról csatlakozhat a Windows PowerShell Remoting segítségével, amikor a kiszolgálóval távoli kapcsolatot próbál meg létrehozni a parancs segítségével Enter-PSSession msk-dp01 A következő WinRM hiba jelenik meg a PowerShell konzolon:

Enter-PSSession: A kapcsolat az msk-dp01 távoli szerverrel sikertelen. Hibaüzenet: A WinRM kliens nem tudja feldolgozni a kérelmet. Nem sikerült meghatározni a HTTP-válasz tartalom típusát a célszámítógépről. A tartalom típusa érvénytelen vagy hiányzik. További információkért tekintse meg a about_Remote_Tro hibaelhárítási súgót..

sor: 1 karakter: 1

+ Enter-PSSession msk-dp01

+ ~~~~~~~~~~~~~~~~~~~~~~~~~

+ Kategóriainformáció: InvalidArgument: (msk-dp01: String) [Enter-PSSession], PSRemotingTransportException

+ FullyQualifiedErrorId: CreateRemoteRunspaceFailed

A Windows angol változatában a hiba így néz ki:

PS C: \ Windows \ system32> Enter-PSSession msk-dp01

Enter-PSSession: A kapcsolódás az msk-dp01 távoli szerverhez a következő hibaüzenettel sikertelen: A WinRM kliens HTTP rossz kérés állapotot kapott (400), de a távoli szolgáltatás nem tartalmazott egyéb információt a hiba okáról. További információkért tekintse meg a about_Remote_Hibaelhárítási súgót.

Sorban: 1 karakter: 1

+ Enter-PSSession msk-dp01

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ Kategóriainformáció: InvalidArgument: (msk-dp01: String) [Enter-PSSession], PSRemotingTransportException

+ FullyQualifiedErrorId: CreateRemoteRunspaceFailed

Ugyanakkor a kiszolgálón a WinRm portok (5985 / HTTP, 5986 / HTTPS) válaszolnak és fogadnak el kapcsolatokat. Ellenőrizheti a WinRM TCP-portok elérhetőségét a PortQryV2 segédprogrammal vagy a PowerShell Test-NetConnection parancsmag segítségével.:

TNC msk-dp01 -port 5985

Mint kiderült, a probléma kiderült, hogy a felhasználó nagy Kerberos-jogkivonatához kapcsolódik, mivel a felhasználó túl sok domain csoportban van. A hiba akkor fordul elő, ha a token mérete 16 Kb (lásd a MaxTokenSize - Kerberos tokenméret cikket). A helyzetünkben ugyanaz történik, a WinRm szerver visszaállítja a kliens kérését, mert a hitelesítési csomag fejlécének mérete meghaladja a 16 kb-t. A referenciacikkben megemlítettük, hogy alapértelmezés szerint az IIS legfeljebb 16 Kb HTTP-fejlécet használ, és ha nagy felhasználói token miatt HTTP-hitelesítéssel kapcsolatos problémák merülnek fel, akkor azt 64 Kb-ra kell növelni.

A probléma megoldásához csökkenteni kell a jogkivonat méretét (csökkentenie kell a biztonsági csoportok számát, amelyekbe a felhasználó tartozik), és ha ez nem lehetséges, akkor a kiszolgálón található regisztrációs szerkesztőben meg kell változtatnia az ágban a következő DWORD regisztrációs paraméterek értékét. HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ HTTP \ paraméterek

  • MaxFieldLength növekedés 0000ffff-ra (65535)
  • MaxRequestBytes növekedés 0000ffff-ra (65535)

Végre kell hagyni a szerver újraindítását és a WinRm kapcsolatának ellenőrzését az ügyfél Enter-PSSession segítségével.