In einer Kundenumgebung stieß ich gerade auf ein Problem beim PowerShell-Remoting: Es kam zwischen Client und Server keine Verbindung zustande. Nachdem ich die Lösung gefunden hatte, stellte ich fest, dass das Problem ein alter Bekannter war. Aber der Reihe nach.
Ein Skript versuchte, eine PS-Remoting-Session aufzubauen. Dies schlug fehl mit folgenden Fehlermeldungen:
New-PSSession : [SRV01] Connecting to remote server SRV01 failed with the following error message : The WinRM client cannot process the request. It cannot determine the content type of the HTTP response from the destination computer. The content type is absent or invalid. For more information, see the about_Remote_Troubleshooting Help topic. At C:\Daten\Skript.ps1:35 char:12 + $session = New-PSSession -ComputerName $Server + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException + FullyQualifiedErrorId : -2144108297,PSSessionOpenFailed
Die typischen Verdächtigen – Namensauflösung, Firewall, WinRM nicht gestartet – waren nicht Schuld. Ein wenig Recherche führte aber zum Ziel. Tatsächlich war der Account, der die Verbindung aufbauen wollte, in sehr vielen Gruppen Mitglied. Das kann bei HTTP-Zugriffen problematisch sein, weil der HTTP-Dienst eine Größenbegrenzung für Datenpakete hat, die vom Access Token leicht überschritten wird. Hier kann es helfen, die Limits hochzusetzen. Dazu startet man auf dem Ziel-Rechner den Registry-Editor als Administrator und setzt folgende Keys:
- unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters
- neuer DWORD (falls noch nicht vorhanden): MaxFieldLength, Wert (dezimal) z.B. 40000
- neuer DWORD (falls noch nicht vorhanden): MaxRequestBytes, Wert (dezimal) 32768
Den Server neu starten. Dann funktionierte es in meinem Fall.
http://faq-o-matic.net/?p=7875