Windows installer 在Vista/Win 7上卸载链接msi时出现错误1730(需要管理员权限)

Windows installer 在Vista/Win 7上卸载链接msi时出现错误1730(需要管理员权限),windows-installer,installshield,uninstallation,chained,admin-rights,Windows Installer,Installshield,Uninstallation,Chained,Admin Rights,我在Installshield 2012中使用基本MSI创建了一个安装 我正在使用链式MSI技术(Windows installer 4.5及更高版本支持) 我的安装由一个主MSI(在Setup.exe中)和几个较小的MSI包构成,这些包链接到主MSI上 在XP上,它就像一个符咒。我可以很好地安装它,当我想卸载它时,我只是选择卸载主MSI,它会自动删除所有链接的MSI 但是,在Vista和Windows 7上,我在卸载时遇到了用户权限问题 当我选择卸载主MSI时,它会在没有进一步通知的情况下关闭

我在Installshield 2012中使用基本MSI创建了一个安装

我正在使用链式MSI技术(Windows installer 4.5及更高版本支持)

我的安装由一个主MSI(在Setup.exe中)和几个较小的MSI包构成,这些包链接到主MSI上

在XP上,它就像一个符咒。我可以很好地安装它,当我想卸载它时,我只是选择卸载主MSI,它会自动删除所有链接的MSI

但是,在Vista和Windows 7上,我在卸载时遇到了用户权限问题

当我选择卸载主MSI时,它会在没有进一步通知的情况下关闭。检查MSI日志文件,当它尝试卸载第一个链接的MSI时,我可以看到以下内容:

错误1730。您必须是管理员才能删除此应用程序。要删除此应用程序,您可以以管理员身份登录,或联系您的技术支持小组寻求帮助。

我猜,由于是主MSI在链式MSI上调用卸载字符串,因此提升权限时不会发生这种情况(即使我已将Setup.exe设置为需要管理员权限,这也是一项要求)

所以我现在的问题是-有没有办法绕过这个问题-InstallShield的隐藏角落中是否有一些我需要设置的标志以使其正常工作

现在的临时解决办法是手动卸载每个链接的MSI包,然后最终卸载主MSI,但这不是一个可靠的解决方案。禁用UAC也不是一个选项


我希望你能提供帮助,因为我完全不知道这个问题,我的谷歌搜索也得到了一些有用的东西。

我无法直接帮助解决“卸载链接安装程序”问题,因为我自己不使用链接。我知道很多人对链结技术有问题,我也不知道有人对链结技术感到满意

因此,对我来说,它不是一种用于编写防弹设置的成熟技术。如果使用引导程序或编写自己的setup.exe,按顺序安装所有msi文件,则您可以完全控制。根据您的完美要求,这可能需要付出很大的努力,但是“一堆”安装和卸载应该不会那么困难。 我没有使用WiX的“burn”,但我知道它存在。也许其他人知道这里是否值得推荐

至少尝试使用引导程序进行卸载。您现有的一个或一个新的:只是一个小的.exe,你放在“卸载”项下的注册表下的ARP。它只需调用一行中的所有MSI卸载。可以是五班轮


虽然没有链锁那么漂亮,但已经为数千人工作了多年:-)很好的老技术。

事实上,解决方案很简单,但不太面向用户。在安装和卸载过程中会出现新的/qb对话框窗口。
对于链式MSI,您必须将安装用户界面从无(/qn)更改为基本(/qb),因为主MSI不会将管理员权限传递给自己的链式MSI,并且在启用UAC的情况下,在隐藏模式下会导致错误

另外,我建议您参考链接MSI的白皮书,它描述了许多稀薄的时刻。

您是否使用数字证书在软件包上签名?我记不清是什么行为,但我知道这至少有助于消除链接时对一些额外UAC提示的需要。不,目前我没有签署我的包。我可以试试看它是否能解决这个问题。谢谢你的建议。你设置了MSIDEPLOYMENTCOMPLIANT属性了吗?嗯,看起来很有趣。。我不知道那笔财产。这个星期一我要试一试。谢谢:)克里斯托弗的意思可能是,设置该属性可能会导致无法使用UAC,因此可能是此处失败的原因。如果在摘要信息中设置UAC标志,则相同。这意味着,此设置/标志通常与您对它的理解或作为新用户想要的相反。