4

如何添加瑞典互动用户,

NT INSTANS\INTERAKTIV  

或英语互动用户,

NT AUTHORITY\INTERACTIVE  

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

这个问题实际上是“我如何使用secureObject ”吗?我无法使用LockPermissions 表,因为我不知道继承已被删除。secureObject权限似乎需要CreateDirectory而不是Directory ...

4

2 回答 2

6

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

存在为许多内置用户和组名称创建属性的示例 MSI 自定义操作。 在这里得到它。将 CA 添加到您的 Wix 安装程序并在安装执行序列的早期安排它。

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

<Directory ...>
   <Component ...>
      <CreateFolder>
         <PermissionEx User="[SID_INTERACTIVE]" .../>
      </CreateFolder>
   </Component ...>
</Directory ...>
于 2008-10-04T17:57:24.283 回答
4

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

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

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

这里是微软知识库Q243330中更权威的知名 SID 列表。

于 2008-10-04T11:59:22.183 回答