Как узнать версию Powershell


06 сентября 2019


Как узнать версию Powershell

Для определения версии Powershell есть с десяток вариантов. Обычно это нужно для проверки работы скриптов и команд. На примерах мы рассмотрим: как проверять версию PS, как работать с версией ниже и как узнать версию команд.

В зависимости от версии у вас сработает одна из команд:

host
# или
$PSVersionTable

версия powershell

Ниже можно посмотреть версии Powershell, с которыми уже идет операционная система и до какой версии мы можем обновить Powershell. В случае с Windows 7 версия Powershell 3.0:

Версии Powershell

Если вы хотите обновить оболочку PS, то вбейте в поиске, например, "windows management framework 5.1" и установите файл скаченный с сайта Microsoft.

Другая ситуация, когда мы не можем обновить Powershell. В таком случае у нас есть вариант запустить версию Powershell 2. Дело в том, что версии PS 3 и 4 обратно совместимы со скриптами версии 2. Для изменения версии вбейте в консоли:

powershell.exe -Version 2

Указанная версия будет работать до тех пор, пока сеанс открыт.

powershell какая версия

С версии PS 5.0 появилась возможность получения информации по версии командлета:

Get-Command Get-ChildItem

Версия команды Powershell

Не могу с уверенностью сказать, что эта цифра хоть как-то указывает на редакцию Powershell в которой этот командлет впервые появился. Возможно говориться о количестве выпусков с момента первого релиза, но например командлет Test-NetConnection появился в Powershell 4, но в PS 5.1 его версия 1.0:

Версия командлета Powershell

Противоположная ситуация со сторонними модулям, для примера модуль SQLServer имеет версию 21.

Если вы пишете исполняемый скрипт, то можете использовать следующий функционал, который определит какая версия Powershell установлена и в зависимости от этого выполнит разную работу с объектами:

$ps_version = (get-host).Version.Major
if ( $ps_version -eq "2" )
{
  # проверка на PowerShell v2
  write "Вы используете версию Powershell $ps_version... Скрипт сработает через ping!"
  write ""
  # Или какой-то командлет
  ping ya.ru
}
elseif ( $ps_version -eq "5" )
{
  # проверка на PowerShell v5
  write "Версия $ps_version подходит. Начало работы"
  write ""
  # команда для примера
  Test-NetConnection localhost
}
else
{ 
  write-host "Неизвестная ошибка"
  exit
}

 

...

Теги: #powershell


Популярные тэги
О блоге
Этот блог представляет собой конспекты выученного материала, преобретенного опыта и лучшие практики в системном администрировании и программировании.