计算机中所有用户的应用程序的 Windows 注册表项
Posted
技术标签:
【中文标题】计算机中所有用户的应用程序的 Windows 注册表项【英文标题】:Windows registry keys for applications for all users in machine 【发布时间】:2011-06-23 13:02:27 【问题描述】:如果我在 Windows XP 上安装了一个应用程序,并且该应用程序将一些密钥写入 HKCU 注册表,那么这些密钥是否会复制到 HKCU 以供其他用户使用?
我尝试安装一个应用程序并验证了一些在 HKCU 中创建的密钥。 现在我登录到另一个用户,我可以在 HKCU 中为该用户找到相同的密钥。
两个用户都在同一个管理员组中。
我在 windows xp 的 VMWare 映像中重复了相同的步骤,但我无法在 vmware 映像中找到其他用户的注册表项。
我想知道复制所有用户在HKCU中的所有注册表项是windows的功能吗?
【问题讨论】:
【参考方案1】:不,这是一件非常好的事情。大公司的公司机器可供 100.000 名其他用户使用(不是开玩笑)。 HKCU正在那里漫游。如果一个应用程序会从世界各地提取所有这 100.000 个配置文件,从字面上看,管理员会有点生气。
请注意,HKCU 通常是指向HKEY_USERS\S-1-5-21-UserID
的链接
【讨论】:
我无法理解 HKCU 漫游是什么意思? 好的,这意味着漫游配置文件只适用于公司域上的用户。如果我只在我的本地机器上而不是在域中创建一个新用户,那么它会被视为漫游配置文件吗?对于我本地计算机上的用户,我仍然可以看到所有注册表项。 @Alien01 这个最新评论有问题吗? 是的,我想问的是漫游配置文件应该只适用于公司网络上的用户。但是,为什么即使我在不在公司网络中的本地计算机上创建用户,我也会获得相同的 reg 密钥? @Alien01 对不起,你说得越来越没意思了。 “相同的注册键”是什么意思?【参考方案2】: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_SZ 值和Version
值。 StubPath
定义了迷你设置的路径,如果用户登录并且他没有SOFTWARE\Microsoft\Active Setup\Installed Components\[Guid]
在他的 HKCU 部分中,则应该运行该迷你设置。运行迷你安装程序后,它会将SOFTWARE\Microsoft\Active Setup\Installed Components\[Guid]
值从 HKLM 复制到 HKCU,因此下次登录时不会启动安装程序。因此 HKLM 值定义了 mini-setup,HKCU 值用于验证 mini-setup 是否必须运行/重新运行。如果在 HKLM 部分增加Version
的值,mini-setup 将重新运行一次,Version
的 HKCU 值将被更新。
所以主软件设置不仅可以创建一些HKCU设置,还可以例如将其导出到reg文件中,它可以使用regedit.exe /s TheRegFile.reg作为StubPath
的值。
如果可以阅读here Active Setup 的简短描述。
【讨论】:
【参考方案3】:不,你不能这样做。更重要的是,如果可以的话,这将是一个巨大的安全漏洞。个人资料对每个用户都是私有的。
【讨论】:
并非如此。 HKCU 条目上的典型 ACL 允许管理员完全访问。由于我们讨论的是软件安装上下文,因此可以假定管理员权限。 @MSalters 你是对的。安全是错误的词。我真的是在谈论隐私,但正如你所说,管理员可以看到所有内容,所以这里就不涉及隐私了。【参考方案4】:没有。没有这样的功能。 HKCU 存储在用户配置文件中的文件中。将每个用户的数据保存在注册表中的应用程序会在第一次运行时为该用户创建数据。
【讨论】:
以上是关于计算机中所有用户的应用程序的 Windows 注册表项的主要内容,如果未能解决你的问题,请参考以下文章