Korrektur für Windows-Fehler: WinRM Shell Client Environment Variable Null oder Null
Dieser umfassende Leitfaden erläutert die Ursache des WinRM-Fehlers und bietet einfache, schrittweise Lösungsmethoden.
Fehlerübersicht
Was es bedeutet
Die Fehlermeldung "The WinRM Shell client cannot process the request. One of the environment variable name passed to the WSManCreateShell function is null or zero." tritt auf, wenn Windows Remote Management (WinRM) versucht, eine Remote-PowerShell-Sitzung zu initialisieren, aber fehlschlägt, weil eine oder mehrere Umgebungsvariablen entweder auf dem lokalen Computer (Client) oder dem Remote-Computer (Server) beschädigt, leer oder falsch formatiert sind.
Warum es so ist
- Empty Environment Variable Names : Eine System- oder Benutzerumgebungsvariable existiert, hat aber eine leere oder Null-Namenzeichenfolge.
- Corrupted Registry Entries : Die Umgebungsvariablen für die Speicherung des Pfades der Windows-Registrierung enthalten fehlerhafte Schlüssel-Wert-Paare.
- Bad PowerShell Profiles : Scripts, die mit Ihrem Benutzerprofil initialisiert werden, injizieren Nullvariablen in die aktive Sitzung.
- Third-Party Software Interference : Sicherheitswerkzeuge oder Anwendungsinstallatoren haben den Systemumgebungsblock unsachgemäß geändert.
Schrittweise Lösungen
Methode 1: Überprüfen und Beheben von leeren Umgebungsvariablen mit PowerShell
Ein leerer Variablenname im Umfeldkonfigurationsblock ist die häufigste Ursache. Sie können ihn mit einem lokalen PowerShell-Fenster finden und entfernen.
-
Open PowerShell as Administrator:
- Klicken Sie auf Start Das Menü.
- Typ PowerShell.
- Mit der rechten Maustaste. Windows PowerShell und wählen Run as administrator.
-
Scan for Corrupted Variables:
- Kopieren und einfügen Sie das folgende Skript in das PowerShell-Fenster und drücken Sie dann Enter:
[Environment]::GetEnvironmentVariables().Keys | ForEach-Object { if ([string]::IsNullOrEmpty($_) -or \(_ -match "^\s*\)") { Write-Host "Found an empty or null environment variable name!" -ForegroundColor Red } }
- Kopieren und einfügen Sie das folgende Skript in das PowerShell-Fenster und drücken Sie dann Enter:
-
Identify and Remove via GUI (If Found):
- Drücken Sie.
Win + Rauf Ihrer Tastatur, um die Run Dialogbox. - Typ
sysdm.cplund drücken. Enter zu öffnen. System Properties. - Gehen Sie zur... Advanced Tab.
- Klicken Sie auf Environment Variables Schaltfläche unten.
- Schau durch beide. User variables Und... System variables.
- Suchen Sie speziell nach einer Reihe, in der die Variable Spalte ist vollständig leer, enthält nur Leerzeichen oder zeigt beschädigte Symbole an.
- Wählen Sie die zerbrochene Zeile aus und klicken Sie Delete.
- Klicken OK auf alle geöffneten Fenster, um die Änderungen zu speichern.
- Drücken Sie.
Methode 2: Registrierungsschlüssel der Umgebung reinigen
If the GUI does not display the broken variable, it may be hidden as a malformed entry inside the Windows Registry.
-
Open the Registry Editor:
- Drücken Sie.
Win + Rauf deiner Tastatur. - Typ
regeditund drücken. Enter. - Klicken Yes wenn die Anforderung "Benutzerkontokontrolle" (UAC) angezeigt wird.
- Drücken Sie.
-
Check User Environment Variables:
- Navigieren Sie zum folgenden Pfad in der linken Seitenleiste:
HKEY_CURRENT_USER\Environment - Sieh dir das an. Name Spalte auf der rechten Scheibe.
- Ensure every entry has a valid name. If you see an entry with a blank name, right-click it and select Delete.
- Navigieren Sie zum folgenden Pfad in der linken Seitenleiste:
-
Check System Environment Variables:
- Navigieren Sie zum folgenden Pfad:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment - Überprüfen Sie die... Name Spalte auf der rechten Scheibe.
- Identifizieren Sie alle Einträge mit Null-, Leer- oder Leerzeichennamen.
- Klicken Sie mit der rechten Maustaste auf den ungültigen Eintrag und wählen Sie Delete.
- Navigieren Sie zum folgenden Pfad:
-
Restart Your Computer:
- Schließen Sie den Registrierungs-Editor.
- Starten Sie Ihren PC neu, um die Registrierungsänderungen auf den Systemzustand anzuwenden.
Methode 3: Wiederherstellen des WinRM-Dienstes
Wenn die Umgebungsvariablen klar sind, aber der WinRM-Client weiterhin fehlerhaft ist, wird das Zurücksetzen der WinRM-Dienstkonfigurationen die Standardoperationen wiederherstellen.
-
Open Command Prompt as Administrator:
- Klicken Sie auf Start Das Menü.
- Typ
cmd. - Mit der rechten Maustaste. Command Prompt und wählen Run as administrator.
-
Run WinRM Quick Config:
- Geben Sie den folgenden Befehl ein und drücken Sie Enter:
winrm quickconfig - Wenn Sie aufgefordert werden, Änderungen vorzunehmen oder Konfigurationen zu analysieren, geben Sie
y(Ja) und drücken. Enter.
- Geben Sie den folgenden Befehl ein und drücken Sie Enter:
-
Restart the WinRM Service:
- Führen Sie diese Befehle in Reihenfolge aus. Enter nach jedem:
net stop winrm net start winrm
- Führen Sie diese Befehle in Reihenfolge aus. Enter nach jedem:
Methode 4: Prüfung der WinRM-Verbindung
Nach Anwendung der Korrekturen überprüfen Sie, ob die WSManCreateShell Initialisierungsfehler ist behoben.
- Öffnen Sie eine neue. PowerShell Das Fenster.
- Führen Sie einen lokalen Loopback-Testbefehl aus, um zu bestätigen, dass der Shell-Client Variablen ordnungsgemäß verarbeitet:
Test-WSMan - Wenn erfolgreich, testen Sie die Remote-Shell-Verbindung explizit mit:
Enter-PSSession -ComputerName localhost(Ersetzen Sie
localhostmit dem Zielnamen Ihres Remote-Servers, wenn Sie sich mit einem externen Rechner verbinden).
Es kann einige Fehler geben.. Learn Microsoft