WIX:给予一个文件夹的权限

前端之家收集整理的这篇文章主要介绍了WIX:给予一个文件夹的权限前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经阅读了所有相关主题,还没有找到我的问题的完整答案。

我想给SYSTEM和Read& amp;执行用户组权限到程序文件下的文件夹。没有更多,没有更少。

我知道有三种方式可以使用WIX授予一个文件夹的权限,对于我来说,它们都不是很好,我会解释为什么:

1)常规许可要素:

<CreateFolder Directory="Test">
      <Permission User="SYSTEM" GenericAll="yes"/>
      <Permission User="Users" Domain="[LOCAL_MACHINE_NAME]" 
      GenericRead="yes" Read="yes" GenericExecute="yes" ChangePermission="yes"/>
    </CreateFolder>

问题:外部操作系统失败,因为它不知道“用户”关键字。我也尝试过SID。除了我需要将Permission元素放在Test目录下的每个文件(但如果这是唯一的情况,我将管理)

2)WixUtilsExtension PermissionEx元素:

<CreateFolder Directory="Test">
      <util:PermissionEx User="SYSTEM" GenericAll="yes"/>
      <util:PermissionEx User="Users" Domain="[LOCAL_MACHINE_NAME]" 
      GenericRead="yes" Read="yes" GenericExecute="yes" ChangePermission="yes"/>
    </CreateFolder>

问题:该文件夹还保留Program Files文件夹的默认权限。我不能允许

3)PermissionEx与Sddl:

问题:此元素仅在使用MSI 5.0进行安装时可用。我使用的是安装程序3.01。

我会很乐意获得任何解决方案,包括自定义操作的解决方案…

我有这个完全相同的问题,并与Rob M谈过。我要做基督徒G的答案( http://stackoverflow.com/a/5296967/18475),但是Rob建议使用WixQueryOsWellKnownSID( http://wix.sourceforge.net/manual-wix3/osinfo.htm)来查找非美国地区。

在.wxs文件中,添加以下内容

<PropertyRef Id="WIX_ACCOUNT_LOCALSYSTEM" />
<PropertyRef Id="WIX_ACCOUNT_USERS" />

进一步在.wxs文件中,您要应用权限,就像这样:

<Permission GenericAll="yes" User="[WIX_ACCOUNT_LOCALSYSTEM]" />
<Permission GenericRead="yes" GenericExecute="yes" User="[WIX_ACCOUNT_USERS]" />

现在当你运行光时,你只需要链接WixUtilExtension。

light -ext WiXUtilExtension ...

注意:根据您的WiX版本,可能不完全支持。如果它不适合您,可能还有其他选项可用于translate SIDs

猜你在找的Windows相关文章