现在你手中有一台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 }

输入完毕按回车,这时被控端的机器就已经被重启了。

我将上述主控端的过程进行了封装,封装后的方法为:

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 }
}

从此主控端操控被控端只需要如下语句:

ShutDownRemoteComputers -ip XXX.XXX.XXX.XXX -userName domain\userName

唯一比较麻烦的就是执行完上面的语句后,你需要对相应的“domain\userName”进行Password验证:

对于有密码验证的情况,下面方法可以自动完成密码验证这一过程:

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 }
}

感谢园友的帮助

通过Windows PowerShell远程管理计算机(精简版)的更多相关文章

  1. TeamViewer12.0.71503(远程控制软件)精简版单文件企业版介绍

    TeamViewer 是一款能在任何防火墙和 NAT 代理的后台用于远程控制,桌面共享和文件传输的简单且快速的解决方案.为了连接到另一台计算机,只需要在两台计算机上同时运行 TeamViewer 即可 ...

  2. TeamViewer12.0.71503(远程控制软件)精简版 单文件企业版介绍

    TeamViewer 是一款能在任何防火墙和 NAT 代理的后台用于远程控制,桌面共享和文件传输的简单且快速的解决方案.为了连接到另一台计算机,只需要在两台计算机上同时运行 TeamViewer 即可 ...

  3. PowerShell 远程管理之 about_Remote_Troubleshooting

    主题 about_Remote_Troubleshooting 简短说明 说明如何解决 Windows PowerShell 中的远程操作的问题. 详细说明 本节描述您在使用 Windows Powe ...

  4. [Windows Powershell]-学习笔记(5)

    Powershell自动化变量 Powershell 自动化变量 是那些一旦打开Powershell就会自动加载的变量,或者说是运行是变量. 这些变量一般存放的内容包括 用户信息:例如用户的根目录$h ...

  5. Powershell 远程连接ARM Windows Server VM 并关闭 Firewall

    准备环境:Azure ARM Windows Server 2008 R2 机器 1.登陆机器查看防火墙,是开着的 2.查看机器的监听端口,发现没有Powershell远程管理对应的端口5985或59 ...

  6. 安装了精简版的windows 的电脑如何修复?参照的程序集没有安装在系统上

    我利用网络上的windows 10 纯净版来进行安装windows 10 镜像的时候,发现很多的windows 的服务都是不能用的.比如启动/删除 windows 功能就是不能用的,会出现如下信息: ...

  7. MySql5.7.11 for Windows 安装精简版(一)

    原文:MySql5.7.11 for Windows 安装精简版(一) 从官网下载压缩包,我下载的是64位的.解压. 精简: -Bin下只保留 mysqladmin.exe mysqld.exe my ...

  8. 使用 Powershell 远程连接 windows server

    使用 Powershell 远程连接 windows server Intro 最近我们的开发环境增加了一个 windows 服务器,没有界面的,不能直接远程桌面连上去管理,需要使用 Powershe ...

  9. 有奖试读—Windows PowerShell实战指南(第2版)

    为什么要学PowerShell? Windows用户都已习惯于使用图形化界面去完成工作,因为GUI总能轻易地实现很多功能,并且不需要记住很多命令.使得短时间学会一种工具成为可能. 但是不幸的是,GUI ...

随机推荐

  1. Python之os.walk()

    #http://www.cnblogs.com/bluescorpio/archive/2009/10/21/1587493.html os.walk() 返回结果:可以得到一个(dirpath, d ...

  2. LeetCode(35):Palindrome Number

    Determine whether an integer is a palindrome. Do this without extra space. Some hints: Could negativ ...

  3. BIND9源码分析之 多个view的情况下如何做dynamic update

    BIND中view的存在提供了一种较好的智能DNS方案,BIND可以根据用户的来源IP为其返回不同的Resource Record. 但是关于DNS动态更新的RFC2136中并没有提及view(vie ...

  4. mybatis实现多表联合查询

    本文转自:http://www.cnblogs.com/xdp-gacl/p/4264440.html#!comments 一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) ...

  5. HDUOJ---Piggy-Bank

    Piggy-Bank Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  6. HDUOJ---The Moving Points

    The Moving Points Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  7. 理解Lucene中的Query

    Query是一个接口,它有很多实现类. QueryParser是Query解析器,用于将一个字符串解析为一个Query对象,这个Query对象可能属于TermQuery,也可能属于PhraseQuer ...

  8. 微软解决方案框架 - MSF的团队模型、MSF的开发模型,关于SA系统分析师信息的一篇好帖子

    msf中的开发模型 书中关于六个小组的人员的案例: MSF 组队模型 v. 3.1-http://bbs.51cto.com/thread-1171-1.html 微软解决方案框架 - MSF的团队模 ...

  9. RedisDesktopManager无法连接虚拟机中启动的redis服务问题解决

    问题:开启虚拟机Redis,用RedisDesktopManager链接报超时. 问题排查: 1.检查redis是否正常启动 结果:正常启动 2.查看网络是否正常 结果:正常 3.检查redis bi ...

  10. Ubuntu16.04 安装RabbitMQ

    转载https://www.cnblogs.com/hongdada/p/7203589.html 安装RabbitMQ 由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要 ...