Pri konfiguriranju WinRM-a na poslužiteljima u domeni Active Directory naišao sam na neobičan problem. Nakon što je usluga WinRM konfigurirana i omogućena na poslužitelju, dopušteno je daljinsko povezivanje putem programa Windows PowerShell Remoting, prilikom pokušaja daljinskog povezivanja s ovim poslužiteljem pomoću naredbe. Enter-PSSession msk-dp01
Sljedeća pogreška WinRM-a pojavljuje se u PowerShell konzoli:
redak: 1 znak: 1
+ Enter-PSSession msk-dp01
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: InvalidArgument: (msk-dp01: String) [Enter-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId: CreateRemoteRunspaceFailed
U engleskoj verziji sustava Windows pogreška izgleda ovako:
PS C: \ Windows \ system32> Enter-PSSession msk-dp01Enter-PSSession: Spajanje na udaljeni poslužitelj msk-dp01 nije uspjelo sa sljedećom porukom o pogrešci: WinRM klijent je primio status lošeg zahtjeva HTTP-a (400), ali daljinska usluga nije sadržavala nikakve druge podatke o uzroku neuspjeha. Dodatne informacije potražite u temi o pomoći_Remote_Troubleshooting.
Na redu: 1 znak: 1
+ Enter-PSSession msk-dp01
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: InvalidArgument: (msk-dp01: String) [Enter-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId: CreateRemoteRunspaceFailed
U isto vrijeme, na poslužitelju, WinRm portovi (5985 / HTTP, 5986 / HTTPS) odgovaraju i prihvaćaju veze. Možete provjeriti dostupnost WinRM TCP portova korištenjem uslužnog programa PortQryV2 ili alatke PowerShell Test-NetConnection:
TNC msk-dp01 -port 5985
Kako se ispostavilo, problem se pokazao povezanim s velikim korisnikovim tokenom Kerberos, zbog činjenice da je korisnik u previše grupa domena. Do greške dolazi kada je veličina tokena 16 Kb (vidi članak MaxTokenSize - Kerberos Token Size). U našoj situaciji, događa se isto, WinRm poslužitelj resetira zahtjev od klijenta, jer veličina zaglavlja paketa za provjeru autentičnosti prelazi 16 Kb. U referentnom članku spomenuli smo da IIS prema zadanim postavkama koristi HTTP zaglavlje veličine ne veće od 16 Kb, a u slučaju problema s HTTP autentifikacijom zbog velikog korisničkog tokena, mora se povećati na 64 Kb
Da biste riješili problem, trebate smanjiti veličinu tokena (smanjite broj sigurnosnih skupina kojima je korisnik član), a ako to nije moguće, onda u uređivaču registra na poslužitelju morate promijeniti vrijednost sljedećih parametara registra DWORD u grani HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ usluge \ HTTP \ Parametri
- MaxFieldLength povećanje na 0000ffff (65535)
- MaxRequestBytes povećanje na 0000ffff (65535)
Ostaje ponovno pokrenuti poslužitelj i provjeriti vezu WinRm-a putem Enter-PSSession-a od klijenta.