WinRM服务
WinRM全称是Windows Remote Management,是微软服务器硬件管理功能的一部分,能够对本地或远程的服务器进行管理。WinRM服务能够让管理员远程登录Windows操作系统,获得一个类似Telnet的交互式命令行shell,而底层通讯协议使用的是HTTP。 # 开启WinRM服务 在Windows 2012以上的服务器操作系统中,WinRM服务默认启动并监听了5985端口,可以省略这一步。 对于Windows 2008来说,需要使用命令来启动WinRM服务,快速配置和启动的命令是
winrm quickconfig -q
这条命令运行后会自动添加防火墙例外规则,放行5985端口。
新增80端口Listener对于原本就开放了WinRM服务的机器来讲,需要保留原本的5985端口listener,同时需要新增一个80端口的listener,这样既能保证原来的5985端口管理员可以使用,我们也能通过80端口连接WinRM。 ## 使用下面这条命令即可新增一个80端口的listener `winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}` 对于安装Windows 2012及以上版本操作系统的服务器来讲,只需要这一条命令即可实现端口复用。 本地配置 本地需要连接WinRM服务时,首先也需要配置启动WinRM服务,然后需要设置信任连接的主机,执行以下两条命令即可。 `winrm quickconfig -q` `winrm set winrm/config/Client @{TrustedHosts="*"}` ### Winrs远程执行命令
需要客户端启用Winrm,SYS权限受限制
客户端启用Winrm
winrm quickconfig -q winrm set winrm/config/Client @{TrustedHosts=”*”}
远程执行CMD
通过Winrs连接,并执行whoami命令
winrs -r:http://192.168.1.20 -u:k8gege -p:k8gege520 whoami
通过Winrs连接,并获得交互式的shell
winrs -r:http://192.168.1.20 -u:k8gege -p:k8gege520 cmd
PowerShell远程执行命令 需要客户端启用Winrm,和系统自带命令一样,SYS权限受限制
$ip="192.168.1.116"
#$ip="192.168.1.20"
Set-Item WSMan:\localhost\Client\TrustedHosts -Value $ip -Force
$securePassword = ConvertTo-SecureString -AsPlainText -Force 'k8gege520'
$cred = New-Object System.Management.Automation.PSCredential 'k8gege', $securePassword
$cmd = {ls C:\users\public}
Invoke-Command -ComputerName $ip -Credential $cred -ScriptBlock $cmd