远程处理在Microsoft PowerShell v3中的增强

日期: 2012-06-10 作者:Don Jones翻译:陈中华 来源:TechTarget中国 英文

远程处理是 PowerShell v2中最值得期待的特性。就是它使PowerShell到达了一个新的高度。以下摘录所描述的远程控制的形式,是基于由Don Jones、Richard Siddaway和Jeffery Hicks合著的 《PowerShell in Depth》(Manning出版社出版)中的第10章。   如果想要阅读全书,Manning出版社向TechTarget的读者们提供6折优惠。

购买时你可以在manning.com网站上使用12pidtt的促销代码。如果你已经购买了纸质的书,同时就可以免费拥有书的电子版。   远程处理是PowerShell v2和Management ……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

远程处理是 PowerShell v2中最值得期待的特性。就是它使PowerShell到达了一个新的高度。以下摘录所描述的远程控制的形式,是基于由Don Jones、Richard Siddaway和Jeffery Hicks合著的 《PowerShell in Depth》(Manning出版社出版)中的第10章。

  如果想要阅读全书,Manning出版社向TechTarget的读者们提供6折优惠。购买时你可以在manning.com网站上使用12pidtt的促销代码。如果你已经购买了纸质的书,同时就可以免费拥有书的电子版。

  远程处理是PowerShell v2和Management Framework Core v2中引入的主要的新技术之一。在v3版本中,微软继续在这项重要的基础性技术中进行开发和挖掘。

  实际上,PowerShell v2提供了两种连接到远程计算机的方式:

  1. 带有自己的–computerName参数的Cmdlets。它利用专有通信协议,最常用的是DCOM或RPC,一般只限于单个任务。它并不使用PowerShell的远程处理(也有些例外)。
  2. 使用专门的远程处理技术的Cmdlets:跟有–PSSession和其它参的Invoke-Command。

  这里讨论的主要侧重于第二种方式。它的好处之一是它的任何cmdlet,不管是否带有computerName参数,都可以用来进行远程处理。

  那么到底什么是远程处理?很简单,它是将一个或多个命令通过网络发送到一个或多个远程计算机的能力。远程计算机使用自己本地的处理资源(也就是该命令必须在远程计算机上存在并加载)运行收到的命令。像所有的PowerShell命令一样,命令的结果是一些对象,PowerShell将它们序列化成XML并通过网络传送到命令发起的计算机,在这里这些XML又被反序列化成对象并放入Powershell的管道中。在整个命令执行过程中,序列化/反序列化的过程至关重要,因为它提供了一种方法可以轻松地将复杂的数据结构转换成易于网络传输的文本形式。不要过多的考虑序列化,虽然它并不比使用Export-CliXML和Import-CliXML命令来处理运行结果复杂。其实,远程处理所带来的好处主要是可以通过网络获取数据。

  远程处理的一些术语让很多人感到困惑,所以让我们先来了解一下它们。

  1. WS-MAN是远程处理使用的网络协议。它是一种管理用途的Web服务,它或多或少也是一个行业标准协议。虽然它的使用还不是很普遍,但在非Windows平台上也可以看到它的影子。WS-MAN使用的也是 HTTP,跟你使用Web 浏览器从服务器获取网页使用的协议完全一样。
  2. Windows远程处理(WinRM),是一个使用WS-MAN协议处理连接通讯和身份验证的Microsoft 服务。WinRM 实际上是用来为任意数量的应用程序提供通信服务的;它并非仅限于PowerShell。WinRM 接收信息并将信息标记为特定的应用程序,如PowerShell,WinRM在收到任何关于此应用程序的反馈或者需要发回的结果时,它就会按照标记进行分类处理。
  3. 远程处理(Remoting)是一个用来描述PowerShell调用WinRM的术语。因此,你只能使用PowerShell来进行远程处理,当然,其它应用程序也有它们自己针对WinRM的特定用法。

  PowerShell v3中的新功能之一是一套通用信息模型 (CIM) 的cmdlets。尽管Windows 管理规范 (WMI)的cmdlets自PowerShell v1以来就一直存在,但是随着时间推移,CIM的cmdlets最终会取代传统WMI的cmdlets。现在,WMI和CIM的cmdlets在Powershell V3中是共存的,而且有很多重叠功能。它们都是利用相同的WMI数据资料库;两者之间最主要的区别之一就是它们通过网络进行通信的方式。CIM使用的是WinRM,而WMI使用的则是远程过程调用 (RPC)。CIM的cmdlets不使用远程处理—它们有自己的WinRM调用方式。我们拿这个进行举例只是为了更好的理解这些术语。通常情况下你不必担心它们之间的区别,但在故障排查时,你一定要知道谁正在调用什么。

  现在可以通过深挖一些特定的使用细节来解释更多的术语:

  1. 端点(Endpoint)是 WinRM中的一个特定的配置项。端点代表的是WinRM能为之接收通信的特定应用程序,通常都是一组设定来决定端点的行为方式。单个应用程序在多个端点有不同的设置是完全可能的,像Powershell就是这样的应用。每个端点可能用于不同的目的,可能会有不同的安全、 网络设置等等与之关联。
  2. 侦听器(Listner)是另一个WinRM的配置项,代表服务接受入站网络通信的能力。一个侦听器配置有一个TCP端口号,可以接受来自一个或多个IP地址的流量等。侦听器也可以用来侦听HTTP或HTTPS的连接请求,如果你想使用这两种协议,那么就需要安装有两个侦听器。

  在接下来的几个章节中,我们将逐个介绍远程处理的安装和使用全过程,这会特别涵盖“易用场景”,也就是你的计算机和远程计算机都在同一活动目录域中。

作者

Don Jones
Don Jones

投稿作者

相关推荐

  • Microsoft PowerShell v3远程应用场景

    在接下来的几个章节中,我们将逐个介绍远程处理的安装和使用全过程,这会特别涵盖“易用场景”,也就是你的计算机和远程计算机都在同一活动目录域中。