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

Аватара пользователя
Guman

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

Сообщение Guman »

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

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

Сообщение Guman »

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


читать дальше »




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





Код:

Код: Выделить всё

wmic product get name

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





Код:

Код: Выделить всё

wmic product where name=’имя программы’ call uninstall

жмёшь ввод и вуаля





нужно исправить код с шапки кто может помочь
Аватара пользователя
Iska

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

Сообщение Iska »

ни чего полезного там не увидел..

Может поподробнее расскажешь сам??
Аватара пользователя
Iska

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

Сообщение Iska »

Цитата Guman:



ни чего полезного там не увидел..

Может поподробнее расскажешь сам??
CMD/BAT - Как с помощью командой строки удалить приложение из системы




Зачем перебирать реестр? Тот же эффект даст использования 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()

И больше ничего не надо.
Аватара пользователя
sunnykey

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

Сообщение sunnykey »

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

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

Сообщение Guman »

ни чего полезного там не увидел..

Может поподробнее расскажешь сам??
Аватара пользователя
sunnykey

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

Сообщение sunnykey »

Цитата Guman:



названия которых начинается с «Windows Live ID Sign-in Assistant»
CMD/BAT - Как с помощью командой строки удалить приложение из системы






Код:

Код: Выделить всё

wmic.exe Product where "Name LIKE 'Windows Live ID Sign-in Assistant%%'" call Uninstall
Аватара пользователя
Iska

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

Сообщение Iska »

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

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

Сообщение Iska »

Цитата Guman:



Насчет '2ГИС%%' додумался переименовать в '%%2ГИС%%'
CMD/BAT - Как с помощью командой строки удалить приложение из системы




Верно.




Цитата Guman:



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




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

Вернуться в «Скриптовые языки администрирования Windows»