Powershell как посмотреть версию windows

Powershell как посмотреть версию windows

Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами рассмотрели методы открытия PowerShell в операционных системах Windows. Представим себе ситуацию, что вы прочитали статью, в которой рассказывалось решение какой-то проблемы с помощью скрипта PowerShell и новых командлетов. Вы пытаетесь все это дело повторить. но у вас выскакивает ошибка, что командлетов не обнаружено. Такая ситуация получается по ряду причин и самая распространенная, это старый выпуск оболочки. В данной статье мы рассмотрим, как посмотреть версию PowerShell и при необходимости обновить ее до последней версии.

История версий PowerShell

Перед тем, как вы научитесь проверять версию вашего мощного языка, я бы хотел вас познакомить с историей его релиза, так как это позволит уже приблизительно понять, что у вас за релиз.

  • PowerShell версии 1 — вышел в 2006 году, и был включен в состав Windows Server 2003 SP1 и как для меня стало удивительным в будущем аж в сам XP.
  • PowerShell версии 2.0 — появился в легендарной операционной системе Windows 7 и Windows Server 2008 R2. Большая часть людей стала с ним знакомится именно с данных времен.
  • PowerShell версии 3.0 — Стал доступен с выходом Windows 8 и Windows Server 2012.
  • PowerShell версии 4.0 — Вошел в состав Windows 8.1 и Windows Server 2012 R2.
  • PowerShell версии 5.0 — Вышел в 2016 году. Данный релиз не привязывался к конкретной ОС.
  • PowerShell версии 5.1 — Стал частью Windows Server 2016 и Windows 10, в январе 2017 года.
  • PowerShell версии 6.0 — Идет в составе Windows 10 1703 и Windows Server 2019

Как проверить версию PowerShell из оболочки

Самый быстрый метод установить, с какой версий пошика вы работаете, это открыть саму оснастку и воспользоваться различными командлетами, которые в мгновение ока выведут вам подробнейшую информацию. Введите команду:

В итоге моя Windows 10 1803 вывела мне версию 5.1 билд 17134.

Та же команда, но уже в Windows 8.1.

Можно применить вот такой метод проверить версию PowerShell:

В результате я получил строку результата вот такого вида 5.1.17134.407.

Есть еще несколько команд:

Благодаря команде $host.version | Out-GridView вы выведете результат с версией установленной PowerShell в вашей системе, в красивом отдельном окне.

Еще чуть не забыл вот такой метод:

Посмотреть версию PowerShell можно и простенькой командой Get-Host.

Читайте также:  Viewing windows event log

Версия PowerShell прекрасно выводится и вот таким кодом:

Как проверить версию PowerShell через реестр Windows

Я вам не перестаю повторять, что любые команды из оболочки или cmd, всего лишь обращаются к разделам реестра Windows и берет от туда нужную информацию. В реестре есть ветка:

Тут будет ключ реестра PowerShellVersion.

Как получить версию PowerShell на удаленных хостах в домене

Если у вас установлена служба Active Directory и вы понимаете все плюсы домена, то вы можете удаленно посмотреть версию PowerShell. Выполните команду в оболочке пошика:

Можно для нескольких компьютеров в домене. Сначала получите список имен компьютеров, запустив Get-ADComputer. Затем используйте список, чтобы получить версию powershell для всех компьютеров.

Как узнать версию Powershell и Windows в командной строке?

Через командную строку в Windows можно выполнить множество действий, у которых есть аналог в виде интерфейса. В «десятке» разработчики добавили улучшенную версию программы. В приведенной ниже статье мы расскажем, как узнать версию Powershell.

Запуск программы

Для начала необходимо открыть приложение. Для этого можно воспользоваться поисковой строкой в меню «Пуск» — самый простой вариант. В поиске впишите название — Windows Powershell, и запустите программу привычным способом.

Перед вами появится практически стандартная командная строка. Внешние отличия приложения — в измененном цвете окна, а также в подсвечивании команд разных уровней.

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

Версию приложения можно определить при помощи него же. Для этого потребуется ввод специальной команды. Вам необходимо перейти в окно и ввести в строку $host.version, после чего нажать на клавишу Enter для применения. В результате на экране появится небольшая таблица, в которой нам нужны значения Build и Revision.

Однако чтобы узнать больше информации, лучше воспользоваться командой $PSVersionTable. После применения этой строки вы увидите большую таблицу с множеством значений. Второй сверху строкой является Version, напротив которой и указана нужная версия приложения.

Узнаем версию Windows

Можно узнать версию Windows в Powershell при помощи другой команды. Принцип действий тот же — вы вписываете строку на английском языке и жмете Enter. Для этого откройте окно командной строки и введите winver. После этого появится отдельное окно, в котором будет необходимая информация об операционной системе, включая версию и сборку.

Также есть еще одна команда — systeminfo. Она не открывает дополнительное окно, а показывает таблицу с информацией внутри самой Powershell. Здесь вы найдете данные об операционной системе, процессоре, BIOS, сетевых адаптерах и многом другом.

Последний вариант — команда WMIC. В ней также можно определить версию Windows, но в немного неудобном формате. Дело в том, что данные будут отображаться в беспорядочном расположении, поэтому найти нужные значения вам придется самостоятельно.

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

06 сентября 2019

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

Читайте также:  Ошибка 0x8004005 при установке windows 10

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

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

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

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

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

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

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

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

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

Как узнать какая версия PowerShell установлена?

В этой статье мы рассмотрим какие версии PowerShell существуют, в чем отличие Windows PowerShell от PowerShell Core и как узнать, какая версия PowerShell установлена на локальном или удаленных компьютерах.

История версии PowerShell, PowerShell Core

По умолчанию PowerShell устанвлен во всех версиях Windows, начиная с Windows 7 SP1 и Windows Server 2008 R2 SP1. В следующей таблице представлен список актуальных версий PowerShell:

Версия PS Примечание
PowerShell 1.0 Можно было установить вручную в Windows Server 2003 SP1 и Windows XP
PowerShell 2.0 Предустановлен в Windows Server 2008 R2 и Windows 7
PowerShell 3.0 Установлен в Windows 8 и Windows Server 2012
PowerShell 4.0 Предустановлен в Windows 8.1 и Windows Server 2012 R2
PowerShell 5.0 Предустановлен в Windows 10 RTM, и автоматически обновляется до 5.1 через Windows Update
PowerShell 5.1 Встроен в Windows 10 (начиная с билда 1709) и Windows Server 2016
PowerShell Core 6.0 и 6.1 Следующая кроссплатформенная версия PowerShell (основана на .NET Core), которую можно установить не только во всех поддерживаемых версиях Windows, но и в MacOS, CentOS, RHEL, Debian, Ubuntu, openSUSE
PowerShell Core 7.0 Самая последняя версия PowerShell, вышедшая в марте 2020 (в новом релизе выполнен переход с .NET Core 2.x на 3.1)

Стоит обратить внимание, что последние 2 года Microsoft приостановила развитие классического Windows PowerShell (выпускаются только исправления ошибок и безопасности) и сфокусировалась на открытом кроссплатформенном PowerShell Core. В чем отличия Windows PowerShell от PowerShell Core?

  • Windows PowerShell основан на NET Framework (например, для PowerShell 5 требуется .NET Framework v4.5, нужно убедиться что он установлен). PowerShell Core основан на .Net Core;
  • Windows PowerShell работает только на ОС семейства Windows, а PowerShell Core является кроссплатформенным и будет работать в Linux;
  • В PowerShell Core нет полной совместимости с Windows PowerShell, однако Microsoft работает на улучшением обратной совместимости со старыми командлетами и скриптами (перед переходом на PowerShell Core рекомендуется протестировать работу старых PS скриптов). В PowerShell 7 обеспечивается максимальная совместимсть с Windows PowerShell.
  • Редактор PowerShell ISE нельзя использовать для отладки скриптов PowerShell Core (но можно использовать Visual Studio Code)
  • Т.к. Windows PowerShell более не развивается, рекомендуется постепенно мигрировать на PowerShell Core.
Читайте также:  Лучшие драйвера для linux

Как узнать версию PowerShell из консоли?

Самый простой способ определить какая версия PowerShell у вас установлена с помощью команды:

Можно получить только значении версии:

(в этом примере мы получили версию PSVersion 2.0 с чистого Windows Server 2008 R2)

Команда $PSVersionTable корректно работает в PowerShell Core на различных операционных системах.

Также можно узнать установленную версию PowerShell через реестр. Для этого нужно получить значение параметра PowerShellVersion из ветки реестра HKLM\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine с помощью Get-ItemProperty

(Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name ‘PowerShellVersion’).PowerShellVersion

(Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine -Name ‘PowerShellVersion’).PowerShellVersion

Для определения установленной версии PowerShell Core нужно использовать команду:

(Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShellCore\InstalledVersions* -Name ‘SemanticVersion’).SemanticVersion

Получаем версию PowerShell на удаленных компьютерах

Для получения версии PowerShell на удаленных компьютерах нужно использовать значение переменной окружения $PSVersionTable или получать данные непосредственно из реестра. Другие способы могут возвращать некорректные данные.

Вы можете получить версию PowerShell с удаленного компьютера с помощью команды Invoke-Command:

Invoke-Command -ComputerName dc01 -ScriptBlock <$PSVersionTable.PSVersion>-Credential $cred

Можно получить установленные версии PowerShell с нескольких компьютеров таким скриптом (их список сохранен в текстовом файле):

Invoke-Command -ComputerName (Get-Content C:\PS\servers.txt) —
ScriptBlock <$PSVersionTable.PSVersion>| Select PSComputerName, @>

Либо можно получить список компьютеров домена через Get-ADComputer и получить версию PowerShell на них:

$adcomputer=(Get-ADComputer -Filter ‘operatingsystem -like «*Windows server*» -and enabled -eq «true»‘ -SearchBase ‘OU=servers,dc=winitpro,dc=ru’ ).Name
Invoke-Command-ComputerName $adcomputer -Scriptblock <$PSVersionTable.psversion>-ErrorAction SilentlyContinue

Если ваш скрипт PoweShell использует специальный функционал определенной версии PS, вы можно принудительно переключиться в режим другой версии PowerShell. Например, для запуска консоли в режиме PowerShell v3, выполните (должен быть установлен .Net Framework 3.5):

PowerShell.exe -version 3

Определение версии PowerShell может быть важно при выполнении скриптов и запуске команд, которые используют командлеты или специальные возможности определенной версии PS. Если вы хотите в скрипте PS определить какая версия PowerShell установлена, и в зависимости от этого использовать разные командлеты, вы можете использовать такой скрипт:

$ps_version = $PSVersionTable.PSVersion.major
if ( $ps_version -eq «2” )
<
write «Вы используете Powershell 2.0»
>
elseif ( $ps_version -eq «5» )
<
write » Вы используете Powershell 5″
>

В следующей статье мы рассмотрим, как обновить версию PowerShell в Windows.

Оцените статью