Можно ли запустить PowerShell в режиме версии 3 или 4 при установке PowerShell 5?

в настоящее время у меня установлена 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 ответов


Windows PowerShell предоставляет специальный -Version 2.0 режим обратной совместимости, который позволяет запускать PowerShell версии 2, даже если установлены более поздние версии:

то же самое не верно для всех других версий PowerShell, к сожалению, невозможно заставить PowerShell работать как версия 3 или 4 при установке PowerShell версии 5 (даже при запуске PowerShell.exe-версия 3 не будет выдавать никаких сообщений об ошибках / предупреждениях). Также невозможно иметь несколько версий PowerShell, установленных одновременно (за исключением ядра PowerShell, которое может быть установлено одновременно с Windows PowerShell).

единственный способ проверить сценарии PowerShell с версией PowerShell (кроме 2) - это иметь альтернативные установки PowerShell на отдельных компьютерах или виртуальных машинах.

Windows PowerShell 4.0 и Windows PowerShell 3.0 предназначены для обратная совместимость с Windows PowerShell версии 2.0. Командлеты, поставщики, оснастки, модули и сценарии, написанные для 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 или Windows PowerShell 4.0, которые компилируются с Среда CLR 4.0. окно PowerShell 2.0 Engine предназначен для использования только при наличии не удается запустить сценарий или хост-программу, так как она несовместима с Windows PowerShell 4.0, Windows PowerShell 3.0 или Microsoft .NET Рамки 4. Такие случаи должны быть редкими.