繁体   English   中英

使用wix安装程序创建注册表项

[英]Creating registry key with wix installer

我是wix的新手,但我必须将它用于一个项目。 我需要禁用用户更改密码的功能。 为此,我想添加/更改注册表项,但这不起作用:

<DirectoryRef Id="TARGETDIR">
    <Component Id="RegistryEntries" Guid="*">
        <RegistryKey Root="HKCU"
                     Key="Software\Microsoft\Windows\CurrentVersion\Policies\System"> 
            <RegistryValue Type="integer" Name="DisablePW" Value="1" KeyPath="yes"/>
            <RegistryValue Type="string" Value="Default Value"/>
        </RegistryKey>
    </Component>
</DirectoryRef>

在策略下,还没有系统密钥,所以我认为这会创建一个。

您永远不应该写入这样一个关键且受策略控制的Windows注册表项。

我的猜测是域控制器将通过组策略恢复这些设置:

...默认情况下,Microsoft Windows每90分钟刷新一次策略设置,随机30分钟偏移

事情当然也可以在登录脚本或其他一些管理功能中重置。

这不是解决方案 - 您的应用程序需要重新设计。 为什么你需要禁用用户改变密码的能力呢? 混淆这些设置是非常糟糕的做法。 Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\下的任何内容都不应该被搞乱。

永远不要忘记在Feature标记之间添加组件ID。 如果不是,它将不包含在安装程序中。

<Feature Id="DefaultFeature" Level="1">
         <ComponentRef Id="RegistryEntries"/>
</Feature>

PS:恕我直言和SO Wix中的其他答案应该只处理添加全新的注册表值(安装前不存在),因为在卸载时它们将被删除。 如果要修改或删除注册表项,请确保使用自定义操作(脚本,程序,批处理,.reg,...)来回滚此更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM