通过Windows PowerShell远程管理计算机(精简版)
2015-08-12 17:13
148 查看
现在你手中有一台server(主控端),你打算通过主控端远程管理多台server(被控端)。这个过程可以通过Windows PowerShell来完成。
首先在被控端上以管理员权限打开PowerShell,输入以下命令(其中XXX是IP中的字段,TrustedHosts填写的是主控端的IP地址。):
然后在主控端上以管理员权限打开PowerShell,输入以下命令(其中“XXX.XXX.XXX.XXX”为被控端的IP地址,“domain\userName”为被控端机器的登陆用户。):
输入完这条命令后按回车,会让你验证被控端登陆用户的密码,输入后按回车——Session创建成功。
之后我们就可以通过$session变量来对远程计算机(被控端)进行操控了。
例如:我们想要远程重启这台计算机,只需要在主控端的PowerShell窗口中继续输入:
输入完毕按回车,这时被控端的机器就已经被重启了。
我将上述主控端的过程进行了封装,封装后的方法为:
从此主控端操控被控端只需要如下语句:
唯一比较麻烦的就是执行完上面的语句后,你需要对相应的“domain\userName”进行Password验证:
![](http://images0.cnblogs.com/blog2015/714263/201508/121712502398047.png)
对于有密码验证的情况,下面方法可以自动完成密码验证这一过程:
感谢园友的帮助!
首先在被控端上以管理员权限打开PowerShell,输入以下命令(其中XXX是IP中的字段,TrustedHosts填写的是主控端的IP地址。):
winrm s winrm/config/client '@{TrustedHosts="XXX.XXX.XXX.XXX"}'
然后在主控端上以管理员权限打开PowerShell,输入以下命令(其中“XXX.XXX.XXX.XXX”为被控端的IP地址,“domain\userName”为被控端机器的登陆用户。):
$session = New-PSSession XXX.XXX.XXX.XXX -Credential domain\userName
输入完这条命令后按回车,会让你验证被控端登陆用户的密码,输入后按回车——Session创建成功。
之后我们就可以通过$session变量来对远程计算机(被控端)进行操控了。
例如:我们想要远程重启这台计算机,只需要在主控端的PowerShell窗口中继续输入:
icm $session {cmd.exe /c shutdown /r /f /t 1}
输入完毕按回车,这时被控端的机器就已经被重启了。
我将上述主控端的过程进行了封装,封装后的方法为:
function ShutDownRemoteComputers { param($ip,$userName) #winrm s winrm/config/client '@{TrustedHosts=10.1.23.60"}' $sen = "'@{TrustedHosts=`""+$ip+"`"}'" winrm s winrm/config/client $sen $session = New-PSSession $ip -Credential $userName icm $session {cmd.exe /c shutdown /r /f /t 1} }
从此主控端操控被控端只需要如下语句:
ShutDownRemoteComputers -ip XXX.XXX.XXX.XXX -userName domain\userName
唯一比较麻烦的就是执行完上面的语句后,你需要对相应的“domain\userName”进行Password验证:
![](http://images0.cnblogs.com/blog2015/714263/201508/121712502398047.png)
对于有密码验证的情况,下面方法可以自动完成密码验证这一过程:
function ShutDownRemoteComputers { param($ip,$user,$pwd) #winrm s winrm/config/client '@{TrustedHosts=10.1.23.60"}' $sen = "'@{TrustedHosts=`""+$ip+"`"}'" winrm s winrm/config/client $sen $pw = convertto-securestring -AsPlainText -Force -String $pwd $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $user,$pw $session = New-PSSession $ip -Credential $cred icm $session {shutdown -s -t 0} }
感谢园友的帮助!
相关文章推荐
- java TCP/UDP编程
- 深度学习(卷积神经网络)一些问题总结
- spring基础:Http请求报文
- 智渔课堂官方免费教程三十七:Java数据结构之单向链表结构
- I学霸官方免费教程三十七:Java数据结构之单向链表结构
- 利用xp_cmdshell 导出文件到本地和网络路径。
- linux 网络配置 修改DNS 重启被覆盖
- 智渔课堂官方免费教程三十六:Java数据结构之双向链表结构
- I学霸官方免费教程三十六:Java数据结构之双向链表结构
- nginxhttp://www.nginx.cn/2181.html
- 学习JAVA不可不知的一些网络资源
- iOS项目开发实战——通过Http Post方式与服务器通信
- 快速排序(qsort and sort)
- 【数据结构与算法】八皇后问题之递归
- poj 1273 Drainage Ditches(网络流模版题)
- TCP/IP传输层,你懂多少?
- Java基础11——网络编程
- UNIX网络编程1 理解同步、阻塞、非阻塞、异步网络I/O
- Linux系统排查4——网络篇
- 数据结构Java实现01----算法概述