WinRM怎么搭

极客

本文目录导读:

WinRM怎么搭

  1. 先搞明白:WinRM到底是啥玩意儿?
  2. 动动手:三步走,WinRM配置不求人
  3. 进阶玩法:让WinRM支持HTTPS,安全性直接拉满
  4. 踩坑集锦:这些坑,我替你踩过了,你别再踩!
  5. 到最后,咱说点实在的

WinRM怎么搭?手把手教你从零配置远程管理,别再踩坑啦!

WinRM怎么搭——哎,说到这个我就来气!上周五公司那台新到手的Server 2019,我想远程连上去装个角色,结果死活连不上,报错信息看得我头皮发麻,折腾了整整一下午,最后才发现是WinRM(Windows Remote Management)压根没启动,得,今天咱就好好唠唠WinRM怎么搭这件事,把我踩过的坑、总结的经验全倒给你,保证你看完能少走弯路!


先搞明白:WinRM到底是啥玩意儿?

说真的,我刚接触那会儿也是一脸懵。WinRM说白了就是微软给Windows系统装的“远程控制管道”,让你能像串门一样,从自己电脑上直接操作另一台Windows服务器,它走的协议是基于HTTP/HTTPS的,跟老掉牙的Telnet、RDP都不一样——那俩一个裸奔不安全,一个只能看桌面,WinRM是命令行级别的操作,最适合写脚本批处理,比如批量改配置、批量查日志之类的。

而且啊,WinRM怎么搭这件事,其实它天生就有个“自动配置”功能,但咱不能全信它,有时候它偷懒不给你整明白,比如你系统语言不对、防火墙挡着了、或者组策略里被禁用了,它都可能导致你白忙活,咱得手动过一遍,才安心。


动动手:三步走,WinRM配置不求人

第一步:打开“远程管理”开关,别让系统装睡

你猜怎么着?WinRM服务默认是“手动”启动的,你不叫它它就不干活,所以第一步,咱得把它踹醒:

Set-Service WinRM -StartupType Automatic
Start-Service WinRM

敲完这俩命令,你可以再执行一下 Get-Service WinRM 看看状态,要是显示“Running”了,那就算开好头啦!不过老实说,光这样还不够,系统里还有个“本地策略”得放行,你可以打开gpedit.msc,一路找到“计算机配置” → “管理模板” → “Windows 组件” → “Windows 远程管理(WinRM)” → “WinRM 服务”,把“允许通过 WinRM 进行远程服务器管理”设为“已启用”,这步不做,你后面怎么连都是白搭,真的,我试过,气死个人!

第二步:给WinRM配个“监听器”,就像给门装个猫眼

WinRM要工作,得先监听某个端口(默认5985,HTTPS是5986),你可以用下面这条命令快速配置:

winrm quickconfig

这命令会自动创建默认的HTTP监听器,还会把防火墙规则给你加上,如果你是在域环境里,或者服务器上有多个IP地址,就得手动指定了。

winrm create winrm/config/Listener?Address=*+Transport=HTTP

这儿的代表监听所有IP,你要是想只监听某一个IP,把星号换成具体IP就行,咱得注意,别到时候连不上才发现监听器都没建好,那就尴尬了,对吧?

第三步:防火墙放行,别让WinRM“出师未捷身先死”

Windows防火墙默认是拦着你连远端WinRM的,所以你要放行5985和5986端口,最简单的办法,直接敲:

New-NetFirewallRule -DisplayName 'WinRM-HTTP' -Direction Inbound -LocalPort 5985 -Protocol TCP -Action Allow

如果你要用HTTPS,再放行5986端口就行,这事儿吧,看着简单,但漏了它你连网关都进不去,我当时就是卡在这儿,差点以为网络有问题,后来发现是防火墙没放行,气得我直想拍桌子!


进阶玩法:让WinRM支持HTTPS,安全性直接拉满

咱都知道,HTTP是明文传输的,你要是传输个密码、脚本啥的,就像在大街上喊话一样,太危险了,正经生产环境,WinRM怎么搭才正确?答案是走HTTPS。

搞HTTPS得先有个证书,如果你有企业CA,直接申请一个;没有的话,用New-SelfSignedCertificate生成一个自签名证书凑合也行,然后跑:

winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="your-server-name";CertificateThumbprint="你的证书指纹"}

证书指纹在证书详情里能看到,别搞错了啊,配好之后,你再用winrm get winrm/config检查一下监听状态,心里就有数了,这样即便有人抓包,也只是密文,安全得很!


踩坑集锦:这些坑,我替你踩过了,你别再踩!

  1. 服务没开——最常见!先检查Get-Service WinRM,不是Running就赶紧启动。
  2. 防火墙没配好——新装的系统,防火墙默认全拦,记得放行端口。
  3. 权限不够——WinRM要求管理员权限,你必须用管理员身份运行PowerShell,不然你会被“拒绝访问”气死。
  4. 组策略限制——域环境下尤其常见,如果改了配置不生效,看看是不是被组策略覆盖了。
  5. 用户名或密码不对——别笑,这真不少人犯,因为WinRM走的是CredSSP或者Kerberos,你指定的账号得有远程登录权限才行。

到最后,咱说点实在的

WinRM怎么搭其实不复杂,关键就是别漏步骤,你跟着上面三步走,基本不会出啥幺蛾子,你要是图省事,也可以直接用我写好的脚本,一键搞定:

$tl = winrm quickconfig -quiet
if($tl) { Write-Host "配置成功,撒花!" }
else { Write-Host "配置失败,赶紧检查日志!" }

但我建议你最好手动跑一遍,这样你才知道哪儿容易出问题,以后才能像个老司机一样,闭着眼都能排错。

好了,真心话都写在这儿了,下次你要是再遇到WinRM连不上,别慌,先按这几个步骤查一遍,十有八九能解决问题,要是还不行,那就……嗯,那就重启一下服务器吧,嘿嘿,有时候Windows就是这么玄学!

希望这篇文章能帮到你,咱一起把WinRM用得溜溜的!有啥问题,评论区见,我看到就会回你哦!

文章版权声明:除非注明,否则均为极客网安-咸鱼原创文章,转载或复制请以超链接形式并注明出处。

目录[+]