随着 powershell 7 的发布,似乎是时候超越 ps 5.1 了,所以我已经安装了几台服务器来试一试。
但是,当我使用 ps7 从我的电脑创建到这些服务器的会话时,我总是在远程机器上运行 ps5.1。
Invoke-Command -ComputerName name -ScriptBlock {
Write-Host $env:COMPUTERNAME
$PSVersionTable.PsVersion
}
输出 5.1.17763.316。有什么想法可以让远程会话默认使用 7.0.0 版本吗?
更新 在这方面取得了一些进展,所以尽管我会分享。
在 powershell 7 中的远程计算机上运行以下命令
Enable-PSRemoting
这将创建一些 PsSessionConfigurations,您可以使用以下命令查看它们。
Get-PSSessionConfiguration
现在您可以执行以下操作从 powershell 7 创建会话
Invoke-Command -ComputerName ServerName -ScriptBlock { $PsVersionTable.PSVersion } -ConfigurationName Powershell.7
$session = New-PSSession ServerName -ConfigurationName Powershell.7
Invoke-Command -Session $session -ScriptBlock { $PsVersionTable.PSVersion }
这现在在远程会话上使用 ps 7,快乐的日子。现在如何默认发生这种情况......?从这个github问题:
将默认的 microsoft.powershell 端点设置为他们选择的任何 PowerShell
我认为这是我想要做的,所以切换回 ps 5.1 并尝试了这个命令:
Get-PSSessionConfiguration -Name microsoft.powershell | Set-PSSessionConfiguration -PSVersion 7.0
只得到以下输出:
Set-PSSessionConfiguration:无法将参数“PSVersion”绑定到目标。异常设置“PSVersion”:“值 7.0 对 PSVersion 参数无效。可用值为 2.0、3.0、4.0、5.0、5.1。”
虽然我会在 ps7 中尝试这个,所以通过运行pwsh切换回来并再次运行相同的命令以让他跟随......
写入错误:没有会话配置符合条件“microsoft.powershell”。
所以仍然不太确定如何将 ps7 设为默认值... :(