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

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

Guman 30-09-2013 10:27 2226005

Как с помощью командой строки удалить приложение из системы
 
Допустим у нас есть приложение, которое было установлено через MSI. И мы знаете только имя приложения (в данном случае, только первую часть названия). Для использования команды MSIEXEC требуется, чтобы вы знали GUID, но все программы имеют разные GUID, более того, даже разные версии программы могут иметь различный GUID. Решение нашел в интернете. Это маленький кусочек кода который перебирает ключи реестра, чтобы получить этот самый GUID, у которого DisplayName начинается с определенного имени.

Ниже приведен пример, который удаляет все установленные приложения, названия которых начинается с «Windows Live ID Sign-in Assistant»
Но почему то она не работает.. помогите разобраться..(Пробовал в Windows 8, может проблема в этом)

Код:

for /f "tokens=7 delims=\" %%i in ('reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall ^| FIND "{"') do (
  for /f "tokens=2,*" %%j in ('reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\%%i /v DisplayName') do (
    set dn=%%k
    if "!dn:~0,33!"=="Windows Live ID Sign-in Assistant" (
      echo Uninstalling Windows Live ID Sign-in Assistant
      msiexec /promptrestart /qb /x %%i /L+*v %TEMP%\wlidsvc.log
      if %ERRORLEVEL% NEQ 0 echo Uninstallation failed. Check the log %TEMP%\wlidsvc.log
    )
  )
)

помогите разобраться...

Guman 30-09-2013 10:33 2226011

Вот рабочие идеи он они требуют точного ввода именны но так меня не устраивает
читать дальше »

запускай командную строку(пуск – выполнить – cmd) и вводи следующее:

Код:

wmic product get name
после нажатия энтера ты получишь список, установленных на твоём компе программ, запомни имя нужной программы и вводи дальше:

Код:

wmic product where name=’имя программы’ call uninstall
жмёшь ввод и вуаля


нужно исправить код с шапки кто может помочь

sunnykey 30-09-2013 12:50 2226101

http://forum.oszone.net/thread-263738.html

Guman 30-09-2013 14:54 2226173

ни чего полезного там не увидел..
Может поподробнее расскажешь сам??

sunnykey 30-09-2013 15:16 2226183

Цитата:

Цитата Guman
ни чего полезного там не увидел..
Может поподробнее расскажешь сам?? »

Зачем перебирать реестр? Тот же эффект даст использования WMI. Берём мой пример из ссылки и подгоняем под ваши условия:
Код:

#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 "*Windows Live ID Sign-in Assistant*"}
$app.Uninstall()

И больше ничего не надо.

Iska 30-09-2013 15:19 2226190

Добавлю только, что и «wmic.exe» понимает оператор «LIKE».

Guman 30-09-2013 15:41 2226218

Iska Вроде же хорошо понимаешь в этом.. помоги пож..

Iska 30-09-2013 15:52 2226222

Цитата:

Цитата Guman
названия которых начинается с «Windows Live ID Sign-in Assistant» »

Код:

wmic.exe Product where "Name LIKE 'Windows Live ID Sign-in Assistant%%'" call Uninstall

Guman 30-09-2013 16:28 2226245

Iska один момент , для уточнения...
Она сканировать будет DisplayName?

Вот цель в чем.

запись в реестре HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\{7F646B03-B4B1-4784-83FF-947CA1059BA0}\DisplayName

так вот {7F646B03-B4B1-4784-83FF-947CA1059BA0} невозможно всегда определиться так как он при новой версии может меняться...
а вот DisplayName можно как то вычислить...
но проблема в другом.. не знаю получиться или нет..
вот смотрите две записи DisplayName
\{7F646B03-B4B1-4784-83FF-947CA1059BA0}\DisplayName ---> Данные 2ГИС г.Якутск 01.09.2013
и
\{79B8B143-2948-468B-A139-CC6D1CFE146E}\DisplayName ---> 2ГИС 3.13.9.0

как видите много лишнего, в DisplayName , в одном дата присуствует а в другом версия.

очень надеюсь что после запуске ключа
Код:

wmic.exe Product where "Name LIKE '2ГИС%%'" call Uninstall
Она деинсталирует оба продукта да и не только оба , все продукты в котором присутствует 2ГИС
было бы класс.

Пошел пробовать.. спасибо за помощь. Посмотрим Цель Моих хотелок будет выполнено

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

в итоге вышло следующее и ни че не удалилось-((

Код:

Microsoft Windows [Version 6.2.9200]
(c) Корпорация Майкрософт, 2012. Все права защищены.

C:\Users\Windows 8>wmic.exe Product where "Name LIKE '2ГИС%%'" call Uninstall
Идет выполнение (\\GUMAN\ROOT\CIMV2:Win32_Product.IdentifyingNumber="{79B8B143-2948-468B-A139-CC6D1CFE146E}",Name="2ГИС 3.13.9.0",Version="3.13.9.0")->Uninstall
()
Метод успешно вызван.
Параметры вывода:
instance of __PARAMETERS
{
        ReturnValue = 1603;
};

Насчет '2ГИС%%' додумался переименовать в '%%2ГИС%%'

но что сделать с полученной информацие как заставить удалить?? а в идеале все одной строкой было бы

Iska 30-09-2013 18:17 2226299

Цитата:

Цитата Guman
Насчет '2ГИС%%' додумался переименовать в '%%2ГИС%%' »

Верно.

Цитата:

Цитата Guman
но что сделать с полученной информацие как заставить удалить?? »

Это и есть удаление. Значение «ReturnValue = 1603», насколько я понимаю, говорит об ошибке, произошедшей при попытке вызвать метод «Uninstall»: Uninstall method of the Win32_Product class (Windows). Командная строка/«wmic.exe» было запущено с административными привилегиями?

Guman 01-10-2013 07:59 2226544

Iska Класс . Заработало..
Осталось к общему виду привести...
Запуск через админа исправил картину-)

Только вот как в аддонах это под админкой это исполнить в голове не умешаеться-((

вот например
Код:

RunProgram="wmic.exe Product where "Name LIKE '%%2ГИС%%'" call Uninstall"
AutoInstall="wmic.exe Product where "Name LIKE '%%2ГИС%%'" call Uninstall"

как запустить все это дело через админку.. чтоб в итоге при установке аддона не возникало проблемм

Iska 01-10-2013 12:41 2226671

Не знаю, что такое «админка».

Guman 01-10-2013 13:08 2226685

Цитата:

Командная строка/«wmic.exe» было запущено с административными привилегиями?
я про это имел ввиду

Iska 01-10-2013 13:38 2226704

Права дочерними процессами наследуются. Возможно ли запустить аддон с административными привилегиями?

Guman 01-10-2013 14:18 2226721

ну смотри в windows 7 запустить аддон с тихой установкой.. она же не будет выполнять эту команду правыльно , привилегий не хватит . по этому надо как то саму эту строчку внутри аддона запускать с правами администратора, вот как правильно сделать не понимаю... этот маленкий кусочек кода потом при созданый новых аддонов очень много раз будет помогать...

Цель такова..
Получается запускается аддон с тихим ключем, а дальше внутри сработает эта команда с правами администратора. он удалит старую версию программы и установить новую.

Iska 01-10-2013 17:43 2226860

Цитата:

Цитата Guman
ну смотри в windows 7 запустить аддон с тихой установкой.. »

Коллега, я бы посмотрел, но у меня из всей Windows NT 6.x только Server 2008 R2. Равно не пользую аддоны. Так что, Вам и карты в руки.

lcnet 11-10-2019 16:55 2891681

Приветствую!

Похожая ситуация, но с другой ошибкой

запускаю из CMD под админскими правами, все работает
Запуская батник с админскими правами и нифига, выдает ошибку 1618

Кто-то знает что за фигня?


код

wmic /node:localhost /PRIVILEGES:ENABLE product where "name like '%%1C:Предприятие 8%%'" call uninstall /nointeractive
pause
wmic /node:localhost /PRIVILEGES:ENABLE product where "name like '%%1C:Enterprise 8%%'" call uninstall /nointeractive

Iska 12-10-2019 10:28 2891747

Нельзя запустить более одного процесса инсталляции/деинсталляции единовременно: MsiExec.exe and InstMsi.exe Error Messages - Windows applications | Microsoft Docs.

lcnet 14-10-2019 08:50 2891964

Iska, Спасибо!
Плохо искал, видимо.
Хотя странно, задал запрос "wmi error code"...

Iska 14-10-2019 17:19 2892007

lcnet, я так полагаю, что под критерий where попадает больше одного экземпляра класса Win32_Product. Хотя, конечно, не факт.

Iska 14-10-2019 19:15 2892027

Цитата:

Цитата lcnet
Хотя странно, задал запрос "wmi error code"... »

Так это ж не Wbem ошибка, это Windows Installer ошибка.

DJ Mogarych 14-10-2019 20:09 2892039

Вместо продукта надёжнее писать ID.

Узнать можно в Powershell
Код:

gwmi win32_product |? name -match "Windows Live ID"

lcnet 15-10-2019 11:08 2892110

DJ Mogarych, Не, это понятно, но тогда скрипт получиться сильно мудреный...
Цель же какая? Удалить все версии программы 1С:Предприятие, а их по факту оказывается 2-3 штуки, поэтому и придумал такую штуку, но, как говориться, не тут-то было.
Можно было бы данное действо организовать через ПШ, но в нашей организации, мы поставили безопастность выше удобства и ПШ работает только на нескольких компах, на остальных заблокирован. Поэтому приходиться мудрить через CMD.

alpap 15-10-2019 12:40 2892132

Цитата:

Цитата lcnet
безопастность выше удобства »

отрезать ноги чтобы не упасть случайно.

lcnet 15-10-2019 13:19 2892138

alpap, За то, за последние 2 года, как заблокировали выполнение на компах пользователей скрипты ps1, js, vbs, ни один комп не зашифровался, а в организации их около тысячи

DJ Mogarych 15-10-2019 17:01 2892170

Ничего мудрёного нет, две с половиной строчки.
Если в конторе есть Каспер (KSC), то там можно посмотреть и у кого стоят те или иные программы, и также увидеть строку деинсталляции.

Iska 15-10-2019 17:17 2892173

Цитата:

Цитата lcnet
за последние 2 года, как заблокировали выполнение на компах пользователей скрипты ps1, js, vbs, ни один комп не зашифровался »

Хмм… За двадцать с лишним лет лет ни одна машина не зашифровалась. Никакие скрипты не запрещались. И никому лишнему административные привилегии не выдавались (включая руководство).

lcnet 18-10-2019 09:15 2892591

Iska, Тут дело не только в запрещении скриптов.
Я лично сталкивался с ситуациями, когда пользователи, не смотря на все предупреждения, радостно открывали вложения от неизвестных отправителей, после чего все их файлы можно было отправлять в мусор.
Видимо у Вас пользователи грамотные...
У нас же, помимо запрещенных скриптов, еще запрет запуска исполняемых файлов для пользователей из определенных расположений.
Я придерживаюсь принципа - "Лучше перебздеть, чем недобздеть". Извиняюсь, за мой французский.

Iska 18-10-2019 15:45 2892636

Цитата:

Цитата lcnet
Я лично сталкивался с ситуациями, когда пользователи, не смотря на все предупреждения, радостно открывали вложения от неизвестных отправителей, после чего все их файлы можно было отправлять в мусор.»

Это да, не учёл. Прошу прощения.

Цитата:

Цитата lcnet
Видимо у Вас пользователи грамотные... »

Хуже. Были настолько грамотные, что не пользовались почтой.


Цитата:

Цитата lcnet
У нас же, помимо запрещенных скриптов, еще запрет запуска исполняемых файлов для пользователей из определенных расположений.
Я придерживаюсь принципа - "Лучше перебздеть, чем недобздеть". Извиняюсь, за мой французский. »

Нет, тут Вы совершенно правы.

А можно для всех прочих запретить, а для администраторов оставить возможность исполнения скриптов? Я тупо не помню, а смотреть больше негде ;).

lcnet 11-11-2019 15:44 2895703

Iska, можно, так и сделано.
Только в 7-ке это разрешение работает криво, а в 10-ке норм.

Единственное, это требует большого количества времени и, возможно, нервов. Поскольку придется перелопатить много политик.

Iska 11-11-2019 16:52 2895710

lcnet, спасибо, ясно.


Время: 20:12.

Время: 20:12.
© OSzone.net 2001-