问题是什么
Enter-PSSession 连不上要按五层排查:名称解析、端口可达、目标服务、信任与网络配置、认证。每层留下的证据不同,报错文案也直接指向不同层次——拒绝连接多为端口或服务,访问被拒多为认证,超时多为网络或防火墙。
怎么快速分层
先在客户端做名称解析与端口探测,这两步就能判定解析与端口层;再用 Test-WSMan 判断 WinRM 协议层是否响应;最后核对 TrustedHosts、网络配置文件类别(公用网络会阻止例外)与凭据格式。逐层推进比反复重启服务有效得多。
基本信息
| 适用平台 | Windows 7/10/11 与各 Server,PowerShell 3.0 及以后 |
|---|---|
| 默认端口 | 5985 用于 HTTP,5986 用于 HTTPS |
| 排查顺序 | 名称解析 → 端口可达 → 服务与监听器 → 信任与网络配置文件 → 认证 |
| 关键命令 | Resolve-DnsName、Test-NetConnection -Port、Test-WSMan、Get-NetConnectionProfile |
典型使用场景
- 跨机执行脚本报连接失败,需要定位卡在哪一层
- 新机器纳管时确认 WinRM 是否已启用并放通
- 公用网络导致防火墙例外被阻止的典型排查
- 工作组环境下 TrustedHosts 未配置造成的阻塞
- 域环境认证失败时核对凭据格式与时间偏差
常用示例
常用示例
Resolve-DnsName srv01 # 名称解析是否正常
Test-NetConnection srv01 -Port 5985 # 端口层是否可达
Test-WSMan srv01 # WinRM 协议层是否响应
# 以下在目标机上执行
Get-Service WinRM # 服务是否在运行
winrm enumerate winrm/config/listener # 监听器是否存在
Get-NetConnectionProfile # 网络类别是否阻止例外报错与层次读法
| 报错文案 | 指向层次 | 处置方向 |
|---|---|---|
| 拒绝连接 | 端口未监听或服务停止 | 检查 WinRM 服务与监听器 |
| 访问被拒绝 | 认证与授权 | 核对凭据格式、Kerberos 与时间偏差 |
| 操作超时 | 网络或防火墙 | 查路由、防火墙规则与网络类别 |
| 名称解析失败 | DNS 或主机名 | 核对解析结果与实际主机名 |
| 协议不匹配 | WinRM 配置 | 检查监听器与版本配置 |
报错要抄原文:拒绝连接、访问被拒、超时分别指向端口与服务层、认证层、网络层,处置方式完全不同。
公用网络配置阻止防火墙例外是笔记本常见的坑,别只盯着服务是否运行;双网卡机器监听绑错地址时,要从另一侧网段测试才会暴露。