- Powershell как посмотреть версию windows
- История версий PowerShell
- Как проверить версию PowerShell из оболочки
- Как проверить версию PowerShell через реестр Windows
- Как получить версию PowerShell на удаленных хостах в домене
- Как узнать версию Powershell и Windows в командной строке?
- Запуск программы
- Как узнать версию Powershell?
- Узнаем версию Windows
- Как узнать версию Powershell
- Как узнать какая версия PowerShell установлена?
- История версии PowerShell, PowerShell Core
- Как узнать версию PowerShell из консоли?
- Получаем версию PowerShell на удаленных компьютерах
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.
Версия 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, как работать с версией ниже и как узнать версию команд.
В зависимости от версии у вас сработает одна из команд:
Ниже можно посмотреть версии 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.
Как узнать версию 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.