Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Программирование
>
VisualBasic
(Модератор:
Naghual
) > Тема:
Удаленное удаление MSI-пакетов
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Удаленное удаление MSI-пакетов (Прочитано 12757 раз)
0 Пользователей и 1 Гость смотрят эту тему.
GCRaistlin
Новенький
Offline
Удаленное удаление MSI-пакетов
«
:
24-01-2012 23:51 »
Наткнулся
на такой скрипт:
Код:
'Uninstalls a remote MSI package.
'http://vbscriptwmi.uw.hu/ch31lev1sec4.html
'get remote computer name
Dim sMachine
sMachine = InputBox("Computer name?")
'get admin credentials
Dim sAdminUser, sPassword
sAdminUser = InputBox("Enter the admin user name.")
sPassword = InputBox("Enter the users password. ")
'get a WMI Locator
Dim oLocator
Set oLocator = CreateObject("WbemScripting.SWbemLocator")
'connect to remote machine
Dim oService
Set oService = oLocator.ConnectServer(sMachine, "root\cimv2", _
sAdminUser, sPassword)
'get a list of installed products
Dim sMsg, sName
For Each oProduct in GetObject( _
"winmgmts:{impersonationLevel=impersonate,(Debug)}" _
).InstancesOf("win32_Product")
'is this the product we want?
sMsg = "Product: " & vbCrLf
sMsg = sMsg & oProduct.Name
sMsg = sMsg & vbCrLf & "Uninstall this product?"
If MsgBox(sMsg, 4) = 6 Then
sName = oProduct.Name
Exit For
End If
Next
'Get the named package
For each oProduct in GetObject( _
"winmgmts:{impersonationLevel=impersonate}" _
).ExecQuery _
("Select * from Win32_Product where Name='" & sName & "'")
'uninstall it
oProduct.Uninstall
'done!
MsgBox "Uninstalled " & sName
Next
По замыслу автора, он должен удалять msi-пакеты удаленно. Удаляет-то, может, он и удаленно, а вот список формирует из локально установленных пакетов. Не подскажет ли кто из уважаемых гуру, что в нем не так?
Записан
HandKot
Молодой специалист
Offline
Re: Удаленное удаление MSI-пакетов
«
Ответ #1 :
26-01-2012 04:31 »
я не гуру, но учитывая это
Код:
sMachine = InputBox("Computer name?")
и
Код:
Set oService = oLocator.ConnectServer(sMachine, "root\cimv2", _
sAdminUser, sPassword)
и если добавить и добавлять везде при вызове winmgmts
Код:
" & sMachine & "\root\cimv2"
к примеру
Код:
For Each oProduct in GetObject( _
"winmgmts:{impersonationLevel=impersonate,(Debug)}!\\" & sMachine & "root\cimv2"_
).InstancesOf("win32_Product")
то, вроде, должно помочь
ЗЫЖ у меня не получилось по причине: ошибка 462, а разбираться лень
Записан
I Have Nine Lives You Have One Only
THINK!
GCRaistlin
Новенький
Offline
Re: Удаленное удаление MSI-пакетов
«
Ответ #2 :
28-01-2012 21:06 »
У меня ошибка
Цитата
Uninstall.vbs(20, 1) Microsoft VBScript runtime error: The remote server machine does not exist
or is unavailable: 'GetObject'
на такой строке:
Код:
For Each oProduct in GetObject( _
"winmgmts:{impersonationLevel=impersonate}!\\" & sMachine & "\root\cimv2" _
).InstancesOf("win32_Product")
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Программирование
>
VisualBasic
(Модератор:
Naghual
) > Тема:
Удаленное удаление MSI-пакетов
Загружается...