winrm是windows系统自带的远程管理服务,非额外软件,关键在启用与连通:启动服务、开放5985/5986端口、配置监听器、设置可信主机及绕过uac限制。
winrm 是 windows 系统自带的远程管理核心服务,不是额外安装的软件,而是操作系统级组件。它默认已存在,但多数情况下处于未启用或未监听状态——配置的关键不在于“装”,而在于“启”和“通”:启动服务、开放端口、设置信任、绕过uac限制。
服务启用与快速初始化
以管理员身份运行 PowerShell 或 CMD,执行以下命令即可完成基础启用:
- winrm quickconfig(或简写为 winrm qc):自动启动 WinRM 服务、设为开机自启、配置 HTTP 侦听器(绑定所有 IP 的 5985 端口)、添加防火墙例外;
- 若需 HTTPS 支持,需先准备有效证书,再用 winrm create winrm/config/Listener?Address=*+Transport=HTTPS 手动创建;
- 检查服务状态:Get-Service WinRM,确认状态为 Running;
- 验证本地侦听:winrm enumerate winrm/config/listener,应返回类似 http://+:5985/ 的条目。
防火墙与网络配置
WinRM 默认使用 5985(HTTP)和 5986(HTTPS)端口,但 Windows 防火墙可能拦截入站连接,尤其在非域环境或公共网络下:
通过聊天(Telegram / 飞书)执行本地 `clawusage` 监控命令。当用户输入 `/clawusage ...`,或提出“查看 Codex 用量”、“开启/关闭自动…”等请求时触发使用。
- 查看现有规则:Get-NetFirewallRule -Name 'WINRM*',确认 WINRM-HTTP-In-TCP 或 WINRM-HTTPS-In-TCP 已启用;
- 若规则缺失,手动添加:New-NetFirewallRule -Name "WinRM-HTTP" -DisplayName "WinRM HTTP" -LocalPort 5985 -Protocol TCP -Direction Inbound -Action Allow;
- 注意网络配置文件类型:域网络通常自动放行;专用网络需显式启用;公共网络默认拒绝,不建议开启远程管理;
- 跨子网连接失败时,可临时加参数跳过网络配置检查:winrm quickconfig -SkipNetworkProfileCheck。
客户端信任与凭据验证
从管理机连接目标服务器前,需解决“服务器身份不可信”问题,尤其在非域环境中:
- 将目标服务器加入客户端的可信主机列表:Set-Item WSMan:\localhost\Client\TrustedHosts -Value "192.168.1.100" -Force(支持通配符如 * 或逗号分隔多地址);
- 若使用本地管理员账户(非域账号),需确保注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy 值为 1,否则 UAC 会截断远程管理员权限;
- 测试连通性:Test-WSMan -ComputerName 192.168.1.100(HTTP)或 Test-WSMan -ComputerName 192.168.1.100 -UseSSL(HTTPS);
- 成功后可用:Enter-PSSession -ComputerName 192.168.1.100 -Credential (Get-Credential) 进入交互式会话。
安全与生产环境建议
面向生产环境,仅靠 quickconfig 不够稳健,需强化身份验证与传输安全:
- 禁用 HTTP(5985)连接,强制使用 HTTPS(5986):避免明文传输凭据;
- 配置 Kerberos 或 CredSSP 身份验证方式,提升凭证中继防护能力;
- 限制监听地址,避免绑定 0.0.0.0,改用具体内网 IP;
- 定期审计日志:Get-WinEvent -LogName "Microsoft-Windows-WinRM/Operational",关注认证失败与会话创建事件;
- 组策略统一管理更可靠:通过 Computer Configuration → Administrative Templates → Windows Components → Windows Remote Management (WinRM) → WinRM Service 启用并配置策略。










