Как получить версию Java без обновления Java с использованием PowerShell? - PullRequest
0 голосов
/ 29 июня 2018

Чтобы найти версию Java, я запускаю следующую команду.

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

Get-CimInstance -ClassName CIM_Product -Filter "Name like '%java%'"

Name             Caption                             Vendor                             Version                            IdentifyingNumber                 
----             -------                             ------                             -------                            -----------------                 
Java 8 Update... Java 8 Update 171                   Oracle Corporation                 8.0.1710.11                        {26A56AE4-039D-4CA4-87B4-2F3218...
Java Auto Upd... Java Auto Updater                   Oracle Corporation                 2.8.171.11                         {4A03863F-666A-4037-7777-5F2748...

Как получить версию Java через фильтр?

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Вам нужно будет повысить специфичность фильтра. Один из способов сделать это - исключить все, где имя похоже на «Авто», так как в любой установке Java RE в нем не будет слова «Авто», а в Auto Updater есть.

Вроде так:

Get-CimInstance -ClassName CIM_Product -Filter "Name LIKE '%Java%' AND NOT Name LIKE '%Auto%'"

Используя AND в фильтре, вы можете добавить другое условие в фильтр. Чтобы отменить условие LIKE ( не похоже на ), вы начинаете условие с NOT, а затем добавляете условие - Name LIKE '%x%'

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

0 голосов
/ 29 июня 2018

Просто возьмите первую запись результата и выберите свойство Version:

(Get-CimInstance -ClassName CIM_Product -Filter "Name like '%java%'" | Select-Object -ExpandProperty Version)[0]

Чтобы получить тот же вывод, но с расширением фильтра вместо указания места в массиве (показано @Adam Parsons):

Get-CimInstance -ClassName CIM_Product -Filter "Name LIKE '%Java%' AND NOT Name LIKE '%Auto%'" | Select-Object -ExpandProperty Version
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...