如何开启WinRM(PowerShell 远程管理)
要在本地电脑(或者你可以直接操作的目标电脑)上开启 WinRM(PowerShell 远程管理),最安全、最规范的方法是使用 PowerShell 的一键配置命令。
根据目前的网络环境,请选择以下最适合的开启方法:
方法一:标准一键开启(最常用,推荐)
请在本地电脑上,鼠标右键点击开始菜单,选择 “终端(管理员)” 或 “Windows PowerShell (管理员)”,然后直接运行以下命令:
powershell
Enable-PSRemoting -Force
▪这个命令在后台会自动帮你完成以下 4 件事:
- 启动
WinRM服务,并将启动类型更改为“自动”(开机自启)。 - 创建一个基于 HTTP 的 WinRM 侦听器,用来接收远程连接。
- 自动在 Windows 高级防火墙中创建并放行 “Windows 远程管理 (WinRM-HTTP)” 的入站规则(端口
5985)。 - 解除远程连接的基础限制。
方法二:针对“公有网络(Public)”的强制开启方法
如果你的电脑连接的是公有网络(例如手机热点或某些公共 Wi-Fi),运行上面的 Enable-PSRemoting 可能会遇到类似“由于网络连接类型为公有,无法启用远程管理”的报错。
▪如果必须要在此网络下开启,请改用以下命令:
powershell
# 强制开启,同时允许在公有网络配置文件中放行防火墙规则
Enable-PSRemoting -SkipNetworkProfileCheck -Force
▪安全加固:开启后如何保障安全?
开启 WinRM 后,为了防止局域网内其他无关人员利用这个端口尝试探测你的电脑,强烈建议执行以下两步安全加固:
1. 防火墙作用域锁定(仅允许特定 IT 运维 IP 访问)
默认情况下,防火墙会对全网放行 5985 端口。你可以限制只有你的 IT 运维跳板机或你自己的 IP 才能连这台电脑(假设运维机 IP 是 10.240.41.71):
powershell
# 限制 WinRM 远程管理规则的入站源 IP
Set-NetFirewallRule -DisplayGroup "Windows 远程管理" -RemoteAddress "10.240.41.71"
请谨慎使用此类代码。
2. 非域(工作组)环境下的客户端信任设置
如果你要在非域环境中让两台电脑互连,运行连接的发起方(你的运维机)也需要添加对方为信任主机:
powershell
# 信任局域网内的某台特定 IP 机器
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "10.240.81.205" -Force
# 或者测试期间直接信任局域网内所有机器(测试完可以用 "" 清空)
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*" -Force
▪开启后的快速验证
运行完开启命令后,你可以直接在本地输入以下命令自我验证:
powershell
# 查看本地 WinRM 状态
Test-WSMan localhost
如果成功返回了包含 ProductVersion、StackVersion 的 XML 数据,说明本地 WinRM 已经完美处于就绪状态!
后续推进建议:
如果你现在是在本地为了以后封装镜像或测试做准备,开启后可以在到发起端运行 Test-NetConnection -ComputerName "目标IP" -Port 5985 测试。















