powershell远程管理

简介

在一定程度上讲powershell 远程管理类似域Telent或者其他一些老旧的远程处理技术,它会在远程计算机上面执行相关命令,并将结果返回本地计算机,powershell远程管理使用的是针对管理的Web服务(Web Services forManagement,WS-MAN)。WS-MAN是完全基于http或者https进行工作的,是一种对防火墙友好的协议(应该也就是好配置的意思)。

微软对WS-MAN的实现主要基于一个后台服务:Windows远程管理组件(WinRM)。在安装PowerShell(第2版)的时候会同时安装WinRM,在服务器版操作系统(比如Windows Server 2008 R2)中默认开启该服务。Windows 7操作系统默认安装该服务,但该服务处于禁用状态。通常来说,在服务器操作系统处于启用状态,在客户端操作系统处于禁用状态。

在使用powershell 远程管理之前,WinRM服务需要提前进行配置,并非只有powershell能使用WInRM服务,实际上,微软在原来越多的管理程序中开始使用WinRM服务。WinRM相当于一个调度器,当有流量进来后,WinRM会绝顶由那种程序来处理这部分流量。在你的系统中可以有几十个甚至上百个WinRM端点,每一个端点都指向一种应用程序,甚至你可以将多个端点指向同一个应用程序,但是每个端点提供不同的权限以及功能。。例如,你可以在环境中创建一个PowerShell端点,该端点仅允许特定用户运行一个或者两个命令。

在这里插入图片描述

WinrM配置

可以使用一下命令对WinRM进行快速配置

WinRM queckconfig  //cmd
Enable-PSRemoting   //powershell

如果报错的话,很可能就是因为网卡的网络环境是公网网络,公网网络是无法设置防火墙例外的,这是在客户端电脑上容易出现的问题,服务器版本的操作系统没有这个限制。

WinRM服务默认监听5985(http端口),可以通过以下命令来查看WinRM的监听情况

winrm enumerate winrm/config/listener
powershell远程管理
一对一管理

PowerShell可以通过两种方法实现远程处理,第一种称为一对一或者1:1远程处理,第二种称为一对多,或者1 : n
远程处理,在下一节中会讲到一对多场景。一对一的情况下会使用到Enter-PSSession和Exit-PSSession两个命令,一个用来创建会话,另一个用来结输会话(直接叉掉也没啥问题)。
创建一对一的远程处理进程可以使用以下命令

Enter-PSSession –ComputerName Server-R2  //域环境
Enter-PSSession -ComputerName 192.168.220.160 -Credential administrator //工作组环境

第一种直接使用kerberos去验证身份了,所以不用输入密码了。同是在《Windows PowerShell 实战指南(第3版)》,这本书中指出WinRM默认不允许使用IP地址或者DNS中的别名去进行远程处理,近支持远程计算机的真实名称,但是我在工作组环境中并未受到响应的影响,而且执行成功了,不知道域环境下是否会受到限制。

但是响应的也遇到了点问题

可以通过,以下命令添加本地信任主机,*代表信任所有。
同时需要注意,powershell远程管理,并不受AllowUnencrypted设置值的影响。

WinRm set WinRM/config/Client @{TrustedHosts = *}

在这里插入图片描述

在这里插入图片描述

还可以在Server-R2主机上继续执行远程管理的命令,实现二连跳,但是并不建议这么做,主要原因是系统开销和管理问题。

一对多远程管理

一对多远程管理肯定是主要适用于域环境了,主要是因为验证的问题,是要使用的命令是
Invoke-Command,

命令格式

Invoke-Command –ComputerName Server-R2,Server-DC4,Server12 –Command {Get-EventLog Security –Newest 200 | Where {$_.EventID –eq 1212 }}

也就是将一个命令同时传递给多台远程计算机。也可称之为全面的分布式计算。每台计算机都独立运行发送的命令,然后将结果集返回给你。

另外,在Invoke-Command的帮助信息中找不到-Command参数,但是我们确认上面示例中的命令可以正常运行。实际上,-Command参数是帮助文档中-ScriptBlock参数(可以在Invoke-Command帮助文档中找到该参数的信息)的一个别名或者昵称。由于-Command命令更容易记住,所以我们往往使用-Command,而不会使用-ScriptCommand。

注:在学习过程中,虽然就是几条命令的事,但是书中的一些描述也引发了我的一些思考,对于Kerberos认证、令牌以及域安全的思考。希望大家有时间可以读一下原书,可能会得到一些意想不到的启发也说不定

参考

《Windows PowerShell 实战指南(第3版)》

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值