使用PowerShell-Core版本远程执行Powershell命令

Remote Execution of Powershell Command with PowerShell-Core Version

我正在尝试远程执行 Powershell 命令,我的问题是使用的 Powershell 是 4.0 版,我想使用 Powershell Core 6.0.4 远程执行我的命令。

我尝试在远程主机上使用这个命令

Set-PSSessionConfiguration -name microsoft.powershell -psversion 6.0 -FORCE

出现此错误:

Set-PSSessionConfiguration : Cannot bind parameter 'PSVersion' to the target. Exception setting "PSVersion": "The
value 6.0 is not valid for the PSVersion parameter. The available values are 2.0,3.0 and 4.0."

我在我的远程机器上安装了 6.0.4 版。

我知道它使用版本 4 来执行我的远程命令,因为

 Invoke-Command -Session $session -ScriptBlock {$PSVersionTable.PSVersion};

returns:

Major  Minor  Build  Revision PSComputerName
-----  -----  -----  -------- --------------
4      0      -1     -1       IIS-DEV2

关于如何强制它使用版本 6 的任何想法?

在powershell core的安装文件夹中,有一个脚本文件Install-PowerShellRemoting

运行 您希望会话访问的远程服务器中的脚本, 并且在远程处理时使用以下内容:

$session = New-PSSession -ComputerName IIS-DEV2 -port 5985 -Credential $mycreds -ConfigurationName "powershell.6.0.4"

它成功了,让我与 Powershell 核心进行了会话。

  • 所示,已过时 PowerShell Core 版本确实需要 运行ning Install-PowerShellRemoting.ps1 为了使给定的计算机能够充当远程端点(即允许其他计算机使用 New-PSSessionInvoke-Command 等远程 cmdlet 来定位它),所述脚本是一个权宜之计 在当前的 PowerShell Core 版本中不再需要

The installation script is a short-term solution until we add additional functionality to Enable-PSRemoting to perform the same action.

注意:在撰写本文时,WS-Management (WSMan) Remoting in PowerShell Core 尚未提及当前的 6.x 版本不再需要权宜之计脚本 - 查看此 GitHub 问题 。另请注意,自 v7.0 起,Enable-PSRemoting 类 Unix 平台上 不可用(并且过时的 Install-PowerShellRemoting.ps1 脚本).


另外 针对 特定的 PowerShell Core 版本:

虽然 -ConfigurationName Powershell.6.0.4 如果您想针对非常 特定版本 确实有效,但 Enable-PSRemoting 也会创建 PowerShell.<OwnMajorVersionOnly> 不需要您指定完整版本号的配置(当您在端点计算机上更新 PowerShell Core 时,它​​可能会发生变化)。

因此,请考虑改用以下内容,使用远程端点上的 PowerShell 7.x 版本的 运行 Enable-PSRemoting 示例:

-ConfigurationName PowerShell.7

有关详细信息,请参阅