GPP 和 Windows7 注册表 VirtualStore

GPP 和 Windows7 注册表 VirtualStore

我有一个 XP 应用程序,它有许多通过 GPP 设置的键,否则它会提示用户手动输入此信息。这些信息写入 HKEY_LOCAL_MACHINE\SOFTWARE\AppX

在 Windows7 机器上,此 GPP 无效。如果我运行应用程序并手动输入信息,它会写入 HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\AppX。

如果我添加新的 GPP,并使用手动过程中设置的相同信息写入,则应用程序无法加载密钥,并且直到我删除 GPP 密钥并手动输入信息后才会启动。如果我删除密钥并运行导出的 reg 文件,它就可以正常工作。

我有什么选择可以让它工作?带有 reg 文件的登录脚本?如果这是开发人员在构建 exe 时需要更改的内容,我应该要求什么?

答案1

如果这些确实是针对每个用户的设置,那么应用程序开发人员应该将它们存储在 HKEY_CURRENT_USER 中。这是最好的答案,如果你能得到它,那就努力争取吧。

当您说“在 Windows7 计算机上,此 GPP 无效”时,我不清楚您的意思。组策略首选项能够使用 GPO 的“计算机配置”部分中指定的注册表设置来设置 HKEY_LOCAL_MACHINE 下的值。您是说您在适用于 Windows 7 计算机的 GPO 中拥有 GPP 设置,但计算机没有将设置写入注册表中的适当位置吗?

至于删除每个可能已经拥有虚拟化注册表项的用户,我会在适用于用户的策略中使用 GPP 来删除这些值。

编辑:

哇哦。我刚刚看到你问题中的“Wow6432Node”。你同时遇到了两件不同的事情。

您的 GPP 可能正在将密钥写入HKEY_LOCAL_MACHINE\SOFTWARE\AppX。但是,根据您向用户显示的虚拟化密钥,该应用程序似乎是 32 位程序。在这种情况下,在 64 位 Windows 7 计算机上,您的 GPP 需要将密钥写入HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\AppX。您可以使用项目级别定位和 上的“注册表匹配”将这些注册表项的范围限定为 64 位客户端HKEY_LOCAL_MACHINE\Software\Wow6432Node

相关内容