Показать полную графическую версию : [решено] Удаления Java любой версии
Всем привет!
Задача такая, удалить Java со всех ПК. Известны версии:
Java 7 update 25, update 21, update 13
Java 6 update 21, update 22
Решил сначала проверить удаление одной из этих версий на одном ПК и нашел такой скрипт:
'Start Script
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
'Uninstall Java(TM) 7 Update 25
Set colJava6dot3 = objWMIService.ExecQuery _
("Select * from Win32_Product Where Name = 'Java(TM) 7 Update 25'")
For Each objSoftware in colJava6dot3
objSoftware.Uninstall()
Next
'End Script
Как я понял, тут можно самому задавать нужну версию для удаления. Но скрипт не работает - после его запуска ничего не происходит. В установленных программах на этом ПК есть Java 7 update 25. Попробовал в скрипте изменить одну строчку:
вместо ("Select * from Win32_Product Where Name = 'Java(TM) 7 Update 25'")
написал ("Select * from Win32_Product Where Name = 'Java 7 Update 25'")
Не помогло - так же ничего не происходит. Подскажите, как подправить скрипт или может укого есть другое предложение.
Спасибо!
dahiko,
На http://java.com/ru/download/faq/remove_olderversions.xml не были?
sunnykey
04-07-2013, 13:28
#Powershell script.
#Don't forget unlock script executing by
#using command "Set-ExecutionPolicy RemoteSigned" or "Set-ExecutionPolicy Unrestricted"
#Save this file with ".ps1" extension
$app=Get-WmiObject -Class win32_product | Where-Object {$_.Name -like "Java*7 Update 25"}
$app.Uninstall()
вместо ("Select * from Win32_Product Where Name = 'Java(TM) 7 Update 25'")
написал ("Select * from Win32_Product Where Name = 'Java 7 Update 25'") »
LIKE Operator (Windows) (http://msdn.microsoft.com/en-us/library/windows/desktop/aa392263(v=vs.85).aspx):
… Where Name LIKE 'Java% Update %'"
1.
На http://java.com/ru/download/faq/remo...erversions.xml не были?
Ответ: MWZ, здесь описан ручной режим удаления. Это не совсем то, что нужно.
2.
#Powershell script.
#Don't forget unlock script executing by
#using command "Set-ExecutionPolicy RemoteSigned" or "Set-ExecutionPolicy Unrestricted"
#Save this file with ".ps1" extension
$app=Get-WmiObject -Class win32_product | Where-Object {$_.Name -like "Java*7 Update 25"}
$app.Uninstall()
Ответ: SUNNYKEY, данный скрип работает. Спасибо.
3.
… Where Name LIKE 'Java% Update %'"
Ответ: ISKA, ваше предложение тоже работает.Спасибо.
А так же хочу отметить свою ошибку - я запустил свой скрипт и сразу проверил установленные программы и Java не удалилась. Но спустя 30 минут Java из списка программ пропала. Вопрос решен.
Хочу продолжить тему. При запуске этого скрипта от имени администратора через CMD у пользователя на ПК Java удаляется. Но при запуске через GPO Java не удаляется. Если применить политику на уровне пользователя, то конечно же прав не хватает. А если применить на уровне ПК, то не отрабатывает по непонятной причине.
Вопросы:
1. можно ли как-то запустить эторт скрипт через GPO (политика применена на уровне пользоваетля), чтобы прав на удаление Java хватило???
2. Почему не отрабатывает удаление через GPO если политика применена на уровне ПК??? Пробовал на 3 ПК с ОС Windows 7 Корпоративная.
Скрипт лежит в GPO в "Сценарии\Автозагрузка"
Окночательный скрипт такой:
'Start Script
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
'Uninstall Java 7 Update 25
Set colJava6dot3 = objWMIService.ExecQuery _
("Select * from Win32_Product Where Name = 'Java 7 Update 25'")
For Each objSoftware in colJava6dot3
objSoftware.Uninstall()
Next
'End Script
Очень нужна помощь. Заранее благодарен!
dahiko, уберите «On Error Resume Next» и узнаете «непонятную причину».
P.S. Вы можете хоть со своей машины исполнять его, указывая целевую машину в «strComputer = "…"».
dahiko, уберите «On Error Resume Next» и узнаете «непонятную причину». »
Убрал эту строку и ничего не происходит - как и раньше
P.S. Вы можете хоть со своей машины исполнять его, указывая целевую машину в «strComputer = "…"». »
На одном ПК получилось удаленно снеси Java. На других не получается. В strComputer пробовал указать имя ПК или IP-адрес. Скрипт запускаю от имени пользователя, который имеет права админа на удаленном ПК. Что не так делаю? :dont-know
"Select * from Win32_Product Where Name = 'Java(TM) 7 Update 25'" »
Окночательный скрипт такой:
"Select * from Win32_Product Where Name = 'Java 7 Update 25'"»
Так чему верить (проверить не могу — у меня нет Java)?
sunnykey
12-07-2013, 11:12
Цитата Iska:
Так чему верить (проверить не могу — у меня нет Java)? »
Может лучше?
"Select * from Win32_Product Where Name LIKE 'Java*7 Update 25'"
Разобрался. Java не удалилась на удаленных ПК из-за проблемы с самой явой. Даже если руками пробовать ее удалить, то появляется ошибка и она удаляется только со второго раза. Так что вопрос решен.
Так чему верить (проверить не могу — у меня нет Java)? »
Праввильно писать так, как написано в списке уставноленных программ. Если написано Java 7 Update 25, то и в скрипте надо писать 'Java 7 Update 25'. А если в списке уставноленных программ написано Java(ТМ) 7 Update 25, то и в скрипте надо написать 'Java(ТМ) 7 Update 25'.
Всем спасибо.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.