Как удалить java разными методами
Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik. В прошлой статье вы научились отключать небезопасный протокол LLNMR. Двигаемся дальше и сегодня научимся производить удаление Java различными методами, я покажу примеры PowerShell скриптов которые я использую в своей практике, чтобы автоматизировать данный процесс, покажу, как это делать с помощью SCCM и командной строки, так что давайте прокачивать свои знания.
Как удалить java классическим методом
Для тестирования у меня есть сервер Windows Server 2022, на нем установлена Java, которая стала ненужно, да еще и к тому несущая в себе уязвимости. Перед тем как мы будим производить деинсталляцию Java, давайте убедимся, что она есть и выясним ее версию. Запустите окно "Выполнить" и напишите в нем:
Находим в списке Java, в моем примере это 8-я версия Update 431 (64-bit), выбираем ее и нажимаем кнопку "Удалить".
откроется всплывающее окно, в котором нажмите "Продолжить".
Подтверждаем удаление Java.
Через пару секунд программа будет удалена.
Читайте так же - Как скрыть программу из спаиска установленных
Так же вы можете найти список установленных программ через кнопку пуск, но самый правильный метод нажать сочетание клавиш Win + I, это откроет окно параметров Windows. В моем примере Windows 11 и там в параметрах будет отдельное окно "Приложения", выберите его и далее пункт "Установленные приложения".
Далее в списке установленных программ найдите Java, щелкните по кнопке в виде трех точек, после чего нажмите "Удалить".
После чего щелкаем в мастере удаления Java вперед и вперед, пока процедура не будет завершена.
Тихое удаление Java с помощью PowerShell
Для того чтобы полностью удалить Java средствами PowerShell, вам необходимо запустить ISE в режиме администратора. Воспользуйтесь моим скриптом:
Get-WmiObject -Query "SELECT * FROM Win32_Product WHERE Name LIKE 'Java%'" | Select-Object Name, Version
Для начала посмотрите текущие версии Java и есть ли она там вообще.
Теперь видя, что Java установлена, видно ее версии, переходим к полной деинсталляции. Скопируйте мой код и выполните его:
# Функция для получения списка установленных программ
function Get-InstalledJava {
$javaPrograms = Get-WmiObject -Query "SELECT * FROM Win32_Product WHERE Name LIKE '%Java%'"
return $javaPrograms
}# Функция для удаления программы
function Uninstall-Program {
param (
[string]$productName
)$product = Get-WmiObject -Query "SELECT * FROM Win32_Product WHERE Name='$productName'"
if ($product) {
$product.Uninstall() | Out-Null
Write-Host "Успешно удалено: $productName"
} else {
Write-Host "Программа не найдена: $productName"
}
}# Получаем список установленных Java и Java Auto Updater
$installedJava = Get-InstalledJava# Проверяем, есть ли установленные версии
if ($installedJava.Count -eq 0) {
Write-Host "Не найдено установленных версий Java или Java Auto Updater."
} else {
# Удаляем найденные версии
foreach ($java in $installedJava) {
Uninstall-Program -productName $java.Name
}
}
Как удалить java на многих компьютерах удаленно
Заранее подготовьте файл со списком серверов, где каждое имя будет на новой строке и без пробелов. Далее в ISE на сервере откуда есть доступ до этих серверов и наличие прав. выполните скрипт:
# Взять список серверов из файла и положить их в переменную
$servers = Get-Content -Path "C:\Temp\RDS\servers.txt"Функция для поиска установленных версий Java
function Get-JavaVersions {
param (
[string]$server
)# Используем WMI для получения установленных программ
$javaVersions = Get-WmiObject -Class Win32_Product -ComputerName $server | Where-Object { $_.Name -like "Java*" }
return $javaVersions
}# Обработка каждого сервера
foreach ($server in $servers) {
Write-Host "Обработка сервера: $server"$javaVersions = Get-JavaVersions -server $server
# Проверяем, найдены ли версии Java
if ($javaVersions) {
foreach ($java in $javaVersions) {
Write-Host "Найдена версия Java на сервере $server $($java.Version)"# Тихое удаление найденных версий Java
try {
$java.Uninstall() | Out-Null
Write-Host "Успешно удалена версия Java: $($java.Name) на сервере $server"
} catch {
Write-Host "Ошибка при удалении Java: $($java.Name) на сервере $server. $_"
}
}
} else {
Write-Host "Java не найдена на сервере: $server"
}
}
Скрипт выведет найденную версию Java и имя сервера, после чего полностью его удалит. Если запустить второй раз, то скрипт покажет что версий уже быть не должно.
Полное удаление Java через командную строку
Для того чтобы произвести полное удаление всех компонентов Java, вам необходимо запустить cmd в режиме администратора. Для начала удостоверимся, что в системе присутствует Java. Для этого выполните команду:
wmic product where "name like 'Java%'" get Name, Version
Далее видя полное имя, копируем его и вставляет вот в такую команду. которая удалит Java.
wmic product where "name='Java 8 Update 421 (64-bit)'" call uninstall
Можно повторно потом запустить первую команду, и удостовериться. что программа удалена.
Если нужно с помощью командной строки выполнить данные команды, то для этого можно использовать утилиту PsExec.exe
Как удалить java через SCCM
Если у вас есть в компании Active Directory, то вы в большинстве случаев управляете компьютерами и серверами с помощью System Center Configuration Manager. Ранее я рассказывал, как создать в SCCM свой скрипт, для последующего распространения. В данный скрипт поместите описанный выше пример, для локального удаления Java в PowerShell.
Далее берем коллекцию или отдельный хост в "Devices", правым кликом по нему, где нужно выбрать "Run Script".
В окне мастера выполнения скрипта найдите нужный и нажмите "Next".
При необходимости вы можете задать удобное для вас расписание, чтобы выполнить данную процедуру.
На следующем шаге подтверждаем, что все выбрали правильно.
Все, теперь начинается процедура удаления Java. Через некоторое время вы получите результат операции.
На этом я закончу статью, мы разобрали разные подходы к деинсталляции Java, тут вы уже сами выберете удобный для вас сценарий. С вами был Иван Сёмин, автор и создатель IT портала Pyatilistnik.org.