Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Удаления Java любой версии (http://forum.oszone.net/showthread.php?t=263738)

dahiko 04-07-2013 13:01 2179176

Удаления 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'")

Не помогло - так же ничего не происходит. Подскажите, как подправить скрипт или может укого есть другое предложение.
Спасибо!

mwz 04-07-2013 13:18 2179186

dahiko,

На http://java.com/ru/download/faq/remo...erversions.xml не были?

sunnykey 04-07-2013 13:28 2179197

Код:

#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()


Iska 04-07-2013 16:06 2179307

Цитата:

Цитата dahiko
вместо ("Select * from Win32_Product Where Name = 'Java(TM) 7 Update 25'")
написал ("Select * from Win32_Product Where Name = 'Java 7 Update 25'") »

LIKE Operator (Windows):
Код:

… Where Name LIKE 'Java% Update %'"

dahiko 05-07-2013 09:21 2179666

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 из списка программ пропала. Вопрос решен.

dahiko 09-07-2013 08:39 2181697

Хочу продолжить тему. При запуске этого скрипта от имени администратора через 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

Очень нужна помощь. Заранее благодарен!

Iska 09-07-2013 12:50 2181814

dahiko, уберите «On Error Resume Next» и узнаете «непонятную причину».

P.S. Вы можете хоть со своей машины исполнять его, указывая целевую машину в «strComputer = "…"».

dahiko 11-07-2013 17:41 2183231

Цитата:

Цитата Iska
dahiko, уберите «On Error Resume Next» и узнаете «непонятную причину». »

Убрал эту строку и ничего не происходит - как и раньше

Цитата:

Цитата Iska
P.S. Вы можете хоть со своей машины исполнять его, указывая целевую машину в «strComputer = "…"». »

На одном ПК получилось удаленно снеси Java. На других не получается. В strComputer пробовал указать имя ПК или IP-адрес. Скрипт запускаю от имени пользователя, который имеет права админа на удаленном ПК. Что не так делаю? :dont-know

Iska 11-07-2013 18:16 2183251

Цитата:

Цитата dahiko
Код:

"Select * from Win32_Product Where Name = 'Java(TM) 7 Update 25'"
»

Цитата:

Цитата dahiko
Окночательный скрипт такой:
Код:

"Select * from Win32_Product Where Name = 'Java 7 Update 25'"
»

Так чему верить (проверить не могу — у меня нет Java)?

sunnykey 12-07-2013 11:12 2183524

Цитата Iska:
Так чему верить (проверить не могу — у меня нет Java)? »
Может лучше?
Код:

"Select * from Win32_Product Where Name LIKE 'Java*7 Update 25'"

dahiko 12-07-2013 15:04 2183677

Разобрался. Java не удалилась на удаленных ПК из-за проблемы с самой явой. Даже если руками пробовать ее удалить, то появляется ошибка и она удаляется только со второго раза. Так что вопрос решен.

Цитата:

Цитата sunnykey
Так чему верить (проверить не могу — у меня нет Java)? »

Праввильно писать так, как написано в списке уставноленных программ. Если написано Java 7 Update 25, то и в скрипте надо писать 'Java 7 Update 25'. А если в списке уставноленных программ написано Java(ТМ) 7 Update 25, то и в скрипте надо написать 'Java(ТМ) 7 Update 25'.

Всем спасибо.


Время: 09:50.

Время: 09:50.
© OSzone.net 2001-