为所有现有用户和所有新用户添加 HKCU 键和值的最佳方法?

Dou*_*ase 12 windows powershell windows-registry

我需要将 HKCU 键和值添加到特定 OU 中的所有机器、所有现有用户配置文件和默认配置文件。解决这个问题的最佳方法是什么?

我可以枚举并遍历所有 NTUSER.DAT,加载配置单元、添加密钥和卸载配置单元,但这似乎是一种笨拙的方法。

有人有更好的主意吗?我想编写此脚本(最好是 PowerShell)并尽可能推送更改,但组策略登录脚本也可以使用。

Rob*_*upt 14

我的首选方法是使用 Active Setup。它的作用是检查用户何时登录机器,如果他们运行了特定的脚本或命令(例如您将拥有的脚本或命令),如果没有,则执行它。因此,您只会在用户的工作站上为用户运行一次特定的脚本。我发现这非常适合写入 HKCU,因为您不必加载每个配置单元,只需修改人们登录的帐户。

不是为了自我推销,但我确实写了一篇关于这样做的博客文章。基本解决方案如下:

添加以下注册表项:

[HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\UniqueID]
"Version"=""
"Stubpath"=""
@=""
Run Code Online (Sandbox Code Playgroud)
  • 您可以选择任何您想要的唯一 ID。GUID 经常使用,但您可以使用任何独特的东西。
  • Version 是您要使用的任何版本号。
  • Stubpath是将要执行的命令。MSI、EXE 和 VBS 调用似乎都很好。
  • @是命令运行时应该显示的内容。

使用此解决方案,脚本语言无关紧要。你可以做一个 VBScript、Powershell、批处理文件。无论什么都可以让您以登录用户的身份写入 HKCU。reg.exe直接使用也可以。

您可以进行的另一个可选的最后操作是加载和修改默认用户 Hive。这将为首次登录该特定系统的任何新用户设置注册表值。

  • 它如何处理写入 HKLM,尤其是当用户不是管理员时?您的博客文章确实可以使用一个示例 - 这篇文章也是如此。 (2认同)

Pow*_*101 7

您可以通过创建自定义 adm 文件并将其作为模板导入到组策略对象的管理模板部分来添加自定义 reg 键。然后将该 GPO 链接到您的 OU。有在MS文档有关如何做到这一点,或者你可以看看已经存在于服务器上(SYSVOL下我的地方想)的ADM文件。

此过程称为“对注册表进行纹身”,这意味着您不受组策略删除的控制,即即使删除了策略,注册表项仍将保留。您需要创建一个“反向”注册密钥并部署它(或只是删除它)。