Windows Vista/7 注册表问题

Windows Vista/7 注册表问题

我被赋予了一项任务,即修改一个批处理文件,用于安装我们的软件,该文件会设置某些注册表值。修改与 Windows XP 和 Windows Vista/7 之间的注册表差异有关。显然,在较新的操作系统中,存在某种“影子注册表”,其中包含的注册表数据可能与主注册表不同步?我找不到有关此的任何信息。

这可能是指 Vista/7 中注册表的事务性质吗?简单的“提交”能解决这个问题吗?如果可以,那么它的语法是什么?

编辑:

我所说的“语法”是指在批处理文件中执行此操作的语法?即,我添加了键/值,哪个命令将“提交”事务?

答案1

Windows Vista / 7 上有一个虚拟注册表,它主要用于兼容性,因为这些操作系统已经改变了将安全性应用于注册表的方式,并且是针对每个用户的。

“在 Windows Vista 之前,许多应用程序通常由管理员运行。因此,应用程序可以自由读取和写入系统文件和注册表项。如果这些应用程序由标准用户运行,它们将因访问权限不足而失败。Windows Vista 通过将写入重定向到用户配置文件中每个用户的位置来提高这些用户的应用程序兼容性。例如,如果应用程序尝试写入 HKEY_LOCAL_MACHINE\Software\Contoso\,它将自动重定向到 HKEY_USERS\< User SID >_Classes\VirtualStore\Machine\Software\Contoso。”

还有一个重大警告……

“由于虚拟化是一种临时的应用程序兼容性技术,随着越来越多的应用程序迁移到 Windows Vista,微软打算从 Windows 操作系统的未来版本中删除这种形式的虚拟化。因此,您的应用程序绝对不能过分依赖系统中的虚拟化。”

http://msdn.microsoft.com/en-us/library/bb530198.aspx

相关内容