Windows Server 2012 и Windows 8 поставляются с установленным версией PowerShell 3.0 (входит в состав пакета Windows Management Framework 3.0, включающего в том числе WinRM и WMI). Для работы PowerShell 3 в более ранних версиях ОС Windows (Windows 2008 R2 SP1/ 2008 SP1 и Windows 7 SP1) на них необходимо установить .NET Framework 4, .NET 4.5 и собственно пакет WMF 3.0.
С помощью PowerShell 3, включающего более 2000 различных командлетов, возможно управлять и автоматизировать практически все аспекты работы операционной системы.
Разработчики Microsoft заявляют об обратной совместимости PowerShell 3.0 со сценариями написанными под PowerShell 2.0. Однако на практике получается так, что не все скрипты PowerShell 2 работают под PoSh v3 как ожидается. Именно для таких случаяев в Windows существует возможность переключения между версиями PowerShell. Естественно, в системе должны быть установлены одновременно и PowerShell v2 и PowerShell v3. В Windows 7/ 2008, которые были обновлены до PoSh 3, версия PowerShell 2 уже установлена. В Windows 2012 / Windows 8 PowerShell 2.0 его нужно устанавливать отдельно.
Установка Powershell 2.0 в Windows Server 2012
Откройте консоль управления сервером и выберите установку ролей и функций (Add roles and features). В разделе функций найдите и разверните ветку Windows PowerShell, и отметьте опцию Windows PowerShell 2.0 Engine.
Нажмите Далее, после чего запустится установка, по окончании которой запустите консоль PowerShell.
Как переключить между версиями PowerShell в Windows
Чтобы узнать текущую версию PoSH, выполните команду:
$PSVersionTable
Как вы видите значение переменной PSVersion — 3.0.
В этой же строке выполните команду:
PowerShell.exe –version 2.0
И проверьте версию Powershell:
$PSVersionTable
PSVersion равна2.0. Чтобы выйти из v2 режима наберите команду:
Exit
Версию Powershell можно также узнать с помощью командлета
Get-host
С помощью следующей команды можно принудительно переключиться в PowerShell v3.
PowerShell.exe -version 3