【发布时间】:2020-03-06 10:10:46
【问题描述】:
随着 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 issue:
将默认的 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 设为默认值... :(
【问题讨论】:
-
谢谢,mklement,似乎很奇怪,没有办法将默认值设置为比会话更高的级别。但至少会话级别比命令级别要好一步:D
-
同意,亚历克西斯。正在考虑更改 默认情况下 的端点 PowerShell [Core] 目标,以及实施更多“粘性”配置(策略):请参阅 this GitHub issue。
标签: powershell powershell-remoting powershell-6.0