【问题标题】:.msi file asks for admin rights in "asInvoker" requestedExecutionLevel.msi 文件在“asInvoker”requestedExecutionLevel 中请求管理员权限
【发布时间】:2019-01-31 10:29:22
【问题描述】:

到目前为止,我有一个 Windows 应用程序项目,执行级别设置为“requireAdministrator”,但我想更改此设置,以便非管理员用户可以使用该应用程序。我在 app.manifesto 文件中设置了这个(代码如下)

但是当我从非管理员用户那里尝试项目时,它仍然要求管理员权限。

我也尝试了最高可用,但仍然是同样的故事。

有人知道我做错了什么吗?

<requestedExecutionLevel  level="asInvoker" uiAccess="false" />

【问题讨论】:

  • 作为答案,存在三种可能的提升上下文:启动安装引导程序、启动安装和启动已安装的可执行文件。清单仅适用于外部两个;中间由 Windows Installer 设置控制。请说明您要解决的问题。
  • @MichaelUrman 我想要的是启动安装引导程序。我的应用程序无法从没有提升权限的用户帐户启动。如果我的客户在他的笔记本电脑上有用户帐户,他无法从 Windows Installer 设置更改组策略中的任何内容以安装具有提升权限的所有内容,因为这也需要管理员权限。我希望我的应用可以安装在任何类型的帐户上,包括用户帐户,因为现在我只需要拥有管理员权限。
  • 要么我看错了,要么你的评论不同意原来的问题。如果应用程序需要提升,那么允许它在没有提升的情况下安装是没有意义的(尽管允许引导程序启动非提升可能会很好)。如果应用不应该需要提升,那么可能允许每个用户安装(参见例如helpnet.flexerasoftware.com/installshield24helplib/helplibrary/…),并确保所有可启动的exe都显示出来asInvokerhighestAvailable。如需更多可操作的建议,请澄清您的问题。

标签: windows-installer


【解决方案1】:

应用程序清单:你在哪里添加这个?在 app.manifest 为应用程序打包之前?这将影响 application.exe 文件本身 - 只要您实际重新编译二进制文件并正确嵌入清单。它不会影响 MSI。

按用户安装:如果您将 MSI 创作为支持 per-user installation,则它只能在没有管理员权限的情况下安装。换句话说,您需要编写整个 MSI 以与每用户安装兼容。在大多数情况下,这需要对 MSI 进行大量设计更改,而我总体上不喜欢这个概念。 MSI 通常是为每台机器安装而设计的,每用户的概念和机制具有反模式行为恕我直言的方面。但是,这里有一些关于该主题的链接:


MSIX:本质上,我不推荐这种按用户的方法。可以使用其他安装技术吗?块 MSIX 上的新孩子默认为每个用户安装。我不是专家,但 Advanced Installer 的 Bogdan Mitrache 是并且已经写了对这项新技术的精彩总结:MSIX Tutorial: A comprehensive 24-chapter guideOne of his recent answers on MSIX.

AppV:还有AppV - 目前许多公司用于应用程序部署的虚拟包。冠军(Kahuna)这里是Tim Mangan


一些链接

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    • 2011-09-19
    相关资源
    最近更新 更多