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

我需要将HKCU密钥和值添加到特定OU中的所有计算机,所有现有用户configuration文件和默认configuration文件。 什么是最好的方法来解决这个问题?

我可以枚举并遍历所有的NTUSER.DAT,加载configuration单元,添加键和卸载configuration单元,但这似乎是一个笨拙的方式来做到这一点。

任何人有更好的主意? 我想编写脚本(最好是PowerShell),并尽可能推送更改,但组策略login脚本也可以。

我首选的方法是使用主动设置。 它的作用是在用户login到某台机器时检查它们是否已经运行了某个特定的脚本或命令(比如你将要执行的那个脚本或命令),如果没有,执行它。 所以,你只能在工作站上为用户运行一个特定的脚本。 我发现这对于写给HKCU来说是完美的,因为你不必加载每个configuration单元,只有人login的帐号被修改。

不要自我推销,但我写了一篇关于这样做的博客文章 。 基本的解决scheme如下:

添加以下registry项:

[HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\UniqueID] "Version"="" "Stubpath"="" @="" 
  • 你可以select你想要的任何唯一的ID。 GUID经常被使用,但你可以使用任何独特的东西。
  • Version是您要使用的任何版本号。
  • Stubpath是将被执行的命令。 MSI,EXE和VBS调用似乎都没有问题。
  • @是命令运行时应显示的内容。

有了这个解决scheme,脚本语言是不相关的。 你可以做一个VBScript,Powershell,batch file。 无论什么让你写入HKCU作为login用户。 直接使用reg.exe也可以。

另一个,可选的最终的触摸,你可以加载和修改默认的用户蜂巢。 这将为任何第一次login该特定系统的新用户设置registry值。

您可以通过创build自定义adm文件并将其作为模板导入组策略对象的“pipe理模板”部分来添加自定义registry项。 然后将该GPO链接到您的OU。 MS上有关于如何执行此操作的文档 ,或者您可以查看服务器上已存在的adm文件(我认为在Sysvol下的某处)。

这个过程被称为“纹身registry”,这意味着你不在组策略移除的控制之下,即使删除策略,注册条目也将保留。 您需要创build一个“反向”的注册码并部署(或者只是删除它)。