Powershell check windows version

Powershell check windows version

Добрый день! Уважаемые читатели и гости 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 в вашей системе, в красивом отдельном окне.

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

Читайте также:  Lvs linux что это

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

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

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

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

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

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

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

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

Как узнать версию PowerShell в Windows 10, 8.1, 8, 7

В данной статье показаны действия, с помощью которых можно узнать установленную версию Windows PowerShell в операционных системах Windows 10, 8.1, 8, 7.

PowerShell — это оболочка командной строки с поддержкой задач и язык скриптов на основе платформы .NET.

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

Чтобы узнать установленную версию PowerShell, запустите консоль Windows PowerShell любым из способов и выполните следующую команду:

В строке PSVersion вы увидите версию PowerShell.

Также, чтобы узнать версию PowerShell, можно использовать дополнительные команды:

Результат выполнения команд показан на скриншоте ниже.

Ниже приведены версии, которые устанавливаются по умолчанию в соответствии с версией Windows:

  • Windows 10 (см. примечание) PS 5.1
    Windows Server 2016
  • Windows 8.1PS 4.0
    Windows Server 2012 R2
  • Windows 8PS 3.0
    Windows Server 2012
  • Windows7 с пакетом обновления 1 (SP1)PS 2.0
    Windows Server 2008 R2 с пакетом обновления 1 (SP1)
  • Если в начальном выпуске Windows 10 включены автоматические обновления, PowerShell обновляется с версии 5.0 до 5.1
  • Если оригинальная версия Windows 10 не обновлена в Центре обновления Windows, версия PowerShell будет 5.0

How to Check Powershell version on Windows 10, 8 and 7

Since Windows 10 comes with Windows PowerShell 5.0 installed by default but the WU (Windows Update) component is supposed to install a superior version automatically (Powershell 5.1), some users have been looking for ways to determine which Powershell versions they are currently using.

If you’re a fan of doing tasks through a terminal with Powershell, it’s always a good idea to make sure that your system uses the latest release. This is especially true if you’re using an OS version older than Windows 10. Keep in mind that PowerShell got a lot more powerful starting with version 5.0 – you have a lot more control over Windows Server and it also gives you more control of Exchange, Lync, and SQL-based servers.

Читайте также:  Toshiba satellite c850 установка windows

Before we show you how to check the version of your PowerShell, here are the versions that come preinstalled by default according to your Windows version:

How to check your PowerShell version

Now that you know what the default versions should look like, follow the steps down below for a quick guide on checking your current PowerShell version. Keep in mind that the following steps can be replicated regardless of your Windows version.

  1. Press Windows key + R to open up a Run command. Then, type “powershell” and press Enter to open a new PowerShell prompt. Run dialog: powershell
  2. In the newly opened Powershell window, type the command below and hit Enter:
  3. You will see a list of details related to your PowerShell utility. However, the one that interests us is PSVersion. In this case, we already have the latest version because we already installed all the pending updates through WU.
    Note: Keep in mind that you can also use get-host|Select-Object version or $host.version as additional commands that will retrieve your PowerShell version.

If you have Windows 10 and your PSVersion is still 5.0.10586.63, you can update it to the latest version by installing every pending update in Windows Update.

Как узнать какая версия 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.
Читайте также:  Все ошибки синего экрана смерти windows 10

Как узнать версию 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.

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