在Linux中,我们可以使用安全的SSH方便的进行远程管理。但在Windows下,除了不安全的Telnet以外,从Windows Server 2008开始提供了另外一种命令行原创管理方式,那就是基于PowerShell的WinRM。
下面就介绍下如何使用WinRM,客户端和服务端必须为同一域或者同一局域网
环境:
虚拟机win7
win7
1、在Windows7上配置WinRM(windows remote management)网络设置为工作网络,也可以跳过检查,最下面有问题总结
C:\Windows\system32> winrm quickconfig
//或者进入powershell
ps>enable-psremoting
2、开启防火墙命令或者直接关闭防火墙:
C:\Windows\system32>netsh advfirewall firewall set rule group="Windows 远程管理" new enable=yes
3、使用PowerShell连接远程服务器:
PS C:\Users\Administrator> enter-pssession -computer 服务器名或者IP
//这个有很多报错,文章最下面有报错总结,如果显示“拒绝连接”,可以用下面的完全连接,以下是部分报错。
Enter-PSSession : 连接到远程服务器失败,错误消息如下: WinRM 客户端无法处理该请求。如果身份验证方案与 Kerberos 不同,或 者客户端计算机未加入到域中, 则必须使用 HTTPS 传输或者必须将目标计算机添加到 TrustedHosts 配置设置。 使用 winrm.cmd 配 置 TrustedHosts。请注意,TrustedHosts 列表中的计算机可能未经过身份验证。 通过运行以下命令可获得有关此内容的更多信息: wi nrm help config。 有关详细信息,请参阅 about_Remote_Troubleshooting 帮助主题。 所在位置 行:1 字符: 16 + Enter-PSSession <<<
添加一个TrustedHosts表,相当于一个信任列表。
服务端执行如下命令,客户端需要已管理员权限执行,将IP为192.168.3.*的主机都加入信任列表
Set-Item wsman:\localhost\Client\TrustedHosts -value 192.168.115.*
最后用以下完全连接,然后输入密码就可以了。
Enter-PSSession 192.168.3.1 -Credential abc\administrator
命令就可以完成连接了,没有域的话就直接写用户名。
在任何时间禁用WinRM,你可以使用这样的命令:
winrm delete winrm/config/listener?IPAdress=*+Transport=HTTP
退出连接
exit-pssession
问题总结:
问题1:
s\Administrator> enter-pssession -computer 192.168.115.130
ssion : 连接到远程服务器 192.168.115.130 失败,并显示以下错误消息: WinRM 客户端无法处理该请求。如果身份验证方 ros 不同,或者客户端计算机未加入到域中, 则必须使用 HTTPS 传输或者必须将目标计算机添加到 TrustedHosts 配置设 winrm.cmd 配置 TrustedHosts。请注意,TrustedHosts 列表中的计算机可能未经过身份验证。 通过运行以下命令可获得有 更多信息: winrm help config。 有关详细信息,请参阅 about_Remote_Troubleshooting 帮助主题。 行:1 字符: 1 session -computer 192.168.115.130 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ goryInfo : InvalidArgument: (192.168.115.130:String) [Enter-PSSession],PSRemotingTransportException yQualifiedErrorId : CreateRemoteRunspaceFailed
////////////////////解决,在客户端执行:
Set-Item wsman:\localhost\Client\TrustedHosts -value 192.168.3.*
///////或者
Set-Item WSMan:\localhost\client\trustedhosts * -Force
问题2
PS C:\Users\Administrator> enter-pssession -computer 192.168.115.130
enter-pssession : 连接到远程服务器 192.168.115.130 失败,并显示以下错误消息: 拒绝访问。 有关详细信息,请参阅 about_Remo te_Troubleshooting 帮助主题。 所在位置 行:1 字符: 1 + enter-pssession -computer 192.168.115.130 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (192.168.115.130:String) [Enter-PSSession],PSRemotingTransportException + FullyQualifiedErrorId : CreateRemoteRunspaceFailed
//解决
Enter-PSSession 192.168.3.1 -Credential abc\administrator //主机名\用户名
问题3
PS C:\windows\system32> Enable-PSRemoting -Force
在此计算机上设置了 WinRM 以接收请求。 Set-WSManQuickConfig :
//解决,跳过检查网络
Enable-PSRemoting -Force -SkipNetworkProfileCheck
问题4:
PS C:\Users\Administrator> enter-pssession -computer 10.211.8.173
enter-pssession : 连接到远程服务器 10.211.8.173 失败,并显示以下错误消息: 客户端无法连接到请求中指定的目标。 请验证该目 标上的服务是否正在运行以及是否正在接受请求。 有关目标(通常是 IIS 或 WinRM)上运行的 WS 管理服务,请查阅日志和文档。 如果 目标是 WinRM 服务,则在目标上运行以下命令来分析和配置 WinRM 服务: "winrm quickconfig"。 有关详细信息,请参阅 about_Remo te_Troubleshooting 帮助主题。 所在位置 行:1 字符: 1 + enter-pssession -computer 10.211.8.173 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (10.211.8.173:String) [Enter-PSSession],PSRemotingTransportException + FullyQualifiedErrorId : CreateRemoteRunspaceFailed
/////////////////////////////////解决
///////////////////////////////服务端执行
PS C:\Users\Administrator>enable-psremoting