WiX v3.6 PermissionEx - 需要Sddl属性吗?

时间:2012-04-19 06:23:27

标签: wix wix3.6

真的?

我正在尝试做这样的事情 -

<PermissionEx
              User="Authenticated Users"
              GenericAll="yes"
              ServiceChangeConfig="yes"
              ServiceEnumerateDependents="yes"
              ChangePermission="yes"
              ServiceInterrogate="yes"
              ServicePauseContinue="yes"
              ServiceQueryConfig="yes"
              ServiceQueryStatus="yes"
              ServiceStart="yes"
              ServiceStop="yes" />

它正在给我

  

缺少必需的属性“Sddl”。

不熟悉Sddl。如何创建一个Sddl字符串以匹配上述权限?

2 个答案:

答案 0 :(得分:3)

PermissionEx是MSI 5.0的MsiLockPermissionsEx功能的标记,需要SDDL字符串。 WixUtilExtension中还有一个PermissionEx标记,它允许在所有版本的MSI上使用类似的功能。你使用前者的后者的属性。如果您需要PermissionEx的WixUtilExtension变体,请使用WixUtilExtension命名空间:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
...
<util:PermissionEx ... />

答案 1 :(得分:1)

使用API​​ ConvertSecurityDescriptorToStringSecurityDescriptor或按照MSDN文章Security Descriptor String Format中所述的格式在脑中进行处理。或者在网上寻找您需要的例子。