我在几个不同的系统上运行 PowerShell v3 已经有一段时间了。有时我希望检查与 v2 的兼容性或其他问题,因此我在现有 PowerShell 中切换到 v2:
PS> powershell -version 2
当然,我随后会使用其中一个$hosts.Version
或$PSVersionTable
进行健全性检查。但是当我在一台机器上执行此操作时,他们都报告说我仍在 V3 shell 中。我从头开始再试一次;同样的结果。我还尝试从 DOS shell 而不是 PowerShell 调用它;再次,同样的结果。然后检查我自己的理智(!)我去了另一个系统,做了同样的序列,它按预期工作——我确实从 V3 切换到了 V2 环境。
我唯一的其他观察结果是,在运行的系统上,当它启动内壳时,我收到了 2009 年的版权通知;在没有显示 2012 的系统上。
最后的细节:在提到的两台机器中,它在 Win8 上工作,在 Win7 企业版上失败,但我真的怀疑这是一个相关因素。
如果(a)这是一个 PS 错误,或者(b)我是唯一一个看到这个问题的人,我会感到非常惊讶,但到目前为止,网络搜索对我来说毫无结果。关于为什么会发生这种情况的任何想法?