![为什么 regedit 会显示不正确的值?](https://linux22.com/image/1374288/%E4%B8%BA%E4%BB%80%E4%B9%88%20regedit%20%E4%BC%9A%E6%98%BE%E7%A4%BA%E4%B8%8D%E6%AD%A3%E7%A1%AE%E7%9A%84%E5%80%BC%EF%BC%9F.png)
我开发的一个应用程序将数据库连接字符串存储在注册表中。我通过 regedit 更改了该值以指向不同的数据库。我的应用程序仍然在获取旧值。我确信我做错了什么,因此检查了代码,重新启动,搜索了注册表以验证没有其他同名的键。毫无进展。我甚至删除了该键,重新启动,我的应用程序仍然能正常读取该值。
然后我使用 PowerShell 列出值(通过 Get-ItemProperty),结果也显示了旧值。使用 Set-ItemProperty 更新值,然后我的代码成功获取了该值。但是,regedit 仍然显示旧数据。甚至让另一位开发人员和一位系统工程师查看了情况,以进行完整性检查。没有主意。
知道为什么 regedit 似乎没有显示与 Get-ItemProperty 相同的信息吗?
答案1
事实证明,regedit 未显示或修改与 PowerShell 相同的信息的原因是,当时我不知道,我是从 c:\Windows\SysWOW64 运行 regedit,而不是从 c:\Windows 运行。
答案2
所以它不只是读取 HKLM\Software\Wow6432Node 中的内容?还运行 C:\Windows\SysWOW64\Odbcad32.exe,看看它是否从那里获取设置。