0

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

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

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

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

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

4

4 回答 4

4

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

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

于 2011-02-08T16:05:34.057 回答
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]最重要的是带有名称StubPath和值的 REG_EXPAND_SZVersion值。定义迷你设置的路径,如果用户登录并且他在他的 HKCU部分中StubPath没有,则应该运行该路径。运行迷你设置后,它会将值从 HKLM 复制到 HKCU,因此下次登录时不会启动设置。因此 HKLM 值定义了 mini-setup,HKCU 值用于验证 mini-setup 是否必须运行/重新运行。如果增加HKLM 部分的值,mini-setup 将重新运行一次,并且 HKCU 的值将被更新。SOFTWARE\Microsoft\Active Setup\Installed Components\[Guid] SOFTWARE\Microsoft\Active Setup\Installed Components\[Guid]VersionVersion

所以主软件设置不仅可以创建一些HKCU设置,还可以例如将其导出到reg文件中,它可以使用regedit.exe /s TheRegFile.reg 作为 的值StubPath

如果可以在这里阅读活动设置的简短描述。

于 2011-02-08T17:43:07.533 回答
1

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

于 2011-02-08T16:08:31.707 回答
0

不,没有这样的功能。HKCU 存储在用户配置文件中的文件中。将每个用户的数据保存在注册表中的应用程序会在第一次运行时为该用户创建数据。

于 2011-02-08T17:32:59.350 回答