通过Windows PowerShell远程管理计算机(精简版)
现在你手中有一台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远程管理计算机(精简版)的更多相关文章
- TeamViewer12.0.71503(远程控制软件)精简版单文件企业版介绍
TeamViewer 是一款能在任何防火墙和 NAT 代理的后台用于远程控制,桌面共享和文件传输的简单且快速的解决方案.为了连接到另一台计算机,只需要在两台计算机上同时运行 TeamViewer 即可 ...
- TeamViewer12.0.71503(远程控制软件)精简版 单文件企业版介绍
TeamViewer 是一款能在任何防火墙和 NAT 代理的后台用于远程控制,桌面共享和文件传输的简单且快速的解决方案.为了连接到另一台计算机,只需要在两台计算机上同时运行 TeamViewer 即可 ...
- PowerShell 远程管理之 about_Remote_Troubleshooting
主题 about_Remote_Troubleshooting 简短说明 说明如何解决 Windows PowerShell 中的远程操作的问题. 详细说明 本节描述您在使用 Windows Powe ...
- [Windows Powershell]-学习笔记(5)
Powershell自动化变量 Powershell 自动化变量 是那些一旦打开Powershell就会自动加载的变量,或者说是运行是变量. 这些变量一般存放的内容包括 用户信息:例如用户的根目录$h ...
- Powershell 远程连接ARM Windows Server VM 并关闭 Firewall
准备环境:Azure ARM Windows Server 2008 R2 机器 1.登陆机器查看防火墙,是开着的 2.查看机器的监听端口,发现没有Powershell远程管理对应的端口5985或59 ...
- 安装了精简版的windows 的电脑如何修复?参照的程序集没有安装在系统上
我利用网络上的windows 10 纯净版来进行安装windows 10 镜像的时候,发现很多的windows 的服务都是不能用的.比如启动/删除 windows 功能就是不能用的,会出现如下信息: ...
- MySql5.7.11 for Windows 安装精简版(一)
原文:MySql5.7.11 for Windows 安装精简版(一) 从官网下载压缩包,我下载的是64位的.解压. 精简: -Bin下只保留 mysqladmin.exe mysqld.exe my ...
- 使用 Powershell 远程连接 windows server
使用 Powershell 远程连接 windows server Intro 最近我们的开发环境增加了一个 windows 服务器,没有界面的,不能直接远程桌面连上去管理,需要使用 Powershe ...
- 有奖试读—Windows PowerShell实战指南(第2版)
为什么要学PowerShell? Windows用户都已习惯于使用图形化界面去完成工作,因为GUI总能轻易地实现很多功能,并且不需要记住很多命令.使得短时间学会一种工具成为可能. 但是不幸的是,GUI ...
随机推荐
- 【svn】Centos搭建svn服务器环境
1.需求描述 在Centos系统中搭建svn服务器环境 2.搭建过程 2.1 yum安装svn [root@localhost /]# yum install svn 2.2 新建目录存储svn目录 ...
- 基于CUDA的粒子系统的实现
基于CUDA的粒子系统的实现 用途: 这篇文章作为代码实现的先导手册,以全局的方式概览一下粒子系统的实现大纲. 科普: 对粒子进行模拟有两种基本方法: Eulerian(grid-based) met ...
- Linux各主要发行版的包管理命令对照
Linux各主要发行版的包管理命令对照 Debian使用的是apt和dpkg,Gentoo则用的是emerge,Redhat的yum.Suse的zypper.Arch的pacman.Slackware ...
- HDUOJ---1241Oil Deposits(dfs)
Oil Deposits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tota ...
- Evernote如何邮件分享
把你的笔记通过邮件发送给别人,从而实现分享
- 修改jQuery.validate验证方法和提示信息
1.添加验证方法 在jquery.validate.js文件中直接添加验证方法,例如: jQuery.validator.addMethod("Specialstring", fu ...
- configure: error: png.h not found.
PHP的时候提示这个错误 configure: error: png.h not found.,这个是选择安装GD模块才会出现的错误,详细错误信息如下 If configure fails try - ...
- Devexpress ASPxPivotGrid 按某列排序,以及把GrandTotal修改掉
<div> <table width="100%" border="0" cellspacing="0" cellpadd ...
- 关于Andorid的RecyclerView在V7包下找不到的解决办法
关于Andorid的RecyclerView在V7包下找不到的解决办法 最近在学习使用RecyclerView替换现有的ListView,看了几篇文章.当准备自己动手实现的时候发现,V7包下找不到 ...
- Shell中重定向<<EOF注意事项
作者:iamlaosong 我们常常在shell脚本程序中用<<EOF重定向输入.将我们输入的命令字符串作为一个运行程序的输入,这样,我们就不须要在那个程序环境中手工输入命令,以便自己主动 ...