WinRM使用方法详解:远程管理Windows,看这一篇就够了!
哎,说到Windows远程管理,你是不是第一反应就是远程桌面(RDP)?说实话,我以前也这样,直到有一天,我在机房里对着几十台服务器,需要批量改个配置,那叫一个崩溃啊!一台台连桌面,鼠标点来点去,效率低得想哭。

后来,我老大甩给我一句话:“去学学WinRM吧,配好这个,你就能像操作Linux一样用命令行玩转Windows了!” 嘿,这一下就打开了新世界的大门!我就把我自己摸索出来的WinRM使用方法,全盘托出,保证你看完就能上手,彻底告别“鼠标战士”的苦逼生活。
啥是WinRM?简单说,它就是Windows的“SSH”
咱们不扯那些复杂的定义,你就把它当成是Windows系统内置的一个“小耳朵”,专门用来听外面的指挥,它基于Web Services for Management(WS-Management)协议,说白了,就是让你能用命令行或者脚本,通过网络给Windows下命令、查状态,是不是一下子就亲切了?它的好处可是实实在在的:
- 批量管理神器:不用一个个远程桌面,写个脚本就能一次性搞定几十台服务器,省下的时间摸鱼不香吗?
- 跨平台兼容:不光是Windows,你甚至可以在Linux或者macOS上,用工具连过来,只要配置正确。
- 安全性高:默认加密,还支持HTTPS和Kerberos认证,比传统的Telnet不知道高到哪里去了,至少不会明文传输密码让我提心吊胆。
动手实践:我的WinRM踩坑与配置经验
光说不练假把式,下面我就分几步走,给你演示下WinRM使用方法的核心配置,全是我的真实经验!
第一步:开启服务(这一步都做不对,后面全白搭!)
你要以管理员身份打开PowerShell或CMD,必须是管理员!不然会一直报错“拒绝访问”,然后运行这个命令:
Enable-PSRemoting -Force
看到没有,它会在本地自动启动WinRM服务,并设置防火墙规则,允许远程管理,有时候需要你确认一下,直接输Y回车就行了,这个过程会快得让你怀疑人生,配置还没完呢!
第二步:检查配置(心里有个底,才不会慌)
开启服务后,我习惯先查一下状态,用这个命令:
Get-Service WinRM
看到“Running”状态,嗯,第一步稳了,再用winrm quickconfig跑一下,它会自动检测并配置,如果提示“Set-NetFirewallRule”什么的,说明防火墙也OK了,这时候,你可以用winrm e winrm/config/listener看看监听端口,默认是5985(HTTP)和5986(HTTPS)。
第三步:设置信任主机(这是关键!也是很多人踩坑的地方!)
这一步是大坑,尤其是当你需要连接的工作组环境(没加入域)时,如果你直接连,肯定会碰到“拒绝访问”或者“身份验证错误”之类的报错,能把你气疯!解决办法就是,在目标机器上设置信任来源IP。
在目标机器(被管理的)上,管理员PowerShell运行:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "你的IP地址" -Force
强烈建议,把你的IP地址换成你本机的具体IP,千万别图省事直接写,那等于把所有不良分子都放进家门了,真的会出事!设完之后,再输入Restart-Service WinRM重启服务,让它生效,这一步做完,我长舒一口气,感觉离“自由”又近了一步。
终极操作:真正的WinRM使用方法——耍起来!
配置完毕,终于到了最爽的环节——远程执行命令!在你本地的PowerShell里,直接这样写:
Invoke-Command -ComputerName "目标机器IP" -Credential (Get-Credential) -ScriptBlock { 这里的命令就是要在远程机器上运行的 }
我想看看远程电脑上的C盘空间:
Invoke-Command -ComputerName "192.168.1.100" -Credential (Get-Credential) -ScriptBlock { Get-PSDrive C }
在弹出的窗口里,输入目标机器的管理员账号密码,敲下去的那一刻,命令一闪而过,嗖”地一下,结果就出现在了你的屏幕上!天呐,那种“运筹帷幄之中,决胜千里之外”的感觉,简直是爽爆了!再也不用远程桌面盯着屏幕发呆了。
我平时最常用的几个场景,也分享给你们:
- 批量装软件:用
Invoke-Command配合官方静默安装参数,能一次性给N台电脑装软件,效率提升的不是一点点。 - 查看日志:当发现某台服务器报错,直接远程
Get-EventLog -LogName System -Newest 20,不慌不忙拉到眼前看,根本不用切换到那台电脑上去点。 - 管理服务:远程重启一个卡死的服务,我记得有一次,某个服务状态僵住了,我直接远程
Restart-Service -Name "某某服务",两秒钟搞定,同事都以为我有啥魔法。
结尾分享:一些小感慨
这个WinRM的学习过程,虽然一开始遇到点波折(主要是那个TrustedHosts坑了我好久),但一旦掌握,那种掌握感真的非常棒,它让我从一个整天跑来跑去的“救火队员”,变成了一个可以坐在工位上喝咖啡,顺手就把问题解决的“指挥官”。
WinRM几乎已经成了我日常管理Windows环境不可或缺的一部分了,希望我的这篇实战干货,能帮你少走点弯路,如果你在配置过程中也碰到什么奇奇怪怪的问题,欢迎在评论区留言,咱们一起探讨,一起进步!