Windows PowerShell远程处理
  
  使用WS-Management协议的Windows PowerShell远程处理使您可以在一台或多台远程计算机上运行任何Windows PowerShell命令。它使您可以建立持久连接,启动1:1交互式会话并在多台计算机上运行脚本。若要使用Windows PowerShell远程处理,必须为远程管理配置远程计算机。配置Windows PowerShell远程处理后,可以使用许多远程处理策略。本文档的其余部分仅列出其中一些。
  
  开始互动环节
  
  若要与一台远程计算机启动交互式会话,请使用Enter-PSSession cmdlet。例如,要启动与Server01远程计算机的交互式会话,请键入:
Enter-PSSession Server01
  
  命令提示符将更改为显示您所连接的计算机的名称。从此以后,您在提示符下键入的任何命令都会在远程计算机上运行,并且结果将显示在本地计算机上。
  
  要结束交互式会话,请输入:
Exit-PSSession
  
  运行远程命令
  
  若要在一台或多台远程计算机上运行任何命令,请使用Invoke-Command cmdlet。例如,要在Server01和Server02远程计算机上运行Get-UICulture命令,请键入:
invoke-command -computername Server01, Server02 {get-UICulture}
  
  输出返回到您的计算机。
LCID    Name     DisplayName               PSComputerName
----    ----     -----------               --------------
1033    en-US    English (United States)   server01.corp.fabrikam.com
1033    en-US    English (United States)   server02.corp.fabrikam.com
  
  运行脚本
  
  若要在一台或多台远程计算机上运行脚本,请使用Invoke-Command cmdlet的FilePath参数。该脚本必须在本地计算机上或可以在本地计算机上访问。结果将返回到本地计算机。
  
  例如,以下命令在Server01和Server02远程计算机上运行DiskCollect.ps1脚本。
invoke-command -computername Server01, Server02 -filepath c:\Scripts\DiskCollect.ps1
  
  建立持久连接
  
  若要运行一系列共享数据的相关命令,请在远程计算机上创建一个会话,然后使用Invoke-Command cmdlet在您创建的会话中运行命令。若要创建远程会话,请使用New-PSSession cmdlet。
  
  例如,以下命令在Server01计算机上创建一个远程会话,在Server02计算机上创建另一个远程会话。它将会话对象保存在$ s变量中。
$s = new-pssession -computername Server01, Server02
  
  现在已经建立了会话,您可以在其中运行任何命令。并且由于会话是持久性的,因此您可以在一个命令中收集数据并在后续命令中使用它。
  
  例如,以下命令在$ s变量的会话中运行Get-Hotfix命令,并将结果保存在$ h变量中。$ h变量在$ s中的每个会话中创建,但在本地会话中不存在。
invoke-command -session $s {$h = get-hotfix}
  
  现在,您可以在后续命令中使用$ h变量中的数据,例如以下命令。结果显示在本地计算机上。
invoke-command -session $s {$h | where {$_.installedby -ne "NTAUTHORITY\SYSTEM"} }