前言:
Powershell可以设置允许远程登陆,操作远程服务器,具体设置请参考其他博客,下面主要解释PS报错:
PS C:\Windows\system32> Enter-PSSession -ComputerName xxxx.xxxx.xxx.xx -Credential $credEnter-PSSession : 连接到远程服务器 xxxx.xxxx.xxx.xx 失败,并显示以下错误消息: WinRM 无法完成该操作。 请验证指定的计算机名称有效,可以通过网络访问该计算机,以及启用了 WinRM 服务的防火墙例外并允许从此计算机中进行访问。 默认情况下,公用配置文件的 WinRM 防火墙例外仅限访问同一本地子网中的远程计算机。 有关详细信息,请参阅 about_Remote_Troubleshooting 帮助主题。所在位置 行:1 字符: 1+ Enter-PSSession -ComputerName xxxx.xxxx.xxx.xx -Credential $cred+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (xxxx.xxxx.xxx.xx:String) [Enter-PSSession],PSRemotingTransportException + FullyQualifiedErrorId : CreateRemoteRunspaceFailed
从报错可以看出WinRM模式仅允许同一本地子网的远程计算机访问,在相同网关的另一台VM用Powershell测试:
PS C:\Windows\system32> Enter-PSSession -ComputerName xxxx.xx.xxx.xx -Credential $cred[xxxx.xx.xxx.xx]: PS C:\Users\Administrator\Documents>
发现在同一个网段可以正常访问,猜测是防火墙限制了不同网段的WinRM的连接,关闭防火墙后再测试原有报错连接,可以成功,猜测成立。
开启防火墙WinRM端口,开放给所有网络,新建入站规则
开发WinRM端口5985:
最后再测试一下连接,发现可以成功登陆,问题解决