我在 Windows 10 系统中默认使用 powershell 5.1,它也支持 2.0。通过传递“-version 2”,我可以使用 2.0 powershell,但我的要求是每当我调用 ps1 脚本时,将 2.0 设为默认 powershell 版本。如何更改默认 powershell 版本?
答案1
PSv5 是操作系统的一部分。所以,你不能不这样做。Win10 上的许多 cmdlet 都是 Win10 PSv5 所特有的。因此,即使您可以这样做,机器上的大多数 cmdlet 也根本无法工作。
PSv2 不再受支持、已被贬值并且不再被修补。
微软将在 Windows 10 Fall Creators Update 中终止对 Windows PowerShell 2.0 的支持
在未来的操作系统发布中,它将被彻底删除。
你为什么要冒这个险。微软明确表示,用户应该禁用它,不要使用它。所有关注风险的行业都这么说。PSv2 提供的功能没有新版本不能提供的,而且新版本提供的许多功能 PSv2 不能提供,也不能移植回去。
您始终可以编写代码来检查已安装的 PS 版本,并针对目标版本分支代码以及该版本的 cmdlet,但这也要求您拥有所有这些旧版本的 cmdlet 列表。
利用 PSScriptAnalyzer 来提供帮助。请注意,PScriptAnalyzer 不适用于 v2,因为它从未发布过。
旧版 PowerShell v2 代码在更高版本的 PS 上可以正常运行。许多新 cmdlet/模块/函数无法在 v2 上运行。
使用 PSScriptAnalyzer 检查 PowerShell 版本兼容性
PS2 仍然存在的唯一原因是向后兼容。
不使用 PSv2 的原因资源。
答案2
“你为什么要冒这个险。微软明确表示,用户应该禁用它,不要使用它。所有关注风险的行业都是这么做的。”
因为 MS 建议这样做:Import-Module:此计算机上的 Windows PowerShell 版本为“5.1.19041.610”。模块“C:\Program Files\WindowsPowerShell\Modules\WslInterop\0.2.4\WslInterop.psd1”要求最低 Windows PowerShell 版本为“6.0”才能运行。请验证您是否安装了所需的最低 Windows PowerShell 版本,然后重试。
已撤回:OneDrive 路径中隐藏了非法的 Import-Module 命令。