【问题标题】:Wix installed files elevate permissionsWix 安装文件提升权限
【发布时间】:2013-03-21 16:50:31
【问题描述】:

我有一个WiX 项目,它在位于ProgramFiles 的文件夹中安装了一些可执行文件和库。

运行这些可执行文件之一时会出现问题。其中一些需要作为Administrator 执行才能完成它应该完成的所有任务。如果我右键单击它并以管理员身份运行它,它运行良好。但我希望 WiX 自行提升对我文件的权限。

有什么办法吗?

我试过这样做:

<Package Id="$(var.GUID_Package)"
         InstallPrivileges="elevated"
         InstallScope="perMachine" ...>

还有:

<Property Id="MSIUSEREALADMINDETECTION" Value="1" />

但这两个选项仅适用于.msi 包(不适用于已安装的文件)。

注意:我想我没有正确解释自己...我的问题出在我安装的文件的权限上。由于权限,我无法正确执行它们。当我以管理员身份运行它们时,显然,所有权限都可以正确执行。所以我必须做的是更改每个我遇到问题的文件的权限。

【问题讨论】:

    标签: installation wix wix3.5 vdproj


    【解决方案1】:

    您在安装程序中执行的任何操作都无法解决此问题。

    如果 exe 正在执行一次性设置,例如修改 Prog 文件目录中的文件/文件夹,考虑将其移动到 wix 安装程序中。

    如果每次运行都会发生这种情况,您将需要确定它在做什么,并尝试进行更改,以便它以不需要提升的方式进行。如果不可能,恐怕您将不得不提升。解决此问题的唯一其他方法是将本地计算机策略设置为 automatically elevate for administrators

    【讨论】:

    • 该 exe 正在修改 Prog 文件目录中的文件,但在我创建的文件夹中。而且我需要将我的程序安装在 ProgramFiles 文件夹中,因此我需要以某种方式在执行某些文件时提升它们的运行权限。
    • 正确的做法是将用户可修改的文件放在用户控制的文件夹中,而不是放在 Program Files 中。在 Win7 中,即 C:\Users\\AppData\... 。其他版本的 Windows 有自己的用户数据位置。它们可由标准环境变量 %APPDATA%、iirc 引用。
    【解决方案2】:

    您可以选择将您的 msi 转换为 exe,当用户执行 exe 时,它​​会提示用户以管理员身份运行。

    我正在使用dontnetinstaller,它运行良好。

    【讨论】:

      【解决方案3】:

      对于那些可能感兴趣的人,我找到了解决方案。

      起初,我在我的 .wxs 项目中添加了对 WixUtilExtension 的引用,您可以在 WiX 文件夹中找到它。

      您也可以像这样将其添加为外部引用:

      xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
      

      之后,我可以在本地使用PermissionEx

         <File Id="$(var.productFamily)$(var.productSummary)"
            Name="$(var.productFamily)$(var.productSummary).exe"
            DiskId="1" KeyPath="yes"
            Source="$(var.release)$(var.productFamily)$(var.productSummary).exe" >
            <util:PermissionEx User="Everyone" GenericAll="yes" ChangePermission="yes" />
        </File>
      

      这样我可以提升他们的权限。

      【讨论】:

      • 这并不能解决问题。这只是授予每个人编辑您的可执行文件的访问权限,包括删除它。这首先违背了保护的目的。 (注意:我没有给你投反对票,但我倾向于同意这个人)。
      • 但实际上它解决了问题。我有读/写权限问题,因此,我可以读/写,然后正确执行它。那是我的问题,它解决了。
      • 那么,我预计大多数人会争辩说您的应用程序不是为在 Windows Vista+ 上工作而设计的。您所做的是打开您的应用程序以进行黑客攻击。大多数公司和管理者会不高兴。 :)
      猜你喜欢
      • 2012-02-02
      • 1970-01-01
      • 1970-01-01
      • 2019-01-17
      • 2016-06-05
      • 2020-01-02
      • 2015-02-17
      • 2016-06-05
      • 1970-01-01
      相关资源
      最近更新 更多