PowerShell提供的最好的特性之一是能够远程管理服务器。它甚至可以让你同时管理一堆。
请务必阅读本系列之前的文章:
整个星期请继续关注本系列的其余部分。
服务器的批量管理可能会很乏味,如果您以前必须在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
然后您需要对所有提示回答yes。运行Enable PSRemoting时,会对您的电脑进行一些更改:
如果您运行的是Windows 7,并且网卡的位置设置为Public,则启用PowerShell远程处理将失败。要解决这个问题,只需切换到家庭或工作网络位置。或者,您可以使用以下方法跳过网络检查:
Enable-PSRemoting –SkipNetworkProfileCheck
但是,我们建议您更改您的网络位置。
使用PowerShell连接到另一台机器有两种方法。有一对一的方法,这与使用SSH非常相似,还有一对多的方法。
使用PowerShell连接到远程计算机的第一种方法是使用称为PowerShell会话的东西。简单地说,会话允许您以交互方式在远程机器上运行命令,这与您在自己的机器上运行命令的方式非常相似。要打开会话,只需键入以下内容:
Enter-PSSession –ComputerName “Darlah”
提示符将获得一个前缀,该前缀表示运行cmdlet的计算机。
从这里,您可以真正地对待提示符,就像您坐在远程机器上一样。例如,如果要查看C:\驱动器上的所有文件,可以执行以下操作:
Get-ChildItem –Path C:\
如果您来自Linux背景,可以考虑使用这种一对一的远程处理方法作为SSH的PowerShell替代方法。
在远程计算机上使用PowerShell的第二种方法是使用Invoke命令。使用Invoke命令的优势在于,您可以在多台计算机上同时执行同一个命令。可以想象,当您想从服务器收集事件日志时,这一点特别有用。Invoke命令遵循以下语法:
Invoke-Command -ComputerName Darlah,localhost -ScriptBlock {Get-EventLog Application -Newest 2}
由于该命令是在所有机器上并行执行的,因此您需要一些方法来查看给定结果来自哪台PC。您可以通过查看PSComputerName属性来实现这一点。
当您使用Invoke命令时,您不再拥有管道中可能需要的对象。您知道,为了让PowerShell从远程机器获取信息并返回到您的机器,它们需要某种方式来表示您在远程机器上运行的命令输出的对象。如今,表示分层数据结构的最佳方法似乎是使用XML,这意味着当您使用Invoke命令发出命令时,结果首先序列化为XML,然后再发送回您的计算机。一旦它们返回到您的机器,它们就会反序列化为一个对象;这里的问题是,当它们被反序列化时,对象拥有的所有方法(ToString()方法除外)都会从中剥离。
注意:此规则有一些例外,例如,大多数基本类型(如integers)都可以在包含其方法的情况下反序列化。还有一个称为重水化的过程,其中可以将一些方法添加回反序列化对象。所以要小心,记住会员是你的朋友。
学习编程的关键第一步是使用循环。谢天谢地,PowerShell将随着您的技能不断增长。 ...
大多数用户从未听说过PowerShell,更不用说触摸它并试用了。这可能是因为这个名字,听起来像是只有铁杆IT极客才会使用的东西。或者是因为PowerShell的好处还不清楚。可能是因为最初的学习曲线。 ...
... 不过,多亏了Windows PowerShell,您可能不再需要腻子了。让我们看看如何在windows10中设置SSH访问,以及新工具是否可以取代PuTTY。 ...
使用Windows10的PowerShellcmdlet,您可以轻松地添加应用程序,以便在启动时自动触发VPN连接。自动化这个任务意味着当你使用某些应用程序时,你甚至不必考虑连接到VPN。 要利用PowerShell中的此功能,如果您还没有VPN服务,则必须...
PowerShell远程处理允许您在远程Windows系统上运行PowerShell命令或访问完整的PowerShell会话。它类似于SSH,用于访问其他操作系统上的远程终端。 PowerShell在默认情况下是锁定的,因此在使用它之前必须启用PowerShell远程处理。如果您...
Windows PowerShell具有内置的命令历史记录功能,可提供有关已运行命令的详细信息。与命令提示符一样,PowerShell只记住当前会话的命令历史记录。 如何使用命令行缓冲区 相关:极客学校:学习如何用PowerShell自动化Windows PowerShel...
...Off”,如果硬件不支持,将看到值“Unsupported”。 使用powershell cmdlet 相关:如何在远程计算机上运行PowerShell命令 您还可以从PowerShell查询此信息。你为什么要这么做?使用PowerShell远程处理,可以使用PowerShell cmdlet检查远程PC是否...
...可以轻松地重命名一个或多个文件,但使用命令提示符或PowerShell,您还可以执行更多操作。再加上第三方重命名工具,可能性是无穷的。让我们看看每个选项及其工作原理。 在windows资源管理器中重命名多个文件 Windows资源管...
....1和7上执行此操作的几种不同方法。 简单的方法:使用powershell命令 相关:极客学校:学习如何用PowerShell自动化Windows PowerShell是Windows中最强大的工具之一,所以它当然可以做一些简单的事情,比如列出你安装的程序。事实上...
...尝试运行它。这不需要太多时间,可能会有帮助。 向powershell重新注册windows应用商店 如果所有这些都失败了,您可以尝试重新注册Windows应用商店,这是您可以重新安装它。为此,您需要使用PowerShell,这是一种内置于Windows中...