winrm 配置查看与调整
winrm 命令可以读写 WinRM 服务端配置:认证方式、端口监听、信封大小、并发会话上限等。排错时的正确顺序是先 get 把现状读出来,再决定要不要 set 修改,因为绝大多数「远程连不上」的问题出在认证方式被关掉、防火墙未放行或监听器缺失,而不是某个配置值本身不对。
基本信息
| 适用平台 | Windows(PowerShell 远程依赖 WinRM 2.0 及以上) |
|---|---|
| 读取配置 | winrm get winrm/config |
| 修改配置 | winrm set winrm/config/... @{键="值"} |
| 关键项 | Auth、MaxEnvelopeSizekb、MaxShellsPerUser |
| 默认端口 | 5985 HTTP、5986 HTTPS |
典型使用场景
- 远程管理失败时先确认服务端认证方式与监听器是否正常
- 排查目标未启用 WinRM 导致的连接错误
- 评估并发会话上限,避免批量执行时报配额不足
- 检查是否被改成了 Basic 或允许非加密传输,做基线核对
- 调整信封大小以承载较大的脚本输出
- 交接他人环境时先读一遍配置,确认没有历史遗留的降级设置
- 新服务器上线前统一核对监听器与服务状态,纳入交付检查项
常用示例
常用示例
winrm get winrm/config REM 读取全部配置
winrm get winrm/config/service/auth REM 只看认证相关设置
winrm get winrm/config/service REM 看监听与限制项
winrm enumerate winrm/config/listener REM 列出监听器
winrm set winrm/config/service/auth @{Basic="false"} REM 关闭 Basic 认证
REM 目标机启用远程管理(管理员):Enable-PSRemoting -Force
REM 改完再 get 一遍确认配置已生效关键配置项
| 配置项 | 作用 | 建议 |
|---|---|---|
| service/auth/Basic | 基础认证开关 | 域内应保持关闭 |
| AllowUnencrypted | 是否允许明文传输 | 保持关闭,避免凭据裸奔 |
| MaxShellsPerUser | 每用户并发会话上限 | 批量执行前评估取值 |
| MaxEnvelopeSizekb | 单次数据返回上限 | 大输出场景适当调大 |
域内环境推荐使用默认的 Kerberos 认证;开启 Basic 或允许非加密传输属于安全降级,必须写明理由并评估影响范围之后再改。
修改配置要注意 @{键="值"} 的语法格式,引号或括号写错命令会直接报错;改完后用 get 再读一遍确认真正生效。批量修改多台机器时建议先在一台上验证,再推给其余节点。