极客学校:学习在powershell中使用远程处理

PowerShell提供的最好的特性之一是能够远程管理服务器。它甚至可以让你同时管理一堆。...

极客学校:学习在powershell中使用远程处理

PowerShell提供的最好的特性之一是能够远程管理服务器。它甚至可以让你同时管理一堆。

请务必阅读本系列之前的文章:

  • 了解如何使用PowerShell自动化Windows
  • 学习在PowerShell中使用cmdlet
  • 学习如何在PowerShell中使用对象
  • 在PowerShell中学习格式化、过滤和比较

整个星期请继续关注本系列的其余部分。

什么是远程处理(remoting)?

服务器的批量管理可能会很乏味,如果您以前必须在50个Web服务器上更改IIS配置,您就会明白我的意思。在这种情况下,PowerShell远程处理和该语言的脚本能力可以起到解救作用。使用HTTP或更安全的HTTPS,PowerShell远程处理允许您向网络上的远程计算机发送命令。然后,机器运行命令并将输出发送回您,这些输出依次显示在您的屏幕上。

让我们从技术上

PowerShell远程处理的核心是一个Windows服务,即众所周知的Windows远程管理或WinRM服务。使用WinRM,您可以设置一个或多个会话配置(也称为端点),这些配置基本上是包含有关您要向连接到远程PowerShell实例的人员提供的体验的信息的文件。更具体地说,您可以使用会话配置文件来定义谁可以连接到实例,谁不能连接到实例,它们可以运行什么cmdlet和脚本,以及会话必须在什么安全上下文下运行。使用WinRM服务,还可以设置“侦听器”,侦听传入的PowerShell请求。这些“侦听器”可以是HTTP或HTTPS,并且可以绑定到您计算机上的单个IP地址。当您打开到另一台计算机的PowerShell连接时(技术上这是使用基于HTTP的WS-MAN协议完成的),连接将绑定到这些“侦听器”之一。然后,“监听器”负责将通信量发送到与相应会话配置文件关联的应用程序;应用程序(通常是PowerShell,但如果需要,可以有其他宿主应用程序)然后运行命令,并通过“监听器”将结果反馈到整个网络,然后反馈到您的服务器上机器。

告诉我怎么做

您需要做的第一件事是在要连接的计算机上启用远程处理。这可以通过运行以下命令来完成:

Enable-PSRemoting

极客学校:学习在powershell中使用远程处理

然后您需要对所有提示回答yes。运行Enable PSRemoting时,会对您的电脑进行一些更改:

  • WinRM服务启动。
  • WinRM服务从手动启动模式更改为自动启动。
  • 它创建一个绑定到所有网卡的HTTP侦听器。
  • 它还为WS-MAN协议创建入站防火墙例外。
  • 会创建一些默认会话配置

如果您运行的是Windows 7,并且网卡的位置设置为Public,则启用PowerShell远程处理将失败。要解决这个问题,只需切换到家庭或工作网络位置。或者,您可以使用以下方法跳过网络检查:

Enable-PSRemoting –SkipNetworkProfileCheck

极客学校:学习在powershell中使用远程处理

但是,我们建议您更改您的网络位置。

使用PowerShell连接到另一台机器有两种方法。有一对一的方法,这与使用SSH非常相似,还有一对多的方法。

使用powershell会话

使用PowerShell连接到远程计算机的第一种方法是使用称为PowerShell会话的东西。简单地说,会话允许您以交互方式在远程机器上运行命令,这与您在自己的机器上运行命令的方式非常相似。要打开会话,只需键入以下内容:

Enter-PSSession –ComputerName “Darlah”

极客学校:学习在powershell中使用远程处理

提示符将获得一个前缀,该前缀表示运行cmdlet的计算机。

极客学校:学习在powershell中使用远程处理

从这里,您可以真正地对待提示符,就像您坐在远程机器上一样。例如,如果要查看C:\驱动器上的所有文件,可以执行以下操作:

Get-ChildItem –Path C:\

极客学校:学习在powershell中使用远程处理

如果您来自Linux背景,可以考虑使用这种一对一的远程处理方法作为SSH的PowerShell替代方法。

使用invoke命令

在远程计算机上使用PowerShell的第二种方法是使用Invoke命令。使用Invoke命令的优势在于,您可以在多台计算机上同时执行同一个命令。可以想象,当您想从服务器收集事件日志时,这一点特别有用。Invoke命令遵循以下语法:

Invoke-Command -ComputerName Darlah,localhost -ScriptBlock {Get-EventLog Application -Newest 2}

极客学校:学习在powershell中使用远程处理

由于该命令是在所有机器上并行执行的,因此您需要一些方法来查看给定结果来自哪台PC。您可以通过查看PSComputerName属性来实现这一点。

极客学校:学习在powershell中使用远程处理

当您使用Invoke命令时,您不再拥有管道中可能需要的对象。您知道,为了让PowerShell从远程机器获取信息并返回到您的机器,它们需要某种方式来表示您在远程机器上运行的命令输出的对象。如今,表示分层数据结构的最佳方法似乎是使用XML,这意味着当您使用Invoke命令发出命令时,结果首先序列化为XML,然后再发送回您的计算机。一旦它们返回到您的机器,它们就会反序列化为一个对象;这里的问题是,当它们被反序列化时,对象拥有的所有方法(ToString()方法除外)都会从中剥离。

极客学校:学习在powershell中使用远程处理

注意:此规则有一些例外,例如,大多数基本类型(如integers)都可以在包含其方法的情况下反序列化。还有一个称为重水化的过程,其中可以将一些方法添加回反序列化对象。所以要小心,记住会员是你的朋友。

作业

  • 阅读唐琼斯的PowerShell远程处理电子书的秘密。

  • 发表于 2021-04-11 22:54
  • 阅读 ( 204 )
  • 分类:互联网

你可能感兴趣的文章

powershell foreach、while和其他循环的工作原理

学习编程的关键第一步是使用循环。谢天谢地,PowerShell将随着您的技能不断增长。 ...

  • 发布于 2021-03-11 23:17
  • 阅读 ( 443 )

使用powershell而不是批处理脚本的5个原因

大多数用户从未听说过PowerShell,更不用说触摸它并试用了。这可能是因为这个名字,听起来像是只有铁杆IT极客才会使用的东西。或者是因为PowerShell的好处还不清楚。可能是因为最初的学习曲线。 ...

  • 发布于 2021-03-15 16:49
  • 阅读 ( 281 )

windows10ssh与putty:是时候切换远程访问客户端了?

... 不过,多亏了Windows PowerShell,您可能不再需要腻子了。让我们看看如何在windows10中设置SSH访问,以及新工具是否可以取代PuTTY。 ...

  • 发布于 2021-03-22 22:29
  • 阅读 ( 318 )

如何在Windows10中自动连接到特定应用的vpn

使用Windows10的PowerShellcmdlet,您可以轻松地添加应用程序,以便在启动时自动触发VPN连接。自动化这个任务意味着当你使用某些应用程序时,你甚至不必考虑连接到VPN。 要利用PowerShell中的此功能,如果您还没有VPN服务,则必须...

  • 发布于 2021-04-02 15:58
  • 阅读 ( 520 )

如何在远程计算机上运行powershell命令

PowerShell远程处理允许您在远程Windows系统上运行PowerShell命令或访问完整的PowerShell会话。它类似于SSH,用于访问其他操作系统上的远程终端。 PowerShell在默认情况下是锁定的,因此在使用它之前必须启用PowerShell远程处理。如果您...

  • 发布于 2021-04-07 12:13
  • 阅读 ( 247 )

如何在windows powershell中使用命令历史记录

Windows PowerShell具有内置的命令历史记录功能,可提供有关已运行命令的详细信息。与命令提示符一样,PowerShell只记住当前会话的命令历史记录。 如何使用命令行缓冲区 相关:极客学校:学习如何用PowerShell自动化Windows PowerShel...

  • 发布于 2021-04-08 03:50
  • 阅读 ( 281 )

如何检查电脑上是否启用了安全引导

...Off”,如果硬件不支持,将看到值“Unsupported”。 使用powershell cmdlet 相关:如何在远程计算机上运行PowerShell命令 您还可以从PowerShell查询此信息。你为什么要这么做?使用PowerShell远程处理,可以使用PowerShell cmdlet检查远程PC是否...

  • 发布于 2021-04-08 14:57
  • 阅读 ( 244 )

如何在windows中批量重命名多个文件

...可以轻松地重命名一个或多个文件,但使用命令提示符或PowerShell,您还可以执行更多操作。再加上第三方重命名工具,可能性是无穷的。让我们看看每个选项及其工作原理。 在windows资源管理器中重命名多个文件 Windows资源管...

  • 发布于 2021-04-08 21:05
  • 阅读 ( 207 )

如何在windows上创建已安装程序的列表

....1和7上执行此操作的几种不同方法。 简单的方法:使用powershell命令 相关:极客学校:学习如何用PowerShell自动化Windows PowerShell是Windows中最强大的工具之一,所以它当然可以做一些简单的事情,比如列出你安装的程序。事实上...

  • 发布于 2021-04-09 18:20
  • 阅读 ( 179 )

如何修复windows应用商店中卡住的下载

...尝试运行它。这不需要太多时间,可能会有帮助。 向powershell重新注册windows应用商店 如果所有这些都失败了,您可以尝试重新注册Windows应用商店,这是您可以重新安装它。为此,您需要使用PowerShell,这是一种内置于Windows中...

  • 发布于 2021-04-09 18:36
  • 阅读 ( 212 )

相关推荐