【问题标题】:silent uninstall msi package command WITHOUT administrative rights无管理权限的静默卸载 msi 包命令
【发布时间】:2013-03-17 15:12:28
【问题描述】:

我正在尝试从我的 Visual Studio 项目中卸载一个程序,但这似乎要求我以管理员身份运行 vs....所以我尝试从 cmd 执行此操作以对其进行调试。

我已经设法从 cmd 使用此命令卸载 msi 安装项目安装:

msiexec /x {3A40307D-6DF2-4412-842F-B1D848043367} /quiet ,但这仅在我以管理员身份启动 cmd 时有效,没有管理员权限,它不会卸载。我做错了什么,还有其他方法可以得到我想要的结果吗?

我希望能够静默卸载应用程序,而无需要求用户以管理员身份登录。

编辑:

这是日志的结果:

错误 1001。错误 1001。无法删除文件 C:\ProgramData\XXX.InstallState。 调试:错误 2769:自定义操作 _F6174138_B428_4AB6_9FEF_C4DD7A69BDC0.uninstall 未关闭 1 个 MSIHANDLE。 安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码为 2769。参数为:_F6174138_B428_4AB6_9FEF_C4DD7A69BDC0.uninstall, 1, CustomAction _F6174138_B428_4AB6_9FEF_C4DD7A69BDC0.uninstall 返回实际错误代码 1603(请注意,如果在沙箱内进行翻译,这可能不是 100% 准确) 操作于 17:54:40 结束:InstallExecute。返回值 3。 行动于 17:54:40 结束:安装。返回值 3。 MSI (s) (F0:3C) [17:54:40:355]:产品:XXX -- 删除失败。

【问题讨论】:

    标签: c# .net visual-studio-2010 windows-installer setup-project


    【解决方案1】:

    日志文件中的错误表明自定义操作正在崩溃。您需要调查该问题的根本原因。我的猜测是自定义操作需要提升(管理员权限)才能正常工作,但没有标记为延迟(即在 MSI 提升的部分运行)。

    如果您从“添加/删除程序”(程序和功能)卸载 MSI,则不应提示您输入提升的凭据。因此,根本问题可能是这个自定义操作。

    【讨论】:

    • 你是对的,它确实需要管理权限才能工作,我正在使用自定义操作在安装后为应用程序创建快捷方式。如何解决这个问题?删除自定义操作或是否有任何选项使其不需要管理员权限?
    • 为什么要通过自定义操作创建快捷方式? Windows 安装程序支持创建快捷方式。除此之外,要求海拔纯粹是您的安装要求的功能。如果要安装到 perMachine 位置,则需要提升。只安装到每个用户的位置,你可以避免它。
    • 在设置中,我有一个选项供用户选择是否创建快捷方式,我不知道我应该如何让安装程序根据用户选择的内容来执行此操作而无需自定义操作.如果您有任何想法,请告诉。
    • 调节您的组件。
    • 对不起,我不明白你的真正意思是条件你的组件=/
    【解决方案2】:

    您在这里似乎有几个选择。所有这些都需要创建一个从一开始就不需要管理员权限的 msi。如果 msi 从一开始就需要它们(例如,您无法控制 msi 的创建),则无法绕过它。这完全取决于正在编辑的文件是否真的需要管理员权限。看看这个答案:How can I create a windows installer MSI that does not require admin access

    【讨论】:

      猜你喜欢
      • 2022-10-18
      • 1970-01-01
      • 1970-01-01
      • 2011-07-01
      • 1970-01-01
      • 2016-01-14
      • 2013-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多