码迷,mamicode.com
首页 > Windows程序 > 详细

通过Windows PowerShell远程管理计算机(精简版)

时间:2015-08-12 18:48:26      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

现在你手中有一台server(主控端),你打算通过主控端远程管理多台server(被控端)。这个过程可以通过Windows PowerShell来完成。

首先在被控端上以管理员权限打开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验证:

技术分享

不知道有什么方法可以越过或者自动完成密码验证这一过程,希望精通PowerShell的你能够给予指点!O(∩_∩)O谢谢~

通过Windows PowerShell远程管理计算机(精简版)

标签:

原文地址:http://www.cnblogs.com/LanTianYou/p/4723914.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!