26.10.2020
itpro
PowerShell, Windows 10, Windows Server 2016
комментариев 7
Java Runtime Environmen (JRE) достаточно широко используется для запуска различных корпоративных приложений, написанных на java. Однако некоторые программы требуют для запуска определенную версию Java и могут некорректно работать в других версиях. В этой статье мы рассмотрим, как разобраться, какие версии Java установлены на компьютерах пользователей в вашей сети, а также как удалить или обновить версию среды JRE с помощь PowerShell.
Как узнать установленную версию Java в Windows?
Вы можете получить номер версии Java, установленной на вашем компьютере, если наберете ‘ java ’ в окне поиска Windows 10 и запустите апплет Java.
How to Check Powershell Version on Windows 10/8/7 [Tutorial]
В открывшемся окне «About Java» указана текущая версия JRE. В моем случае это Java Version 8 Update 231 (build 1.8.0_231-b11). Обратите внимание на значение билда JRE. Во всех версиях Java в начале указана 1, затем номер мажорной версии JRE (у меня это 8), потом номер обновления.
Также вы можете узнать текущую версию Java в панели ‘Программы и компонентах Windows’ (Win+R -> appwiz.cpl ).
Можно вывести текущую версию Java из командной строки. Запустите cmd.exe и выполните команду:
java version «1.8.0_231» Java(TM) SE Runtime Environment (build 1.8.0_231-b11) Java HotSpot(TM) Client VM (build 25.231-b11, mixed mode)
Как узнать версию Java из PowerShell?
Вы можете узнать версию Java на вашем компьютере с помощью PowerShell. Можно просто проверить версию исполняемого файла java.exe (путь к ней прописывается в переменные окружения при установке JRE SE на вашем компьютере). Выведем версию java файла:
Get-Command Java | Select-Object Version
Можно вывести подробную информацию о версии, обновлении и релизе Java:
Get-Command java | Select-Object -ExpandProperty Version
Major Minor Build Revision —— —— —— ——— 8 0 2310 11
Если вам нужно получить строковое значение версии Java для использования в скриптах, используйте:
Как узнать версию Windows PowerShell на компьютере
(Get-Command java | Select-Object -ExpandProperty Version).tostring()
Также вы можете узнать версию Java через WMI класс, который содержит список установленных программ в Windows:
Get-WmiObject -Class Win32_Product -Filter «Name like ‘%Java%'»
IdentifyingNumber : Name : Java 8 Update 231 Vendor : Oracle Corporation Version : 8.0.2310.11 Caption : Java 8 Update 231 IdentifyingNumber : Name : Java Auto Updater Vendor : Oracle Corporation Version : 2.8.231.11 Caption : Java Auto Updater
Полученные ID можно использовать в дальнейшем для корректного удаления JRE.
Если нужно вывести только версии Java, и нужно исключить Java Auto Updater, используйте команду:
Get-WmiObject -Class Win32_Product -Filter «Name like ‘%Java%’ and not Name like ‘%Java Auto Updater%'» | Select -Expand Version
PowerShell: получить версию Java на удаленных компьютерах
Если вы хотите выполнить инвентаризацию версий Java, используемых на компьютерах или серверах в вашем домене, вы можете использовать следующий PowerShell скрипт. Данный скрипт может удаленно опросить сервера по списку указанному вручную, загрузить список из текстового файла. Также вы можете получить список серверов или компьютеров из AD с помощью командлета Get-ADComputer из модуля RSAT-AD-PowerShell.
# PowerShell скрипт для проверки верси Java SE (JRE) на удаленных компьютерах/серверах
# Проверить версию Java по списку компьютеров
# Проверить версию Java по списоку серверов в текстовом файле
# Получить версию Java на всех серверах домена
Get-WmiObject -Class Win32_Product -ComputerName $computers -Filter «Name like ‘%Java%’ and not Name like ‘%Java Auto Updater%’» | Select __Server, Version
В результате у вас появится табличка со списком компьютеров/серверов и версией Java на них.
В моем случае при проверке версии Java на компьютерах я нашел 35 различных версий JRE!
Скрипт PowerShell для удаления всех версий Java
Почему вам может понадобится удалять предыдущие версии Java в Windows?
- Перед установкой новой версии Java желательно удалить все предыдущие версии. Как и во всех других продуктах в Java постоянно обновляется функционал, и исправляются критические уязвимости. Если у вас установлена старая версий Java, вы подвергаете компьютер риску заражения и эксплуатации известных и 0-day уязвимостей. В Java встроен механизм автоматического обновления, но по разным причинам администраторы могут отключать его на компьютерах домена.
- У вас нет коммерческой подписки на использование Java JRE. С 2019 года Oracle изменил лицензионную политику Java. Теперь, если вы хотите использовать старые версии Oracle JDK (Java SE), вам нужно приобретать платную подписку. Это касается всех выпусков Java JRE после 16 апреля 2019 года (начиная с Java 8 SE Update 211).
Для коммерческих версий Java SE предусматривается длительная поддержка (обновление выпускаются 5 лет после выпуска). Бесплатная версия Java — Open JDK (распространяется по GPL), однако вам придётся обновлять ее раз в полгода. Еще один недостаток Open JDK – пока отсутствуют нормальные средства установки для Windows. Приходится качать и устанавливать Open JDK вручную. Есть один приемлемые вариант с установкой Open JDK с помощью менеджера пакетов Chocolatey: choco install openjdk
Следующий PowerShell скрипт можно использовать для удаление всех установленных версий Java на компьютере
$jre_installed = Get-WmiObject -Class Win32_Product -Filter «Name like ‘%Java%'»
$jre_installed.Uninstall()
Однако рассмотренная выше команда удаления основана на WMI и не смотря на свою простоту, работает довольно медленно.
Вместо этого можно получить список установленных Java из реестра и удалить все найденные версии Java по GUID продукта, который генерируется при установке ПО через MSI.
#PowerShell скрипт для удаления всех версий Java SE (JRE) на компьютере
$uninstall32 = gci «HKLM:SOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionUninstall» | foreach < gp $_.PSPath >| ? < $_ -like «*Java*» >| select UninstallString
$uninstall64 = gci «HKLM:SOFTWAREMicrosoftWindowsCurrentVersionUninstall» | foreach < gp $_.PSPath >| ? < $_ -like «*Java*» >| select UninstallString
# Удаление 64 битных версий Java
if ($uninstall64) $uninstall64 = $uninstall64.UninstallString -Replace «msiexec.exe», «» -Replace «/I», «» -Replace «/X», «»
$uninstall64 = $uninstall64.Trim()
Write «Uninstalling. «
start-process «msiexec.exe» -arg «/X $uninstall64 /qb» -Wait
>
# Удаление 32 битных версий Java
if ($uninstall32) $uninstall32 = $uninstall32.UninstallString -Replace «msiexec.exe»,»» -Replace «/I»,»» -Replace «/X»,»»
$uninstall32 = $uninstall32.Trim()
Write «Uninstalling all Java SE versions. «
start-process «msiexec.exe» -arg «/X $uninstall32 /qb» -Wait
>
PowerShell cкрипты из этой статьи доступны в моем репозитории на GitHub https://github.com/winadm/posh/tree/master/Java.
Как скачать установить Java JRE с помощью PowerShell?
Следующий PowerShell скрипт позволяет автоматически скачать последнюю версию дистрибутива Java (можно скачать офлайн или онлайн установщик) с официального сайта и установить его на компьютере пользователя. При этом мы подавляем требование перезагрузки и отключаем автоматическое обновлений Java.
Для скачивания файла установщика с сайта используется командлет Invoke-WebRequest.
#PowerShell скрипт для автоматической загрузки и установки последней версии Java SE (JRE) на компьютере
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# скачать онлайн установщик Java
$URL = (Invoke-WebRequest -UseBasicParsing https://www.java.com/en/download/manual.jsp).Content | % < [regex]::matches($_, ‘(?:)’).Groups[1].Value >
# скачать офлайн установщик Java
#$URL = (Invoke-WebRequest -UseBasicParsing https://www.java.com/en/download/manual.jsp).Content | % < [regex]::matches($_, ‘(?:)’).Groups[1].Value >
Invoke-WebRequest -UseBasicParsing -OutFile jre8.exe $URL
Start-Process .jre8.exe ‘/s REBOOT=0 SPONSORS=0 AUTO_UPDATE=0’ -wait
echo $?
Если компьютер, находится за прокси, нужно настроить PowerShell для доступа к интернету через прокси.
Первая строка в скрипте добавлена, чтобы переключиться на протокол TLS 1.2. Иначе при запуске у меня появлялась ошибка:
Invoke-WebRequest : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.
Скрипт автоматически загрузит установочный файл Java, сохранит его на диск в виде jre8.exe и установит среду JRE.
Предыдущая статья Следующая статья
Читайте далее в разделе PowerShell Windows 10 Windows Server 2016
Защита RDP от подбора паролей с блокировкой IP правилами Windows Firewall
Когда истекает пароль пользователя в AD, оповещаем пользователей о необходимости сменить пароль
Настраиваем резервное копирование контроллеров домена Active Directory
Установка и настройка Windows Hyper-V Server 2019 (2016)
Источник: winitpro.ru
Powershell как узнать версию программы
Добрый день! Уважаемые читатели и гости 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
Хочу отметить, что вы можете установить самую свежую версию языка управления даже в самой старой Windows 7. Подробнее про функционал в каждой версии вы можете посмотреть в Википедии (https://en.wikipedia.org/wiki/PowerShell#PowerShell_1.0)
Как проверить версию PowerShell из оболочки
Самый быстрый метод установить, с какой версий пошика вы работаете, это открыть саму оснастку и воспользоваться различными командлетами, которые в мгновение ока выведут вам подробнейшую информацию. Введите команду:
$PSVersionTable.PSVersion
В итоге моя Windows 10 1803 вывела мне версию 5.1 билд 17134.
Та же команда, но уже в Windows 8.1.
Можно применить вот такой метод проверить версию PowerShell:
Get-Host | Select-Object Version
В результате я получил строку результата вот такого вида 5.1.17134.407.
Есть еще несколько команд:
(Get-Host).Version или $host.version
Благодаря команде $host.version | Out-GridView вы выведете результат с версией установленной PowerShell в вашей системе, в красивом отдельном окне.
Еще чуть не забыл вот такой метод:
Write-Host (get-host).Version.Major (Get-Host).Version.Minor -Separator .
Посмотреть версию PowerShell можно и простенькой командой Get-Host.
Версия PowerShell прекрасно выводится и вот таким кодом:
Get-Variable | where | %
Как проверить версию PowerShell через реестр Windows
HKEY_LOCAL_MACHINESOFTWAREMicrosoftPowerShell3 PowerShellEngine
Тут будет ключ реестра PowerShellVersion.
Как получить версию PowerShell на удаленных хостах в домене
Если у вас установлена служба Active Directory и вы понимаете все плюсы домена, то вы можете удаленно посмотреть версию PowerShell. Выполните команду в оболочке пошика:
Invoke-Command -Computername client001.root.pyatilistnik.org -Scriptblock
Можно для нескольких компьютеров в домене. Сначала получите список имен компьютеров, запустив Get-ADComputer. Затем используйте список, чтобы получить версию powershell для всех компьютеров.
$adcomputer=( Get-ADComputer -Filter *).Name
Invoke-Command-ComputerName $adcomputer-Scriptblock -ErrorAction SilentlyContinue
Думаю вы разобрались, как узнать версию PowerShell. Далее я вам советую, произвести установку обновлений, если вы выяснили, что у вас не последняя версия. Это процесс подробно описан в данной статье. С вами был Иван Семин, автор и создатель IT блога Pyatilistnik.org.
Популярные Похожие записи:
- Как массово поменять пароль локального администратора в домене
Как открыть PowerShell, все методы
- Указана недопустимая метка диска, решаем за минуту
Как поменять DNS имя подключения к Remote Desktop Services HA
- Установка и управление модулями PowerShell
- Ошибка активации 0xC004F034 на KMS сервере
Источник: pyatilistnik.org
PowerShell: системное администрирование и программирование
Всё о PowerShell в Windows и на Linux. Системное администрирование Windows
Как проверить версию PowerShell в Windows 11
Поиск своей версии PowerShell поможет вам узнать, к каким функциям PowerShell у вас есть доступ. Команда PowerShell позволяет указать номер версии, и мы покажем вам, как это сделать.
Как узнать установленную версию PowerShell
Имеется служебная программа PowerShell, чтобы найти номер версии, именно её мы и воспользуемся.
Для начала нажмите Win+x и выберите «Windows Terminal»:
В открывшемся окне Windows Terminal введите следующую команду и нажмите Enter:
$PSVersionTable
PowerShell отображает различные числа. Здесь первое значение «PSVersion» – это ваша версия PowerShell.
Теперь вы можете закрыть окно PowerShell.
Как установить последнюю версию PowerShell
По умолчанию во всех версиях Windows, даже в последней Windows 11, устанавливается PowerShell 5, хотя в настоящее время актуальной версией является PowerShell 7. Чтобы установить её, смотрите статью «Как установить PowerShell последней версии на Windows 11».
Как узнать версию встроенного PowerShell
Если вы установили PowerShell 6 или 7, то в вашей системе теперь присутствует одновременно две версии: PowerShell 5 и последняя версия. Windows Terminal по умолчанию может использовать любую из этих версий.
Чтобы узнать версию встроенного PowerShell, откройте меню «Пуск», найдите «Windows PowerShell» и щёлкните его в результатах поиска.
В открывшемся окне PowerShell введите следующую команду и нажмите Enter:
$PSVersionTable
Либо, независимо от того, как вы открыли командную строку, вы можете узнавать версии следующими последовательностями команд.
Чтобы узнать версию встроенного PowerShell:
powershell $PSVersionTable
Чтобы узнать версию установленного PowerShell:
pwsh $PSVersionTable
Если команда «pwsh» не найдена, то попробуйте «pwsh-preview».
Как обновить встроенную версию PowerShell
Windows 10 обновляет встроенный инструмент PowerShell при установке обновлений системы. Это означает, что вы должны регулярно обновлять свой компьютер, чтобы всегда использовать последнюю версию PowerShell.
Источник: pwsh.ru