|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Удаленное удаление MSI-пакетов |
|
|
VBS/WSH/JS - Удаленное удаление MSI-пакетов
|
Ветеран Сообщения: 573 |
Профиль | Отправить PM | Цитировать Наткнулся на такой скрипт:
'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 |
|
------- Отправлено: 19:14, 25-01-2012 |
Сообщения: 53439
|
Профиль | Отправить PM | Цитировать Raistlin, пример есть в этой теме.
|
Отправлено: 19:53, 25-01-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Raistlin:
Raistlin, проверить в данный конкретный момент нет возможности, но вот Вам примерная болванка кода: Option Explicit Dim strProductName Dim strComputer Dim objSWbemLocator Dim objSWbemServicesEx Dim collSWbemObjectSet Dim objSWbemObjectEx strProductName = "Google Toolbar for Internet Explorer" strComputer = "MyServer" Set objSWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator") Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\cimv2") objSWbemServicesEx.Security_.Privileges.AddAsString "SeDebugPrivilege" Set collSWbemObjectSet = objSWbemServicesEx.ExecQuery( _ "SELECT * FROM Win32_Product " & _ "WHERE Name = '" & strProductName & "'") For Each objSWbemObjectEx In collSWbemObjectSet objSWbemObjectEx.Uninstall Next Set collSWbemObjectSet = Nothing Set objSWbemServicesEx = Nothing Set objSWbemLocator = Nothing WScript.Quit 0 |
|
Отправлено: 02:07, 26-01-2012 | #3 |
Ветеран Сообщения: 573
|
Профиль | Отправить PM | Цитировать Petya V4sechkin, не могу сообразить, как реализовать поиск пакетов на удаленной машине. Изменил код в соответствии с имеющимся в той теме:
'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}!\\" & sMachine & "\root\cimv2" _ ).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 For Each oProduct in GetObject( _ "winmgmts:{impersonationLevel=impersonate}!\\" & sMachine & "\root\cimv2" _ ).InstancesOf("win32_Product") Цитата:
|
|
------- Отправлено: 01:01, 29-01-2012 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Raistlin:
|
||
Отправлено: 17:20, 29-01-2012 | #5 |
Ветеран Сообщения: 573
|
Профиль | Отправить PM | Цитировать Нужно получить список msi-пакетов, установленных на удаленной машине, и удалить выбранные (или выбранный).
|
------- Отправлено: 17:22, 29-01-2012 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Raistlin, проще говоря, Вы хотите интерфейс.
Зачем? |
Отправлено: 21:33, 29-01-2012 | #7 |
Ветеран Сообщения: 573
|
Профиль | Отправить PM | Цитировать Допустим, пришел я в контору, где есть домен, но все приложения ставились вручную, без использования групповых политик. Хочу сделать через GP. Без предварительного удаления msi-пакетов установка через GP завершится неудачно (по крайней мере, для некоторых пакетов). При этом версии той же Java везде разные, поэтому жестко прошивать названия пакетов в скрипт бессмысленно.
|
------- Отправлено: 21:39, 29-01-2012 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Raistlin, раз Вы знаете, что будете удалять (хотя бы частичное имя), можно проще, наподобие:
либо разбор «MachineList.txt» и асинхронный вызов «wmic.exe» посредством «start» для каждой машины из «MachineList.txt». |
Отправлено: 22:02, 29-01-2012 | #9 |
Ветеран Сообщения: 573
|
Профиль | Отправить PM | Цитировать Да, я такое уже накопал и даже смог воспроизвести. Правда, не скажу, что это проще .
|
------- Отправлено: 22:10, 29-01-2012 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Переупаковка MSI/MSP пакетов | Virtuez | Автоматическая установка приложений | 28 | 14-03-2024 08:38 | |
Установка и переустановка msi-пакетов | pypyrin | Автоматическая установка приложений | 0 | 22-10-2010 14:21 | |
[решено] Автоматическая установка MSI пакетов в домене. | Ultrix | Microsoft Windows NT/2000/2003 | 4 | 27-01-2010 13:44 | |
Удаление пакетов с помощью rpm | 1Space | Программное обеспечение Linux и FreeBSD | 4 | 01-02-2007 10:11 | |
Создание пакетов MSI . | Jhakal | Автоматическая установка приложений | 3 | 21-11-2006 06:20 |
|