Фактическое решение (после отладки):
Выполнение: C:\ProgramData\Package Cache{Product-GUID}\ProductSetup.exe /uninstall /quiet
Дублирующая установка : Возможно, у вас есть дублирующая установка.Если вы случайно не оставили апплет «Установка и удаление программ» открытым во время удаления, в этом случае вы должны закрыть и снова открыть его, чтобы убедиться, что запись все еще присутствует.
«Шум» : у вас также может быть проблема с наличием слишком большого количества пакетов, чтобы увидеть, что ваш setup.exe установлен как два отдельных файла MSI.Чтобы предотвратить это, протестируйте чистый виртуальный компьютер и проверьте список «Установка и удаление программ» для других связанных записей.
Код продукта : Вы можетенайти коды продуктов и названия продуктов для всех установленных продуктов , используя один из методов, описанных здесь: Как найти GUID продукта с установленной установкой MSI? Возможно, попробуйте использовать однострочную оболочку PowerShell или VBScript.
Откат : обратите внимание, что MSI может откатить удаление, если пользовательское действие завершится неудачно во время выполнения.деинсталляция.Это означает, что откат становится переустановкой или, по крайней мере, восстановлением удаленных файлов.Таким образом, в этом сценарии похоже, что удаление выполнено, но продукт был восстановлен из-за сбоя настраиваемого действия.Таким образом, удаление никогда не «фиксируется».
Удаление : И вот несколько способов удаления пакетов MSI: Удаление файла MSI изкомандная строка без использования msiexec .Когда вы удалите все записи, я ожидаю, что запись ARP исчезнет.Это ваш собственный пакет?Дублирующие установки очень распространены в таких случаях, как побочный продукт циклов быстрого тестирования.
Упакованные GUID : GUID, которые вы найдете в реестре:обычно упакованы или, другими словами, не отформатированы так же, как в MSI.
Пример преобразования GUID:
HKEY_CLASSES_ROOT\Installer\Products
Packed GUID: 0076C0A639AEC2738817CDFC311D064A
Normal GUID: {6A0C6700-EA93-372C-8871-DCCF13D160A4}
Вот более подробная информация:
Последняя ссылка имеет VBScript для преобразования PackedИдентификаторы GUID для обычных идентификаторов GUID.
LocalPackage : при установке MSI во всех системах кэшируется локальный пакет.Он будет расположен в %SystemRoot%\Installer
.Вы можете использовать это, чтобы найти файл, и затем вы можете щелкнуть его правой кнопкой мыши в проводнике Windows и выбрать «Удалить».
Идея здесь состоит не в том, чтобы использовать это в качестве основного подхода, а для определенияесли есть скрытый MSI, который вам также нужно удалить, чтобы избавиться от всего, что происходит с ARP.
Вот сценарий VBScript, показывающий путь LocalPackage (создайте файл сценария VB вРабочий стол, сохранение и двойной щелчок. Ищите выходные данные msiinfo.csv
- двойной щелчок и импорт в Excel или аналогичный файл или блокнот):
' Retrieve all ProductCodes (with ProductName and ProductVersion)
Set fso = CreateObject("Scripting.FileSystemObject")
Set output = fso.CreateTextFile("msiinfo.csv", True, True)
Set installer = CreateObject("WindowsInstaller.Installer")
output.writeline ("Product Code,Product Name,Product Version,Local Package")
On Error Resume Next ' we ignore all errors
For Each product In installer.ProductsEx("", "", 7)
productcode = product.ProductCode
name = product.InstallProperty("ProductName")
version=product.InstallProperty("VersionString")
local=product.InstallProperty("LocalPackage")
output.writeline (productcode & ", " & name & ", " & version & ", " & local)
Next
output.Close
Подобные ответы :