Wix RegistryKey Permission - PullRequest
       14

Wix RegistryKey Permission

1 голос
/ 12 февраля 2011

Я пытаюсь установить раздел реестра, который должен быть доступен только определенным пользователям. Все остальные части установщика работают (он устанавливает службу и регистрирует компонент). Вот фрагмент.

<Component Id="cmpXXX" Guid="{YYY}">
    <RegistryKey Root="HKLM" Key="Software\ZZZ" Action="createAndRemoveOnUninstall">
        <RegistryKey Key="Machine" Action="createAndRemoveOnUninstall">
            <Permission User="Administrators" GenericAll="yes" />
            <RegistryValue Type="string" Name="ID" Value="SecretID" />
            <RegistryValue Type="string" Name="Key" Value="SecretKey" />
        </RegistryKey>
    </RegistryKey>
</Component>

После завершения установки ключ могут прочитать все пользователи (а не только администраторы). Моя командная строка для установки такова:

msiexec /i installer.msi /l*v installlog.txt

В журнале ничего не говорится о разрешениях. Когда я открываю базу данных в Orca, в таблице LockPermissions отображается строка разрешения, и она выглядит нормально.

Что я делаю не так?

Ответы [ 2 ]

8 голосов
/ 15 февраля 2011

Кажется, он начал работать после того, как я добавил запись разрешения для каждого RegistryValue.

<Component Id="cmpXXX" Guid="{YYY}">
    <RegistryKey Root="HKLM" Key="Software\ZZZ" Action="createAndRemoveOnUninstall">
        <RegistryKey Key="Machine" Action="createAndRemoveOnUninstall">
            <Permission User="Administrators" GenericAll="yes" />
            <RegistryValue Type="string" Name="ID" Value="SecretID">
                <Permission User="Administrators" GenericAll="yes" />
            </RegistryValue>
            <RegistryValue Type="string" Name="Key" Value="SecretKey">
                <Permission User="Administrators" GenericAll="yes" />
            </RegistryValue>
        </RegistryKey>
    </RegistryKey>
</Component>

Но он имеет побочный эффект блокировки всего ключа Software \ ZZZ.Менее чем идеал, но я могу обойти это.

0 голосов
/ 10 августа 2015

Если вы создаете значения в нескольких компонентах или создаете промежуточные ключи (Software \ XXX и Software \ XXX \ YYY), убедитесь, что все они имеют дочерний элемент.

...