一、什么是winRM服务
1.1、winRM服务介绍
Windows远程管理(WinRM)服务是Windows Server 2003 R2以上版本中一种新式的方便远程管理的服务。通过WinRM服务,便于在日常工作中远程管理服务器,或通过脚本同时管理多台服务器,来提高工作效率。
我们在运维Windows服务器时,通常是用RDP协议来访问服务器,由于RDP是一种图形化协议,导致运维人员无法像SSH一样通过命令行终端的方式来对Windows服务器进行运维操作。RDP协议的这一缺点,使得Windows无法通过远程来执行一些自动化批量命令,例如传输文件、远程执行脚本等。
1.2、如何配置WinRM服务
WinRM服务基于HTTP(HTTPS)协议,使用5985端口(HTTPS使用5986端口)。按照微软官方的介绍:Windows2008 R2以上版本的操作系统,默认开启WinRM服务,因此,在使用时只需将防火墙相应的5985(或5986)端口开放即可;
(1)如何确认WinRM服务是否开放?
以管理员身份在CMD中执行以下命令:
winrm e winrm/config/listener
若返回错误信息,表示WinRM未启动;
若返回以下信息,表示已启动:
(2)如何开启WinRM服务?
若WinRM未启用,以管理员权限运行PowerShell,然后输入以下命令:
enable-psremoting
看到上述界面,表示WinRM启动成功。
二、winRM在行云管家上的应用
2.1、基于winRM的远程改密功能
目前很多堡垒机将WinRM作为Windows账号自动改密的执行方案。
在业界,WinRM已经被广泛接受,微软官方也在逐渐向Linux看齐,甚至在未来发布的Windows Server,将支持只有Server Core而没有GUI的Windows。而这种系统的管理方式,就是WinRM。
2.2、使用前要做哪些配置
在现在GUI形式的Windows上,若使用域控账号或Administrator执行远程管理,由于Windows将域账户认为是可信账户,因此无需任何配置,即可完美执行远程命令。
但要想使用本地非Administrator账号通过WinRM进行远程管理,会受到UAC(User Account Control)的影响,当使用非Administrator账号执行任何操作时,均会弹出UAC确认窗口,需要用户手动点击“是”按钮进行确认,如下图:
那么问题来了:在执行远程命令时,运维人员并没有进到操作系统界面,无法看到此提示,更不用说确认了,必然导致远程命令执行失败。
针对此问题,微软提供了一种远程操作关闭UAC提示的策略配置,只需要在注册表中配置LocalAccountTokenFilterPolicy = 1,即可在远程执行命令时,不进行UAC提示,但此策略不影响Windows本地操作,因此具有一定安全性。
具体配置操作为以管理员身份打开CMD,并执行以下命令:
reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
进行上述配置后,使用本地非管理员账号,也可完美远程执行命令。
三、参考材料
(1)微软WinRM服务介绍:
https://docs.microsoft.com/en-us/windows/win32/winrm/portal
(2)微软UAC介绍:
https://docs.microsoft.com/en-us/troubleshoot/windows-server/windows-security/user-account-control-and-remote-restriction
(3)微软对于远程UAC提示的说明:
https://docs.microsoft.com/en-US/troubleshoot/windows-server/windows-security/user-account-control-and-remote-restriction
标签:服务,远程管理,Windows,配置,WinRM,应用,UAC,远程 From: https://www.cnblogs.com/Magiclala/p/17653733.html