通过NSIS卸载时,Windows控制面板需要管理员权限

时间:2017-05-12 16:10:26

标签: windows registry nsis

我有一个NSIS安装程序/卸载程序,它只为当前用户安装应用程序。 HKCU中有注册表着作,以使应用程序出现在控制面板中。它运作得非常好。但是,当我尝试从控制面板卸载应用程序时,它会弹出管理员权限弹出框(AUC内容)并以管理员身份运行卸载程序。因此,HKCU与管理员帐户有关,而与用户帐户无关。通过这种方式,用户可以“卸载”管理应用程序!我需要允许用户在没有管理员权限的情况下卸载应用程序。

我已经在使用!include MultiUser.nsg等。我还注意到可以从用户级别的控制面板卸载一些随机/默认MS应用程序(不需要管理员权限),所以我知道这是可能的。

1 个答案:

答案 0 :(得分:1)

从旧的"程序和功能"卸载在经典控制面板中工作正常,没有UAC提示。我刚刚在Windows 10.0.16184上测试了这个:

If (IsNull(Forms!Order!OrderSubform.Form!txtDate_Of_Order.Value‌​)) OR Forms!Order!OrderSubform.Form!txtDate_Of_Order.Value‌​ <> "" Then 
    Forms!Order!OrderSubform.Form!txtDate_Of_Order.Enabled = False 
    Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Enabled = True 
    Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Value = True 
Else 
    Forms!Order!OrderSubform.Form!txtDate_Of_Order.Enabled = True 
    Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Enabled = False 
    Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Value = False 
End If

Julia Discourse

如果您在设置应用中执行相同操作,则会有Classic ARP known,即使对于HKCU卸载程序,它也会强制UAC提升: issue

设置应用中的这个问题已经存在了几年,我不认为微软关心。