Како проверити верзију, надоградити или уклонити Јава користећи ПоверСхелл?

Јава Рунтиме Енвиронментмен (ЈРЕ) се широко користи за покретање различитих корпоративних апликација написаних у јави. Међутим, неки програми захтевају покретање одређене верзије Јава и можда неће радити исправно у другим верзијама. У овом ћемо чланку погледати како схватити које су верзије Јава инсталиране на рачунарима корисника на вашој мрежи, као и како уклонити или ажурирати верзију ЈРЕ-а помоћу ПоверСхелл-а..

Садржај:

  • Како сазнати инсталирану верзију Јава на Виндовс-у?
  • Како пронаћи верзију Јава из ПоверСхелл-а?
  • ПоверСхелл: Набавите верзију Јава на удаљеним рачунарима
  • ПоверСхелл скрипта за деинсталирање свих верзија Јава
  • Како преузети инсталацију Јава ЈРЕ помоћу програма ПоверСхелл?

Како сазнати инсталирану верзију Јава на Виндовс-у?

Ако натипкате „број верзије Јава верзије инсталиран на рачунару, можете добитијава'у пољу за претрагу Виндовс 10 и покрените Јава апплет.

Отвара се прозор „О Јава“ који приказује тренутну верзију ЈРЕ. У мом случају јесте Ажурирање верзије Јава верзије 8 (изградња 1.8.0_231-б11). Обратите пажњу на вредност израде ЈРЕ. У свим верзијама Јаве означен је почетак 1, онда је главни број верзије ЈРЕ (имам ово 8), затим број ажурирања.

Такође можете да пронађете тренутну верзију Јава на панелу 'Програми и Виндовс компоненте' (Вин + Р -> аппвиз.цпл).

Можете да прикажете тренутну верзију Јава из командне линије. Покрените цмд.еке и покрените наредбу:

јава -верзија

Јава верзија "1.8.0_231" Јава (ТМ) СЕ Рунтиме Енвиронмент (саставите 1.8.0_231-б11) Јава ХотСпот (ТМ) клијент ВМ (градите 25.231-б11, мешовити режим) 

Како пронаћи верзију Јава из ПоверСхелл-а?

Јава верзију можете сазнати на рачунару користећи ПоверСхелл. Једноставно можете да проверите верзију извршне датотеке јава.еке (пут до ње је уписан у променљиве окружења приликом инсталирања ЈРЕ СЕ на ваш рачунар). Издат ћемо верзију датотеке јава:

Гет-Цомманд Јава | Верзија изабраног објекта

Можете приказати детаљне информације о верзији, ажурирању и издању Јаве:

Гет-Цомманд јава | Селецт-Објецт -ЕкпандПроперти Версион

Ревизија већих мањих градњи ----- ----- ----- -------- 8 0 2310 11 

Ако требате да добијете вредност низа верзије Јава за употребу у скриптама, користите:

(Гет-Цомманд Јава | Селецт-Објецт -ЕкпандПроперти Версион) .тостринг ()

Јава верзију можете сазнати и путем ВМИ класе, која садржи списак инсталираних програма у Виндовс-у:

Гет-ВмиОбјецт -Цласс Вин32_Продуцт -Филтер "Име попут"% Јава% ""

ИдентифицатионНумбер: 26А24АЕ4-039Д-4ЦА4-87Б4-2Ф32180231Ф0 Назив: Јава 8 Ажурирање 231 Добављач: Орацле Цорпоратион Верзија: 8.0.2310.11 Опис: Јава 8 Упдате 231 ИдентифицатионНумбер: 4А03706Ф-666А-4037-7777-5Ф2748764Д10 Назив: Добављач аутоматског ажурирања: Орацле Цорпоратион Верзија: 2.8.231.11 Опис: Јава Ауто Упдатер

Добијени ИД-ови се у будућности могу користити за исправно уклањање ЈРЕ.

Ако желите да прикажете само верзије Јава, а требате изузети Јава Ауто Упдатер, користите наредбу:

Гет-ВмиОбјецт -Цласс Вин32_Продуцт -Филтер "Име попут '% Јава%', а не Име као '% Јава Ауто Упдатер%'" | Изаберите -Прошири верзију

ПоверСхелл: Набавите верзију Јава на удаљеним рачунарима

Ако желите да направите попис верзија Јава која се користи на рачунарима или серверима у вашем домену, можете да користите следећу ПоверСхелл скрипту. Ова скрипта може даљински упитати сервер са листе наведене ручно, учитати листу из текстуалне датотеке. Такође можете добити листу сервера или рачунара из АД-а коришћењем цмдлет Гет-АДЦомпутер из модула РСАТ-АД-ПоверСхелл.
# ПоверСхелл скрипта за проверу верзије Јава СЕ (ЈРЕ) на удаљеним рачунарима / серверима

# Проверите верзију Јава са листе рачунара

# $ цомпутерс = @ ('север1, сервер2, сервер3')

# Проверите верзију Јава по листи сервера у текстуалној датотеци

# $ цомпутерс = Гет-цонтент Ц: \ ПС \ СерверЛист.ткт

# Набавите верзију Јава на свим серверима домена

$ цомпутерс = ((гет-адцомпутер -Филтер омогућено -ек "труе" -анд ОператингСистем -Лике '* Виндовс Сервер *'). име) .тостринг ()

Гет-ВмиОбјецт -Цласс Вин32_Продуцт -ЦомпутерНаме $ цомпутерс -Филтер "Име попут '% Јава%', а не Име попут '% Јава Ауто Упдатер%'" | Изаберите __Сервер, Версион

Као резултат тога, добићете плочу са списком рачунара / сервера и верзије Јава на њима.

У мом случају, приликом провере верзије Јава на рачунарима, пронашао сам 35 различитих верзија ЈРЕ!

ПоверСхелл скрипта за деинсталирање свих верзија Јава

Зашто бисте можда требали деинсталирати претходне верзије Јава на Виндовс-у?

  • Пре инсталирања нове верзије Јава, препоручљиво је деинсталирати све претходне верзије. Као и код свих осталих производа на Јави, функционалност се стално ажурира и критичне рањивости су исправљене. Ако имате инсталирану старију верзију Јава, излажете рачунар ризику од инфекције и искориштавања познатих и једнодневних рањивости. Јава има уграђени механизам за аутоматско ажурирање, али из различитих разлога, администратори га могу онемогућити на рачунарима домена.
  • Немате комерцијалну претплату за коришћење Јава ЈРЕ. Од 2019. године, Орацле мења политику лиценцирања Јава. Сада, ако желите да користите старије верзије Орацле ЈДК (Јава СЕ), морате да купите плаћену претплату. Ово се односи на сва издања Јава ЈРЕ-а након 16. априла 2019. (почевши од ажурирања Јава 8 СЕ 211). Дугорочна подршка пружа се за комерцијалне верзије Јава СЕ (ажурирање објављено 5 година након издања). Бесплатна Јава верзија - Отвори јдк (дистрибуира се под ГПЛ), међутим, мораћете да га ажурирате једном у шест месеци. Још један недостатак Отвори јдк - док не постоје нормални инсталациони алати за Виндовс. Морате да преузмете и инсталирате Опен ЈДК ручно. Постоји једна прихватљива опција за инсталирање Опен ЈДК помоћу управитеља пакета Цхоцолатеи: цхоцо инсталл опењдк

Следећа скрипта ПоверСхелл може се користити за уклањање свих инсталираних верзија Јава на рачунару.

$ јре_инсталлед = Гет-ВмиОбјецт -Цласс Вин32_Продуцт -Филтер "Име попут"% Јава% ""
$ јре_инсталлед.Унинсталл ()

Међутим, горе описана наредба за уклањање темељи се на ВМИ и, упркос својој једноставности, делује прилично споро.

Уместо тога, из регистра можете добити листу инсталиране Јаве и уклонити све пронађене верзије Јава-а помоћу ГУИД-а производа, који се генерише приликом инсталирања софтвера путем МСИ-а.

#ПоверСхелл скрипта за уклањање свих верзија Јава СЕ (ЈРЕ) на рачунару
$ унинсталл32 = гци "ХКЛМ: \ СОФТВАРЕ \ Вов6432Ноде \ Мицрософт \ Виндовс \ ЦуррентВерсион \ Унинсталл" | фореацх гп $ _. ПСПатх | ? $ _ -лике "* Јава *" | изаберите УнинсталлСтринг
$ унинсталл64 = гци "ХКЛМ: \ СОФТВАРЕ \ Мицрософт \ Виндовс \ ЦуррентВерсион \ Унинсталл" | фореацх гп $ _. ПСПатх | ? $ _ -лике "* Јава *" | изаберите УнинсталлСтринг
# Уклањање 64 битних верзија Јава
иф ($ унинсталл64)
$ унинсталл64 = $ унинсталл64.УнинсталлСтринг -Реплаце "мсиекец.еке", "-Реплаце" / И "," "-Реплаце" / Кс "," "
$ унинсталл64 = $ унинсталл64.Трим ()
Напишите "Деинсталирање ..."
старт-процесс "мсиекец.еке" -арг "/ Кс $ унинсталл64 / кб" -Чекај

# Уклањање 32 битних верзија Јава
иф ($ унинсталл32)
$ унинсталл32 = $ унинсталл32.УнинсталлСтринг -Реплаце "мсиекец.еке", "-Реплаце" / И "," "-Реплаце" / Кс "," "
$ унинсталл32 = $ унинсталл32.Трим ()
Напишите "Деинсталирање свих верзија Јава СЕ ..."
старт-процесс "мсиекец.еке" -арг "/ Кс $ унинсталл32 / кб" -Чекај


ПоверСхелл скрипте из овог чланка доступне су у мом спремишту на ГитХубу хттпс://гитхуб.цом/винадм/посх/трее/мастер/Јава.

Како преузети инсталацију Јава ЈРЕ помоћу програма ПоверСхелл?

Следећа скрипта ПоверСхелл омогућава вам да аутоматски преузмете последњу верзију Јава дистрибуције (можете је преузети ван мреже или инсталирате на мрежи) са званичне странице и инсталирате је на рачунар корисника. При томе сузбијамо захтев за поновно покретање и искључујемо аутоматске Јава исправке.

Да бисте преузели инсталацијску датотеку са веб локације, користите цмдлет Инвоке-ВебРекуест.

#ПоверСхелл скрипта за аутоматско преузимање и инсталирање најновије верзије Јава СЕ (ЈРЕ) на рачунар
[Нет.СервицеПоинтМанагер] :: СецуритиПротоцол = [Нет.СецуритиПротоцолТипе] :: Тлс12
# преузми Јава инсталатер на мрежи
$ УРЛ = (Инвоке-ВебРекуест -УсеБасицПарсинг хттпс://ввв.јава.цом/ен/довнлоад/мануал.јсп).Цонтент | % [регек] :: подударања ($ _, '(? :)'). Групе [1] .Валуе
# преузми изванмрежни програм за инсталирање Јава
# $ УРЛ = (Инвоке-ВебРекуест -УсеБасицПарсинг хттпс://ввв.јава.цом/ен/довнлоад/мануал.јсп).Цонтент | % [регек] :: подударања ($ _, '(? :)'). Групе [1] .Валуе
Инвоке-ВебРекуест -УсеБасицПарсинг -ОутФиле јре8.еке $ УРЛ
Старт-Процесс. \ Јре8.еке '/ с РЕБООТ = 0 СПОНСОРС = 0 АУТО_УПДАТЕ = 0' -чекајте
ехо $?

Ако рачунар стоји иза прокија, морате да конфигуришете ПоверСхелл за приступ интернету путем прокија.

Први ред у скрипти је додан за прелазак на ТЛС 1.2 протокол. Иначе, када сам почео, добио сам грешку:

Инвоке-ВебРекуест: Захтев је прекинут: неуспешно креирање сигурног канала ССЛ / ТЛС.

Скрипта ће аутоматски преузети Јава инсталацијску датотеку, спремити је на диск као јре8.еке и инсталирати ЈРЕ.