如何添加瑞典交互式用户

NT INSTANS\INTERAKTIV  

或英语互动用户

NT AUTHORITY\INTERACTIVE  

或对程序文件夹的ACL具有写入权限的任何其他本地化用户组?

这个问题实际上是“如何使用 secureObject ”?我无法使用 LockPermissions表,因为我删除了未删除的继承。 secureObject 权限似乎需要 CreateDirectory 而不是目录 ......

有帮助吗?

解决方案

使用最新版本的Wix,您可以通过属性检索常用内置用户名和组名的本地化名称。例如, WIX_ACCOUNT_NETWORKSERVICE 包含网络服务帐户的本地化名称。不幸的是,从3.0.4513开始, NT AUTHORITY \ INTERACTIVE 不在其中。

存在一个示例MSI自定义操作,该操作为许多内置用户名和组名创建属性。 在此处获取。将CA添加到Wix安装程序并在安装执行序列的早期安排它。

获得本地化帐户名后,添加PermissionEx元素以修改目录的ACL。例如:

<Directory ...>
   <Component ...>
      <CreateFolder>
         <PermissionEx User="[SID_INTERACTIVE]" .../>
      </CreateFolder>
   </Component ...>
</Directory ...>

其他提示

无法将这两个帐户名添加到ACL中,因为它们是同一个。您看到的名称对应于SID,并且该英语和瑞典语本地化中的SID相同。对于INTERACTIVE组,该SID是 S-1-5-4

我很长一段时间没有关注过WiX,但我希望有一种方法可以为ACL而不是帐户名指定SID。除非绝对无法避免,否则您永远不应该依赖知名帐户的帐户名称。以下是众所周知的SID列表供参考。

编辑:这篇文章似乎为您的问题提供了一个解决方案,使用自定义操作将SID转换为帐户名称 - 显然,WiX并不是使用SID进行Permission或PermissionEx对象的开箱即用支持。

以下是 Microsoft知识库的Q243330

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top