Okay. I didn't find any obvious article in MSDN, but what I did in the end was 
to take an MSI with the behaviour I wanted (i.e. in the LockPermissions table) 
and de-compile it using Dark. That got me the following WiX snippet:

<Permission User="Authenticated Users" Read="yes" ReadPermission="yes" 
EnumerateSubkeys="yes" Notify="yes"/>

If I try this in my WiX code, it works fine - I see that the "Authenticated 
Users" group has the general "Read" permission set correctly.

However, the above snippet is using the built-in "Permission" element and I 
actually want to use the WixUtilExtension "PermisssionEx" element so that I can 
get support for the localisation of group names such as "Authenticated Users". 
So in my WiX, I try the following snippet:

<util:PermissionEx User="AuthenticatedUser" Read="yes" ReadPermission="yes" 
EnumerateSubkeys="yes" Notify="yes"/>

In other words, I'm simply changing the element name but keeping all of the 
element attributes the same. I would have expected the end result to be the 
same, but it isn't. Something strange has happened to the ACLs regarding 
inheritance. The differences are:


-          If I use the standard Permission element, the ACLs on my key are 
exactly what I specify in the WiX file, plus full control for the System 
account which MSI always adds. If I use the PermissionEx element, then as well 
as adding my permissions, my key inherits all of the permissions from its 
parent (not what I want).

-          If I use the standard Permission element, the "Authenticated Users" 
group has the general "Read" permission (great). If I use PermissionEx, the 
"Authenticated Users" group is shown as having "Special" permission. Drilling 
down into the advanced view, it's clear that the permissions for "Authenticated 
Users" apply only to my key and not to its sub-keys. If I manually change the 
permissions in regedit so that they apply to "This key and subkeys" then 
suddenly I have the behaviour that I want, and the general permission changes 
from "Special" to "Read".

So I have some questions:


-          Am I missing something with "PermissionEx"? Do I have to specify 
some magic attribute to make it behave in the same way (inheritance-wise) as 
"Permission"?

-          If not, is it a bug that the two end results are different with 
identical WiX? Or is that just the way PermissionEx works?

Thanks!

Mike

>The PermissionEx element map directly to the ACLs that you can set on a
>registry key. Check MSDN to see the right combination for "read" of a
>registry key (it's probably not just "Read" but also includes "Enumerate
>Subkeys" or something).
>
>Michael Bednarek wrote:
>
>> Hi all,
>>
>> I am using the WiX 3.0 PermissionEx element with a RegistryValue element and 
>> would like to give the "Authenticated Users" group the KEY_READ permission, 
>> i.e. I would like to be able to see the "Read" checkbox ticked when I view 
>> the permissions for the value in regedit. Which PermissionEx attribute 
>> should I use to get this particular ACL?
>>
>> At the moment I am using the following:
>>
>> <util:PermissionEx User="AuthenticatedUser" Read="yes" />
>>
>> However, what I see in regedit is that the "Read" checkbox is not ticked, 
>> and instead the "Authenticated Users" group has a special permission called 
>> "Query value". Should I be using one of the other attributes?
>>
>> Thanks!
>>
>> Mike Bednarek

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables 
unlimited royalty-free distribution of the report engine 
for externally facing server and web deployment. 
http://p.sf.net/sfu/businessobjects
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to