【问题标题】:Can I run PowerShell in version 3 or 4 mode when PowerShell 5 is installed?安装 PowerShell 5 后,是否可以在版本 3 或 4 模式下运行 PowerShell?
【发布时间】:2018-02-28 06:25:49
【问题描述】:

我目前安装了 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。这是为什么?

【问题讨论】:

    标签: powershell


    【解决方案1】:

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

    对于所有其他版本的 PowerShell,情况并非如此,遗憾的是,在安装 PowerShell 版本 5 时无法强制 PowerShell 作为版本 3 或 4 运行(即使运行 PowerShell.exe -version 3 不会抛出任何问题)类型的错误/警告消息)。也不能同时安装多个 PowerShell 版本(PowerShell Core 除外,它可以与 Windows PowerShell 同时安装)。

    使用 PowerShell 版本(不是 2)测试 PowerShell 脚本的唯一方法是在不同的计算机或虚拟机上安装 PowerShell。

    Windows PowerShell 4.0 和 Windows PowerShell 3.0 旨在 向后兼容 Windows PowerShell 2.0。 Cmdlet、提供程序、 为 Windows PowerShell 2.0 编写的管理单元、模块和脚本运行 在 Windows PowerShell 4.0 和 Windows PowerShell 3.0 中保持不变。 但是,由于 Microsoft 中运行时激活策略的更改 .NET Framework 4,编写的 Windows PowerShell 宿主程序 适用于 Windows PowerShell 2.0 并使用公共语言运行时编译 (CLR) 2.0 在 Windows PowerShell 3.0 中未经修改就无法运行,或者 使用 CLR 4.0 编译的 Windows PowerShell 4.0。窗户 PowerShell 2.0 引擎仅适用于现有的 脚本或宿主程序无法运行,因为它与 Windows PowerShell 4.0、Windows PowerShell 3.0 或 Microsoft .NET 框架 4。预计此类情况很少见。

    【讨论】:

    • 所以 v2“模式”与我收集的 v2 相同?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    相关资源
    最近更新 更多