Correction de l'erreur Windows: Variable WinRM Shell Client Environnement Null ou Zéro
Ce guide détaillé explique la cause de l'erreur WinRM et fournit des méthodes faciles et étape par étape pour la résoudre.
Vue d' ensemble des erreurs
Ce que cela signifie
Le message d' erreur. "The WinRM Shell client cannot process the request. One of the environment variable name passed to the WSManCreateShell function is null or zero." se produit lorsque Windows Remote Management (WinRM) tente d'initialiser une session PowerShell ou une session Prompt de commande à distance, mais échoue car une ou plusieurs variables d'environnement sur l'ordinateur local (client) ou l'ordinateur distant (serveur) sont endommagées, vides ou mal formatées.
Pourquoi cela arrive- t- il ?
- Empty Environment Variable Names : Une variable d'environnement système ou utilisateur existe mais a une chaîne de noms vide ou nulle.
- Corrupted Registry Entries : Les variables de l'environnement de stockage du chemin du registre Windows contiennent des paires de valeurs-clés mal formées.
- Bad PowerShell Profiles : Les scripts qui s'initialisent avec votre profil utilisateur injectent des variables nulles dans la session active.
- Third-Party Software Interference : Les outils de sécurité ou les installateurs d'applications ont modifié incorrectement le bloc d'environnement système.
Réparations étape par étape
Méthode 1: Vérifiez et corrigez les variables d'environnement vides avec PowerShell
Un nom de variable vide dans le bloc de configuration de l'environnement est la cause la plus fréquente. Vous pouvez le trouver et le supprimer à l'aide d'une fenêtre PowerShell locale.
-
Open PowerShell as Administrator:
- Cliquez sur le Start Le menu.
- Quel type ? PowerShell.
- Cliquez avec le bouton droit. Windows PowerShell et sélectionnez Run as administrator.
-
Scan for Corrupted Variables:
- Copiez et collez le script suivant dans la fenêtre PowerShell, puis appuyez sur Enter:
[Environment]::GetEnvironmentVariables().Keys | ForEach-Object { if ([string]::IsNullOrEmpty($_) -or \(_ -match "^\s*\)") { Write-Host "Found an empty or null environment variable name!" -ForegroundColor Red } }
- Copiez et collez le script suivant dans la fenêtre PowerShell, puis appuyez sur Enter:
-
Identify and Remove via GUI (If Found):
- Appuyez dessus.
Win + Rsur votre clavier pour ouvrir le Run boîte de dialogue. - Quel type ?
sysdm.cplet appuyez. Enter Pour ouvrir. System Properties. - Allez à la... Advanced Je vous en prie.
- Cliquez sur le Environment Variables le bouton en bas.
- Regardez à travers les deux. User variables Je ne sais pas. System variables.
- Regardez spécifiquement pour une rangée où le Variable la colonne est complètement vide, ne contient que des espaces ou affiche des symboles corrompus.
- Sélectionnez la ligne brisée et cliquez Delete.
- Cliquez. OK sur toutes les fenêtres ouvertes pour enregistrer les modifications.
- Appuyez dessus.
Méthode 2: Nettoyer les clés du registre de l'environnement
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:
- Appuyez dessus.
Win + Rsur votre clavier. - Quel type ?
regeditet appuyez. Enter. - Cliquez. Yes si l'invite Contrôle de compte utilisateur (UAC) s'affiche.
- Appuyez dessus.
-
Check User Environment Variables:
- Naviguez vers le chemin suivant dans la barre latérale gauche:
HKEY_CURRENT_USER\Environment - Regardez le... Name la colonne sur le panneau de droite.
- Ensure every entry has a valid name. If you see an entry with a blank name, right-click it and select Delete.
- Naviguez vers le chemin suivant dans la barre latérale gauche:
-
Check System Environment Variables:
- Naviguez vers le chemin suivant:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment - Vérifie le... Name la colonne sur le panneau de droite.
- Identifier toutes les entrées avec des noms nuls, vides ou espaces.
- Cliquez avec le bouton droit de la souris sur l'entrée non valide et sélectionnez Delete.
- Naviguez vers le chemin suivant:
-
Restart Your Computer:
- Fermez l'éditeur de registre.
- Redémarrez votre PC pour appliquer les modifications du registre à l'état du système.
Méthode 3: Réinitialiser le service WinRM
Si les variables d'environnement sont claires mais que le client WinRM reste défectueux, la réinitialisation des configurations du service WinRM rétablira les opérations par défaut.
-
Open Command Prompt as Administrator:
- Cliquez sur le Start Le menu.
- Quel type ?
cmd. - Cliquez avec le bouton droit. Command Prompt et sélectionnez Run as administrator.
-
Run WinRM Quick Config:
- Tapez la commande suivante et appuyez Enter:
winrm quickconfig - Si vous êtes invité à apporter des modifications ou à analyser des configurations, tapez
y(Oui) et appuyez Enter.
- Tapez la commande suivante et appuyez Enter:
-
Restart the WinRM Service:
- Exécutez ces commandes en séquence, en appuyant Enter après chaque:
net stop winrm net start winrm
- Exécutez ces commandes en séquence, en appuyant Enter après chaque:
Méthode 4: Testez la connexion WinRM
Après avoir appliqué les correctifs, vérifiez que le WSManCreateShell L'erreur d'initialisation est résolue.
- Ouvrez une nouvelle. PowerShell Une fenêtre.
- Exécutez une commande de test en boucle locale pour confirmer que le client shell traite correctement les variables:
Test-WSMan - En cas de succès, testez la connexion de shell distante explicitement en utilisant:
Enter-PSSession -ComputerName localhost(Remplacer
localhostavec le nom de destination de votre serveur distant si vous vous connectez à une machine externe).
Il y a peut-être des erreurs.. Learn Microsoft