我有一个将被部署为MSI包的应用程序(在WiX中创作)。
我决定是否指定安装程序所需的elevated
或limited
权限。
除默认安装位置(位于Program Files下)外,应用程序不包含任何需要提升权限的内容。
现在出现问题:
如果我指定提升的权限,则安装过程中UAC会提示用户输入管理员密码。这不是必需的,可以防止非管理员用户安装。
如果我指定有限权限,则会向用户显示一个对话框,用于选择默认为Program Files
的安装位置。如果他们不更改安装位置(95%的最终用户可能不会),则安装程序将失败并显示一条消息,他们应该联系管理员或以管理员身份运行应用程序。如果他们以管理员身份启动安装程序,那么他们可以毫无问题地安装到Program Files中 - 但大多数用户可能不知道如何以管理员身份启动安装程序。
我可以将默认安装位置设置为例如C:\公司名称\ Program \,但这对我来说似乎是非标准的,大多数用户可能不喜欢这样(它们可能用于安装到Program Files中)。
如何在有限的用户帐户下安装应用程序来解决此问题?
答案 0 :(得分:6)
您建议的备用位置,直接位于C盘之外,可能还需要提升权限。在Windows 7之前,我建议使用早期自定义操作来更改有限安装的默认位置。将其置于Privileged
(或可能AdminUser
)属性之外,验证是否需要为您的案例设置MSIUSEREALADMINDETECTION
,并使用[LocalAppDataFolder]Company\Product
之类的内容。不幸的是,这种方法会导致难以为所有用户安装包,因为您必须预先提升,并且在有限的情况下,他们仍然可以选择需要提升的目标位置。它们必须预先提升,因为包装必须标记为不升高。
如果您可以仅针对Windows 7及更高版本,则可以有条件地设置MSIINSTALLPERUSER
以覆盖安装位置和高程要求,而是安装每个用户。在这种情况下,可以询问用户是为所有用户安装(需要提升)还是仅为他自己安装。可以将包标记为提升,设置MSIINSTALLPERUSER
将覆盖该提示并跳过UAC提示。
答案 1 :(得分:3)
使用普通用户权限运行软件可能更为重要 - 我发现你提到的这不是问题。
要求管理员安装某些东西没有错。
要么,出于安全原因,用户将自行获取详细信息,或者软件将由公司的IT部门安装。
答案 2 :(得分:-2)
以管理员身份运行命令提示符(cmd)。
然后使用msiexec命令执行msi文件。