【问题标题】:Wix RegistryKey PermissionWix RegistryKey 权限
【发布时间】:2011-06-26 05:05:13
【问题描述】:

我正在尝试安装一个只能由某些用户访问的注册表项。安装程序的所有其他部分都有效(它安装服务并注册组件)。这是片段。

<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 表显示了权限行,看起来很好。

我做错了什么?

【问题讨论】:

    标签: security permissions wix registry wix3


    【解决方案1】:

    如果您在多个组件中创建值,或者您创建中间键(Software\XXX 和 Software\XXX\YYY),请确保所有 和 都有一个子元素。

    【讨论】:

      【解决方案2】:

      在我将权限条目添加到每个 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 密钥的副作用​​。不太理想,但我可以解决这个问题。

      【讨论】:

        猜你喜欢
        • 2011-09-11
        • 2012-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-31
        • 2019-01-17
        • 1970-01-01
        相关资源
        最近更新 更多