2016-06-28 4 views
0

Я знаю место установки программы, установленной через MSI. Я хочу написать сценарий, который удалит его. Я не знаю GUID, поскольку он часто меняется. Как достичь этой цели?Удалите программу, установленную через MSI, - знайте только место установки

Я проверил command line options для инструмента установки, но я не видел ничего, что позволило бы мне указать место установки, чтобы выбрать продукт.

+2

Предполагая, что вы можете написать код для этого, вы можете попробовать методы, которые я охватываемые [над здесь] (HTTP: // StackOverflow. ком/а/37591273/89999). –

ответ

2

Вам нужно будет найти UpgradeCode (посмотрите в файле журнала установки для этого свойства).

Оттуда используйте MsiEnumRelatedProducts для перебора всех экземпляров продукта. Подавляющее большинство продуктов не поддерживают установки с несколькими экземплярами, поэтому в буфере должен быть только один код продукта.

После того, как вы знаете ProductCode, вы можете msiexec /x {PRODUCT-GUID} до вашего сердца.

Если вам не удобно с C++, вы можете найти различные реализации MsiEnumRelatedProducts в расширениях PowerShell и библиотеках C#, чтобы назвать несколько.

1

Вы можете найти код продукта, как это: How can I find the product GUID of an installed MSI setup? и вызвать деинсталлировать с помощью: msiexec.exe/х {продукт-Guid-здесь}

Есть много способов удаления файла MSI, вот 13 различных способов: Uninstalling an MSI file from the command line without using msiexec. Ознакомьтесь с разделом 5, чтобы удалить продукт по имени продукта с помощью PowerShell.

Вот VBScript, который удаляет читая детали продукта из реестра: http://www.symantec.com/connect/downloads/uninstall-application-using-guid-registry