WinRM ne more obdelati zahteve. Ni mogoče določiti vrste vsebine odziva HTTP iz ciljnega računalnika

Pri konfiguriranju programa WinRM na strežnikih v domeni Active Directory sem naletel na nenavadno težavo. Ko je storitev WinRM konfigurirana in omogočena na strežniku, je dovoljena daljinska povezava s sistemom Windows PowerShell Remoting, ko se poskušate z ukazom na daljavo povezati s tem strežnikom. Vnesite-PSSession msk-dp01 Naslednja napaka WinRM se prikaže v konzoli PowerShell:

Enter-PSSession: Povezava z oddaljenim strežnikom msk-dp01 ni uspela. Sporočilo o napaki: odjemalec WinRM ne more obdelati zahteve. Ni mogoče določiti vrste vsebine odgovora HTTP iz ciljnega računalnika. Vrsta vsebine ni veljavna ali manjka. Če želite več informacij, glejte temo pomoči o_Remote_Troublesouts..

vrstica: 1 znak: 1

+ Vnesite-PSSession msk-dp01

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

+ CategoryInfo: InvalidArgument: (msk-dp01: String) [Enter-PSSession], PSRemotingTransportException

+ FullyQualifiedErrorId: CreateRemoteRunspaceFailed

V angleški različici sistema Windows napaka izgleda tako:

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

Enter-PSSession: Povezava z oddaljenim strežnikom msk-dp01 ni uspela z naslednjim sporočilom o napaki: odjemalec WinRM je prejel stanje slabe zahteve HTTP (400), vendar oddaljena storitev ni vključevala nobenih drugih informacij o vzroku okvare. Če želite več informacij, glejte temo Pomoč about_Remote_Troubleshooting.

Na vrsti: 1 znak: 1

+ Vnesite-PSSession msk-dp01

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

+ CategoryInfo: InvalidArgument: (msk-dp01: String) [Enter-PSSession], PSRemotingTransportException

+ FullyQualifiedErrorId: CreateRemoteRunspaceFailed

Hkrati se na strežniku vrata WinRm (5985 / HTTP, 5986 / HTTPS) odzovejo in sprejmejo povezave. Razpoložljivost vrat WinRM TCP lahko preverite s pripomočkom PortQryV2 ali ukaznim programom PowerShell Test-NetConnection:

TNC msk-dp01 -port 5985

Kot se je izkazalo, se je težava izkazala za uporabnikovo veliko žeton Kerberos zaradi dejstva, da je uporabnik v preveč skupnih domenah. Do napake pride, ko je velikost žetona 16 Kb (glej članek MaxTokenSize - Kerberos Token Size). V naših razmerah se zgodi isto, strežnik WinRm ponastavi zahtevo odjemalca, ker velikost glave paketa za overjanje presega 16 Kb. V referenčnem članku smo omenili, da IIS privzeto uporablja HTTP glavo velikosti največ 16 Kb, v primeru težav s preverjanjem pristnosti HTTP zaradi velikega uporabniškega žetona pa jo je treba povečati na 64 Kb

Če želite odpraviti težavo, morate zmanjšati velikost žetona (zmanjšati število varnostnih skupin, v katerih je uporabnik član), in če to ni mogoče, potem morate v urejevalniku registra na strežniku spremeniti vrednost naslednjih parametrov registra DWORD v veji HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ storitve \ HTTP \ Parametri

  • MaxFieldLength povečanje na 0000ffff (65535)
  • MaxRequestBytes povečanje na 0000ffff (65535)

Ostaja še enkrat zagnati strežnik in preveriti povezavo WinRm prek Enter-PSSession od odjemalca.