Windows注册表项,用于计算机中所有用户的应用程序

时间:2011-02-08 15:55:56

标签: winapi windows-xp registry windows-users

如果我在Windows XP上安装应用程序并且该应用程序将一些密钥写入HKCU注册表,那么这些密钥是否会被其他用户复制到HKCU?

我尝试安装一个应用程序并验证了在HKCU中创建的一些密钥。 现在我登录了另一个用户,我可以在HKCU中为该用户找到相同的密钥。

两个用户都在同一个管理员组中。

我在Windows XP的VMWare映像中重复了相同的步骤,但我无法在vmware映像中的其他用户中找到注册表项。

我想知道在所有用户的HKCU中复制所有注册表项是Windows功能吗?

4 个答案:

答案 0 :(得分:4)

不,这是一件非常好的事情。大公司中有公司机器可供100.000其他用户使用(不是开玩笑)。 HKCU在那里漫游。如果一个应用程序会从世界各地提取所有这些100.000个配置文件,那么管理员就会有点生气。

请注意,HKCU通常是HKEY_USERS\S-1-5-21-{UserID}

的链接

答案 1 :(得分:3)

Windows有一个很好的功能,可以用来实现非常接近你需要的场景。该功能的名称是“Active Setup”。该功能使用许多公司网络管理员对已安装软件进行一些自定义,这将根据用户配置文件或HKCU的变化进行。

在引入Internet Explorer 4(我希望它是IE4)之后,Microsoft发现有时需要能够运行可以修改HKCU设置或修改用户配置文件中的某些文件的小型设置。所以微软制造了IE4的一些组件来做到这一点。稍后,组件(Active Setup)是Windows操作系统的一部分。

由于可以使用以下注册表项执行此操作

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\[Guid]

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Active Setup\Installed Components\[Guid]

软件的主要设置在管理上下文中运行,创建HKLM密钥 SOFTWARE\Microsoft\Active Setup\Installed Components\[Guid]包含一些值。最重要的是REG_EXPAND_SZ值,其名称为StubPathVersion值。 StubPath定义了迷你设置的路径,如果用户登录且他的HKCU 部分中没有SOFTWARE\Microsoft\Active Setup\Installed Components\[Guid] ,则应该运行该路径。在运行迷你设置后,它会将SOFTWARE\Microsoft\Active Setup\Installed Components\[Guid]值从HKLM复制到HKCU,因此下次登录时不会启动设置。因此,HKLM值定义了迷你设置,HKCU值用于验证是否必须运行/重新运行迷你设置。如果在HKLM部分中增加Version值的值,则迷你设置将重新运行一次,HKCU值Version将更新。

因此,主软件设置不仅可以创建一些HKCU设置,还可以将其导出到reg文件中,并且可以使用regedit.exe / s TheRegFile.reg作为StubPath的值。 / p>

如果可以阅读here活动设置的简短说明。

答案 2 :(得分:1)

不,你不能这样做。如果可能的话,更有可能是一个巨大的安全漏洞。个人资料对每个用户都是私密的。

答案 3 :(得分:0)

没有。没有这样的功能。 HKCU存储在用户个人资料中的文件中。将每个用户的数据保留在注册表中的应用程序在该用户的第一次运行时创建数据。