如何使用WiX将交互式用户添加到本地化Windows中的目录?

nra*_*ray 4 windows-installer wix

如何添加瑞典交互式用户,

NT INSTANS\INTERAKTIV  
Run Code Online (Sandbox Code Playgroud)

或英语互动用户,

NT AUTHORITY\INTERACTIVE  
Run Code Online (Sandbox Code Playgroud)

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

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

Pau*_*nde 6

使用最新版本的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 ...>
Run Code Online (Sandbox Code Playgroud)