Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Как с помощью командой строки удалить приложение из системы

Ответить
Настройки темы
CMD/BAT - Как с помощью командой строки удалить приложение из системы

Аватара для Guman

Ветеран


Сообщения: 631
Благодарности: 58

Профиль | Отправить PM | Цитировать


Допустим у нас есть приложение, которое было установлено через 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
    )
  )
)
помогите разобраться...

Отправлено: 10:27, 30-09-2013

 

Аватара для Guman

Ветеран


Сообщения: 631
Благодарности: 58

Профиль | Отправить PM | Цитировать


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

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

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

Код: Выделить весь код
wmic product where name=’имя программы’ call uninstall
жмёшь ввод и вуаля


нужно исправить код с шапки кто может помочь
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:33, 30-09-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для sunnykey

Пользователь


Сообщения: 124
Благодарности: 47

Профиль | Отправить PM | Цитировать


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

-------
cmd умри, powershell живи=)
Powershel 4.0 microsoft.com/ru-ru/download/details.aspx?id=40855

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:50, 30-09-2013 | #3


Аватара для Guman

Ветеран


Сообщения: 631
Благодарности: 58

Профиль | Отправить PM | Цитировать


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

Отправлено: 14:54, 30-09-2013 | #4


Аватара для sunnykey

Пользователь


Сообщения: 124
Благодарности: 47

Профиль | Отправить PM | Цитировать


Цитата 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()
И больше ничего не надо.

-------
cmd умри, powershell живи=)
Powershel 4.0 microsoft.com/ru-ru/download/details.aspx?id=40855

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:16, 30-09-2013 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


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

Отправлено: 15:19, 30-09-2013 | #6


Аватара для Guman

Ветеран


Сообщения: 631
Благодарности: 58

Профиль | Отправить PM | Цитировать


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

Отправлено: 15:41, 30-09-2013 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Guman:
названия которых начинается с «Windows Live ID Sign-in Assistant» »
Код: Выделить весь код
wmic.exe Product where "Name LIKE 'Windows Live ID Sign-in Assistant%%'" call Uninstall

Отправлено: 15:52, 30-09-2013 | #8


Аватара для Guman

Ветеран


Сообщения: 631
Благодарности: 58

Профиль | Отправить PM | Цитировать


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ГИС%%'

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

Последний раз редактировалось Guman, 30-09-2013 в 16:39. Причина: сделатт

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:28, 30-09-2013 | #9


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


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

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

Отправлено: 18:17, 30-09-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Как с помощью командой строки удалить приложение из системы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Winnity — диалог выбора папки или файла из командой строки hb860 Скриптовые языки администрирования Windows 27 08-11-2012 04:19
Блог - Как удалить историю из адресной строки проводника Vadikan Microsoft Windows 7 0 08-02-2011 10:30
FAQ - как удалить адрес из командной строки в Opera10 и IE8 для Windows7 Gleban Сетевые технологии 0 27-02-2010 20:06
Интерфейс - [решено] Как удалить ненужные ссылки из адресной строки Internet Explorer? muslim Microsoft Windows 2000/XP 2 15-01-2008 13:54
Разное - [решено] Закрыть приложение из командной строки Alexx280 Microsoft Windows 2000/XP 3 01-08-2007 08:16




 
Переход