PowerShell Core 中的 WS-Management (WSMan) 远程处理WS-Management (WSMan) Remoting in PowerShell Core
本文内容
有关创建远程处理终结点的说明Instructions to Create a Remoting Endpoint
适用于 Windows 的 PowerShell Core 包包括 WinRM 插件 (pwrshplugin.dll
) 和 $PSHome
中的安装脚本 (Install-PowerShellRemoting.ps1
)。指定终结点时,这些文件可使 PowerShell 接受传入的 PowerShell 远程连接。
动机Motivation
安装 PowerShell 可使用 New-PSSession
和 Enter-PSSession
针对远程计算机创建 PowerShell 会话。若要使其接受传入的 PowerShell 远程连接,用户必须创建一个 WinRM 远程处理终结点。这是一个显式选择加入方案,其中用户运行 Install-PowerShellRemoting.ps1 创建 WinRM 终结点。将其他功能添加到 Enable-PSRemoting
以执行相同操作前,安装脚本是一个短期解决方案。有关详细信息,请参阅问题 #1193。
脚本操作Script Actions
脚本
- 在 %windir%\System32\PowerShell 中创建插件目录
- 将 pwrshplugin.dll 复制到该位置
- 生成配置文件
- 使用 WinRM 注册该插件
注册Registration
脚本必须在管理员级别的 PowerShell 会话中执行,并且以两种模式中运行。
由其将注册的 PowerShell 实例执行Executed by the instance of PowerShell that it will register
Install-PowerShellRemoting.ps1
由代表其注册实例的另一 PowerShell 实例执行Executed by another instance of PowerShell on behalf of the instance that it will register
<path to powershell>\Install-PowerShellRemoting.ps1 -PowerShellHome "<absolute path to the instance's $PSHOME>"
例如:
Set-Location -Path 'C:\Program Files\PowerShell\6.0.0\'
.\Install-PowerShellRemoting.ps1 -PowerShellHome "C:\Program Files\PowerShell\6.0.0\"
注意: 该远程处理注册脚本将重新启动 WinRM,因此该脚本运行后所有现有 PSRP 会话会立即终止。如果在远程会话期间运行,则会终止连接。
如何连接到新的终结点How to Connect to the New Endpoint
指定 -ConfigurationName "some endpoint name"
,从而针对新 PowerShell 终结点创建一个 PowerShell 会话。若要连接到上述示例中的 PowerShell 实例,请使用以下任意一种方式:
New-PSSession ... -ConfigurationName "powershell.6.0.0"
Enter-PSSession ... -ConfigurationName "powershell.6.0.0"
请注意,未指定 -ConfigurationName
的 New-PSSession
和 Enter-PSSession
调用将以默认 PowerShell 终结点 microsoft.powershell
为目标。