如何添加瑞典交互式用户
NT INSTANS\INTERAKTIV
或英语互动用户
NT AUTHORITY\INTERACTIVE
或对程序文件夹的ACL具有写入权限的任何其他本地化用户组?
这个问题实际上是“如何使用 secureObject ”?我无法使用 LockPermissions表,因为我删除了未删除的继承。 secureObject 权限似乎需要 CreateDirectory 而不是目录 ......
答案 0 :(得分:6)
使用最新版本的Wix,您可以通过属性检索常用内置用户名和组名的本地化名称。例如,WIX_ACCOUNT_NETWORKSERVICE
包含网络服务帐户的本地化名称。不幸的是,从3.0.4513开始NT AUTHORITY\INTERACTIVE
不在其中。
存在一个示例MSI自定义操作,该操作为许多内置用户名和组名创建属性。 Get it here。将CA添加到Wix安装程序并在安装执行序列的早期安排它。
获得本地化帐户名后,添加PermissionEx元素以修改目录的ACL。例如:
<Directory ...>
<Component ...>
<CreateFolder>
<PermissionEx User="[SID_INTERACTIVE]" .../>
</CreateFolder>
</Component ...>
</Directory ...>
答案 1 :(得分:4)
无法将这两个帐户名添加到ACL中,因为它们是同一个。您看到的名称对应于SID,并且该英语和瑞典语本地化中的SID相同。对于INTERACTIVE小组,该SID为S-1-5-4
。
我很长一段时间没有关注过WiX,但我希望有一种方法可以为ACL而不是帐户名指定SID。除非绝对无法避免,否则您永远不应该依赖知名帐户的帐户名称。这是一个list of well-known SIDs供参考。
编辑:This post似乎使用自定义操作将SID转换为帐户名称来解决您的问题 - 显然,WiX并不是使用SID进行Permission或PermissionEx对象的开箱即用支持。
以下是Microsoft知识库Q243330中众所周知的SID的权威列表。