Я пытаюсь написать пакетный скрипт, который будет искать реестр и добавить значение UninstallString в ключ в переменную.
Есть несколько предостережений:
1. Клавиши могут отличаться на разные рабочих станциях (в зависимости от используемого установщика, существуют несколько модифицированных версий MSI для samesoftware версии)
2. Существует основной продукт с заплатками, установленных
- . пластыри должны быть удалены, прежде чем основной продуктПакетный файл: поиск реестра и множество переменных
Например, программное обеспечение Cisco Supervisor Desktop может иметь следующие ключи:
Patch 3
KEY: HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall {981E3887-9D55-4B91-B643-7155AA98C906}
значение отображаемое_имя Desktop Services Cisco 8,5 (4) Maintenance Release 4 Engineering Special 6
значение UninstallString: MsiExec.exe/X {981E3887-9D55-4B91-B643-7155AA98C906}
Patch 2
KEY: HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall {4FA5AFA8 -FDEB-43C9- 83B7-43092593ACDF}
значение отображаемое_имя Desktop Services Cisco 8,5 (4) Maintenance Release 4 Engineering Special 4
значение UninstallString: MsiExec.exe/X {4FA5AFA8-FDEB-43C9-83B7-43092593ACDF}
Patch 1:
KEY: HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall {CA941834-837E-44C2-BF83-E7E7558FDD61}
Выводимое значение: Услуги Cisco Desktop 8.5 (4) Техническое обслуживание Выпуск 4
UninstallString значение: MsiExec.exe/Х {CA941834-837E-44C2-BF83-E7E7558FDD61}
Основной продукт:
Ключ: HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall
значение отображаемое_имя Cisco Supervisor Desktop
значение UninstallString: MsiExec.exe/X {AB60EBDC-45A9- 4764-96CB-EFCE4AD0C10B}
Их необходимо удалить в указанном порядке. Также существует вероятность того, что другие ключи будут в реестре, когда будут установлены несколько версий.
Я бы подумал, что для патчей можно использовать функцию поиска с использованием значения DisplayName для служб Cisco Desktop, поскольку для всех патчей это обычный поиск агента Cisco Supervisor.
В настоящее время у меня есть команды WMIC, но иногда они могут быть очень медленными для запуска, а если я вручную запустил значение UninstallString, оно будет завершено быстро. У меня также были экземпляры, когда команда WMIC не удаляет продукт, когда значение UninstallString будет.
Любая помощь будет оценена, если это возможно.
'reg' Служебный метод основан самый быстрый действительно, взгляните на [Как я могу автоматически удалить все программы, содержащие «VNC», в их отображаемом имени, используя пакетный файл?] (http://stackoverflow.com/a/33279973), если вы можете настроить его самостоятельно, – wOxxOm
Thank вы. Это, похоже, отлично подходит для поиска строк удаления. Знаете ли вы, как устроить удаленные объекты, чтобы они были удалены в определенном порядке? –
Я предполагаю, что может быть много способов. Например, вы можете создать «массив» со всеми целями удаления – wOxxOm