Windows 11 远程 PowerShell 失败时,需启用 WinRM 服务并配置监听器、防火墙、TrustedHosts 及认证策略;推荐新手用 winrm quickconfig,生产环境用 Enable-PSRemoting,特殊场景可手动配置。

如果您在 Windows 11 系统上尝试建立远程 PowerShell 会话或执行远程命令,但连接失败或提示 AccessDenied、PSSessionStateBroken,则很可能是 WinRM 服务未启用、监听器未配置或防火墙策略阻止通信。以下是针对 Windows 11 的多种可行启用与配置方法:
一、使用 winrm quickconfig 快速启用(推荐新手)
该命令专为快速部署设计,自动启动 WinRM 服务、设置延迟自动启动模式、创建 HTTP 监听器,并为当前网络配置文件添加防火墙入站规则,适用于本地测试和内网环境。
1、以管理员身份运行 Windows Terminal(PowerShell 或 CMD)。
2、输入命令:winrm quickconfig 或简写为 winrm qc。
3、当提示 [y/n]? 时,键入 y 并按回车。
4、确认输出中包含 WinRM service started 和 Created a WinRM listener on http://*... 字样。
5、验证监听器是否就绪:执行 winrm enumerate winrm/config/listener,应返回 Listener 启用信息。
二、通过 Enable-PSRemoting 启用完整远程管理功能
此方法不仅启用 WinRM 基础服务,还自动注册 PowerShell 会话配置、配置 Kerberos/NTLM 认证策略、开放防火墙端口,并支持 Enter-PSSession 和 Invoke-Command 等高级远程操作,适合生产环境准备。
1、以管理员身份运行 PowerShell。
2、执行命令:Enable-PSRemoting -Force。
3、等待命令完成,系统将自动启动 WinRM 服务、设置启动类型为 Automatic、启用 HTTP 监听器并配置 Windows 防火墙规则。
4、验证服务状态:运行 Get-Service WinRM,确认 Status 为 Running 且 StartType 为 Automatic。
5、检查默认会话配置是否存在:运行 Get-PSSessionConfiguration | Where-Object Name -eq "Microsoft.PowerShell",应返回有效配置项。
三、手动配置 WinRM 监听器与安全策略(适用于受限策略环境)
当组策略禁用自动配置、需指定监听端口、或必须启用 Basic 认证等特殊场景时,需逐项执行底层命令,确保参数可控且符合本地安全要求。
1、以管理员身份运行 PowerShell。
2、启动服务并设为自动:Start-Service WinRM; Set-Service WinRM -StartupType Automatic。
3、创建 HTTP 监听器(若不存在):winrm create winrm/config/listener?Address=*+Transport=HTTP。
4、启用 Basic 身份验证(仅限受信内网):winrm set winrm/config/auth @{Basic="true"}。
5、允许未加密流量(调试阶段临时启用):winrm set winrm/config/service @{AllowUnencrypted="true"}。
6、验证配置完整性:winrm get winrm/config,重点检查 auth 和 service 区块中对应值是否已更新。
四、配置 TrustedHosts 允许非域环境直连
Windows 11 默认拒绝与未列入信任列表的主机建立远程会话,尤其在工作组或无域环境中,必须显式添加目标 IP 或通配符,否则 Enter-PSSession 将报错 The client cannot connect to the destination specified。
1、在本地管理 PowerShell 中执行:Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*"(允许所有主机)。
2、如需限定范围,替换为具体地址:Set-Item WSMan:\localhost\Client\TrustedHosts -Value "192.168.1.100,192.168.1.101"。
3、重启 WinRM 服务使 Trust 设置生效:Restart-Service WinRM。
4、验证设置结果:Get-Item WSMan:\localhost\Client\TrustedHosts,确认 Value 字段已更新。
五、验证远程连接能力
完成任一配置方法后,必须在本地发起测试连接,确认 WinRM 端点可响应、认证可通行、会话可建立,避免后续脚本执行失败。
1、在本地管理员 PowerShell 中执行:Test-WsMan -ComputerName localhost,应返回协议版本与 ShellUri 信息。
2、若测试远程主机(如 192.168.1.100),先确保该主机已启用 WinRM 并配置 TrustedHosts,再运行:Test-WsMan -ComputerName 192.168.1.100。
3、建立交互式会话验证:Enter-PSSession -ComputerName 192.168.1.100 -Credential (Get-Credential),输入目标主机管理员凭据。
4、成功连接后,提示符应变为 [192.168.1.100]: PS C:\>,此时可执行任意本地命令。
5、退出会话:Exit-PSSession 或按 Ctrl+Z。











