Powershell远程管理采用一种新的通信协议,Web Services for Management,简称WS-MAN它
通过http或者https进行工作,WS-WAN的实现主要基于一个后台服务:Windows远程管理(WinRM)。Server2008R2中默认
开启该服务,从Server2012开始,该服务便集成在系统中默认开启,Win7默认安装此服务,但是默认为禁用状态,Win8,Win10默认开启。
这种远程连接不会被客户端察觉到,也不会占用远程连接数!
我们需要两台计算机进行测试,并且这两台计算机需要在同一个域中(如果不在域中的话,需要添加受信任的主机,并且输入对方计算机的凭据,稍后会演示如何远程非域计算机)
如果你想一对多远程,但这样一台一台计算机启用又特别繁琐,可以尝试使用组策略下发!
===域中计算机远程管理
1.管理员权限运行Powershell,输入Enable-PsRemoting开启Powershell远程管理,远程端和被远程端都需要启用,另外说明一下,WinRM也就是Powershell远程管理时使用的端口http,5985;https,5986
也可以修改默认的端口号,但是这么做的话每次进行远程操作时需要制定端口号进行连接
2.S12-1Powershell远程管理S12-2,就这么容易,但是如果不是域中的计算机可就没这么简单了
可以看到Shell命令格式变成了[s12-2]:PS...,说明已经该链接成功建立
现在执行的所有语句都是在S12-2上运行,可以输入任何命令,需要注意的是你远程对方时需要知道对方的计算机名称,因为WinRM默认不允许使用IP地址或者DNS中的别名进行远程处理。
该过程通过Kerberos实现,不会通过网络传递用户名以及密码到远程计算机。你在远程计算机上执行的任何命令都依赖于你的凭据,所以你能实现权限范围内的任意操作(用的域管理员的话就可以进行任何操作)
3.当在远程计算机上执行命令结束后,需要进行什么命令来退出呢,Enter-PSSession是对计算机进行远程操作,那么当然可以使用Exit-PSSession,如果是自己猜到的话,给自己一朵小红花!其实还可以使用Esxi直接退出
===非域计算机远程管理
1.输入Enable-PsRemoting开启Powershell远程管理,远程端和被远程端都需要启用
2.报错信息明确指出,客户端未加入域中,那当然也就无法使用Kerbose身份验证,自然需要手动输入目标凭据,接着往下看,如果想要远程的话还需要配置受信任的主机
3.配置受信任的主机,Value指定要远程的计算机
4.新建会话,输入对方的账户密码作为远程目标计算机的凭据
5.没有域时Computername必须指定为IP地址,然后指定你的凭据才可以远程目标计算机,未加域这种远程方式非常鸡肋
===客户端操作系统开启Powershell远程管理时报错解决
1.服务器并不会发生这样的问题,客户端由于网络连接类型设置为公用,公用模式下是无法开启Powershell远程管理的,需要将网络连接类型设置为域或者专用
2.Win7设置非常简单,这里不做演示,Win10和Win8的更改方法基本一致,这里以Win10作为演示
1)点击设置
2)选择网络和Internet
3)选择以太网,然后点击网络连接,如果是无线的话选择WLAN
4.如果将其开启,计算机处于域环境,那么你的网络连接就是域网络,如果处于工作组环境就是专用网络,如果将其关闭,系统就会判定网络环境为公用网络,也就无法开启Powershell远程管理
5.客户端更改网络连接环境后,再次启用Powershell远程管理,启用成功!
抓紧时间试试Powershell远程管理的效果吧!