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:
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-dp01Enter-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.