当安装了PowerShell 5,我是否可以以版本3或4的模式运行PowerShell?

11

我目前安装了Windows Management Framework 5.1。我想测试我的脚本是否与PowerShell 3和4正常工作。我知道有PowerShell.exe -Version开关,但是当我尝试使用它时:

PowerShell.exe -Version 3
或者:
PowerShell.exe -Version 4

然后运行$PSVersionTable,它仍显示PowerShell版本5.1作为运行版本。

如果我运行:

PowerShell.exe -Version 2

然后,$PSVersionTable 显示控制台现在是版本2。这是为什么呢?

1个回答

17

Windows PowerShell提供了一个特殊的-Version 2.0后向兼容模式,使您可以运行PowerShell版本2,即使您已安装了更高版本:

但对于其他所有版本的PowerShell来说,情况并非如此。很遗憾,如果安装了PowerShell 5,就不可能强制其以版本3或4运行(即使运行PowerShell.exe -version 3也不会引发任何错误/警告消息)。同时,不可能同时安装多个PowerShell版本(唯一的例外是PowerShell Core,它可以与Windows PowerShell同时安装)。

测试PowerShell脚本使用其他版本的PowerShell(除了版本2)的唯一方法是在单独的计算机或虚拟机上进行备用安装。

Windows PowerShell 4.0和Windows PowerShell 3.0旨在与Windows PowerShell 2.0向后兼容。针对Windows PowerShell 2.0编写的Cmdlets、providers、snap-ins、modules和scripts在Windows PowerShell 4.0和Windows PowerShell 3.0中运行时不会发生变化。然而,由于Microsoft .NET Framework 4中运行时激活策略的更改,针对Windows PowerShell 2.0编写且使用通用语言运行时(CLR)2.0编译的Windows PowerShell主机程序在没有修改的情况下无法在Windows PowerShell 3.0或Windows PowerShell 4.0中运行,因为这些版本使用的是CLR 4.0。Windows PowerShell 2.0引擎仅用于当现有脚本或主机程序无法运行时,因为它与Windows PowerShell 4.0、Windows PowerShell 3.0或Microsoft .NET Framework 4不兼容。这些情况预计很少出现。


所以我想v2中的“mode”与v2版本是相同的,对吗? - Jaqueline Vanek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接