🇬🇧 | 🇩🇪 | 🇫🇷 | 🇪🇸 | 🇨🇳 | 🇸🇦
我们没有DLL,但我们有:
Windows文件分析器和在线快速反病毒

一个简约的界面,具有快速搜索,方便的上传和干净的部分结构.

🛡️🔍 快速验证你的档案,只需要放上这个页面.
病毒检查,哈希,签名验证,架构,人工智能信息.

修复Windows错误: WinRM Shell客户端环境变量零或零

这个全面的指南解释了 WinRM 错误的原因,并提供了简单的,一步一步的方法来解决它.


错误概述

这句话的含义

错误消息 "The WinRM Shell client cannot process the request. One of the environment variable name passed to the WSManCreateShell function is null or zero." 当Windows远程管理 (WinRM) 尝试初始化远程PowerShell或命令提示符会话时,但失败,因为本地计算机 (客户端) 或远程计算机 (服务器) 上的一个或多个环境变量受损,空,或格式不正确.

为什么会发生


逐步修复问题

方法1:通过PowerShell检查和修复空环境变量

在环境配置块中空的变量名称是最常见的原因.您可以使用本地PowerShell窗口找到和删除它.

  1. Open PowerShell as Administrator:

    • 按下 Start 菜单是这样的.
    • 它们的类型 PowerShell.
    • 按下右键 Windows PowerShell 并且选择 Run as administrator.
  2. Scan for Corrupted Variables:

    • 复制并粘贴下面的脚本到PowerShell窗口,然后按下 Enter:
      [Environment]::GetEnvironmentVariables().Keys | ForEach-Object {
          if ([string]::IsNullOrEmpty($_) -or \(_ -match "^\s*\)") {
              Write-Host "Found an empty or null environment variable name!" -ForegroundColor Red
          }
      }
  3. Identify and Remove via GUI (If Found):

    • 按下 Win + R 在您的键盘上打开 Run 对话框.
    • 它们的类型 sysdm.cpl 然后按下. Enter 为了打开. System Properties.
    • 让我们去看看. Advanced 这里是我的房间.
    • 按下 Environment Variables 在底部的按.
    • 通过两者. User variables 这里是我的家. System variables.
    • 特别寻找任何一条 Variable 列是完全空的,只包含空格,或显示受损的符号.
    • 选择断行并点击 Delete.
    • 点击 OK 在所有打开的窗口上保存更改.

方法 2: 清除环境注册表密钥

If the GUI does not display the broken variable, it may be hidden as a malformed entry inside the Windows Registry.

  1. Open the Registry Editor:

    • 按下 Win + R 在你的键盘上.
    • 它们的类型 regedit 然后按下. Enter.
    • 点击 Yes 如果显示用户帐户控制 (UAC) 提示.
  2. Check User Environment Variables:

    • 在左侧中导航到以下路径: HKEY_CURRENT_USER\Environment
    • 看看这个 Name 在右边窗口上的列.
    • Ensure every entry has a valid name. If you see an entry with a blank name, right-click it and select Delete.
  3. Check System Environment Variables:

    • 导航到以下路径: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment
    • 检查 Name 在右边窗口上的列.
    • 识别任何使用 null,空格或仅空格名称的条目.
    • 右键单击无效输入并选择 Delete.
  4. Restart Your Computer:

    • 关闭注册表编辑器.
    • 重新启动您的PC,将注册表更改应用到系统状态.

方法 3: 重新设置 WinRM 服务

如果环境变量是清晰的,但WinRM客户端仍然故障,重置WinRM服务配置将恢复默认操作.

  1. Open Command Prompt as Administrator:

    • 按下 Start 菜单是这样的.
    • 它们的类型 cmd.
    • 按下右键 Command Prompt 并且选择 Run as administrator.
  2. Run WinRM Quick Config:

    • 输入下面的命令并按下 Enter:
      winrm quickconfig
    • 如果提示进行更改或分析配置,键入 y (是的) 并按下. Enter.
  3. Restart the WinRM Service:

    • 按照顺序运行这些命令,按下 Enter 在每次:
      net stop winrm
      net start winrm

方法4:测试 WinRM 连接

在应用修复后,验证 WSManCreateShell 已经解决了初始化错误.

  1. 打开一个新的. PowerShell 窗户.
  2. 运行一个本地循环测试命令来确认shell客户端正确处理变量:
    Test-WSMan
  3. 如果成功,请明确使用:
    Enter-PSSession -ComputerName localhost

    (取代 localhost 如果连接到外部机器,您的远程服务器目标名称).


如果在尝试这些步骤后仍然出现错误,请告诉我: *您正在运行这个命令连接到**本地**机器或**远程服务器**吗? *方法1是否在崩之前输出任何**特定变量名称**? *您目前运行的是什么**版本的Windows**? ERROR_WSMAN_CLIENT_USERNAME_AND_PASSWORD_NEEDED | ERROR_WSMAN_CLIENT_INVALID_CERT_DNS_OR_UPN | ERROR_WSMAN_SHELL_ALREADY_CLOSED | ERROR_WSMAN_CREATESHELL_NULL_STREAMID | ERROR_WSMAN_SHELL_INVALID_SHELL_HANDLE

可能有一些错误.. Learn Microsoft