从而允许您对每台服务器执行多个操作

Learn, share, and connect around europe dataset solutions.
Post Reply
roseline371274
Posts: 939
Joined: Mon Dec 23, 2024 8:20 am

从而允许您对每台服务器执行多个操作

Post by roseline371274 »

您每天使用的许多标准 PowerShell 命令(Get-Process、Get-Service、Get-EventLog 等)都允许您以这种方式对远程计算机执行操作。还值得注意的是,-ComputerName 将接受多个主机名,允许您同时定位一组计算机,而无需多次执行该命令。使用此方法管理远程计算机可绕过持久 PowerShell 远程会话的一些要求。

启用 PowerShell 远程会话
PowerShell 2.0 版引入的一大功能是远程功能。使用 WinRM(Windows 远程管理),PowerShell 远程功能可让您创建与计算机的远程会话。该功能类似于常见的远程管理工具(如 telnet 或 SSH),但利用的是行业标准端口和协议(如 HTTP 和 SOAP)。

虽然网络上的大多数 Windows 系统至少应该安装了 PowerShell 2.0(这是 Windows 7 和 Windows Server 2008 上的默认安装),但直到 Windows Server 2012 才默认启用 PowerShell 远程处理。要启用 PowerShell 远程处理,必须启动 WinRM 服务并将其设置为自动启动,并且必须启用防火墙规则以允许与服务器通信。

幸运的是,使用提升权限的 PowerShell 提示符中的Enable-PSRemoting cmdlet 和 -Force开关,只需一步即可启用 PowerShell 远程处理  。由于 Windows Server 2012 及更高版本默认启用了 PowerShell 远程处理,因此无需运行 Enable-PSRemoting,除非出于某种原因已将其禁用。

为什么要使用远程会话?
在某些情况下,应该使用远程会话而不是针对远程计算机的单个 cmdlet,有几个重要的原因,首先是性能。当您针对十台不同的计算机运行 Get-Service之类的 cmdlet 时 ,本地计算机必须执行命令并处理来自每台计算机的信息。当利用远程会话时,每台远程计算机都会运行命令,将工作负载分散到十台计算机上。一旦您开始谈论针对数百或数千台计算机运行的 PowerShell 脚本,性能就成为您的首要任务之一。

使用远程 PowerShell 会话的另一个原因是能够在同一会话中使用多个 cmdlet,,甚至远程运行整个脚本。以这种方式使用远程会话的潜力包括自动执行软件清单、定期重新启动整个数据中心的服务,或您能想到的任何流程。

创建远程会话
虽然使用远程 PowerShell 会话的好处显而易见,但使用起 克罗地亚whatsapp 数据 来可能比简单地使用带有 -ComputerName 参数的 cmdlet 稍微复杂一些。启动远程会话的最简单方法是使用 Invoke-Command  cmdlet。Invoke-Command 以及 -ComputerName 和 -ScriptBlock 参数允许您定义要管理的远程服务器和要远程运行的管理命令。

对于更全面的 PowerShell 远程处理方案,您可以先使用New-PSSession cmdlet创建会话,将会话作为自己的实体进行管理  。使用 New-PSSession 的好处是会话在多个 Invoke-Command 实例中持续存在,允许您将变量和对象传递给脚本中的其他 cmdlet。可以使用 New-PSSession cmdlet 创建持久会话并将其分配给变量,稍后可以使用 Invoke-Command 引用该变量,并最终使用 Remove-PSSession关闭该变量。此示例说明了持久会话的使用,如果没有它,Invoke-Command 的第二个实例将失败:

$s = New-PSSession -ComputerName “SRV1” Invoke-Command -Session $s -ScriptBlock {$services = Get-Service} Invoke-Command -Session $s -ScriptBlock {$services | Where-Object {$_.Status -eq “Stopped”}} Remove-PSSession $s

会话和凭证
在上面给出的示例中,当前用户的凭据用于创建远程会话并针对远程服务器执行命令。Invoke-Command 和 New-PSSession cmdlet 都接受使用 New-PSCredential cmdlet 创建的 PowerShell 凭据对象。使用此方法的好处是,管理员可以要求提供凭据以支持针对远程服务器的特定操作。

PowerShell 提供了多种方法来高效管理单个本地服务器或全球数千台服务器。熟悉 PowerShell 工具集对于在工作场所保持宝贵资源至关重要。
 
Post Reply