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


11

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

我可以枚举并遍历所有NTUSER.DAT,加载配置单元,添加键,然后卸载配置单元,但这似乎很笨拙。

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



组策略首选项如何?
Bill_Stewart '16

Answers:


13

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

不是为了自我宣传,而是我确实写了一篇有关此事的博客文章。基本解决方案如下:

添加以下注册表项:

[HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\UniqueID]
"Version"=""
"Stubpath"=""
@=""
  • 您可以选择任何所需的唯一ID。经常使用GUID,但是您可以使用任何唯一的东西。
  • Version 是您要使用的任何版本号。
  • Stubpath是将要执行的命令。MSI,EXE和VBS调用似乎都很好。
  • @是什么应该命令运行时显示。

使用此解决方案,脚本语言是不相关的。您可以执行VBScript,Powershell,批处理文件。无论如何,您都可以以登录用户的身份写入HKCU。reg.exe直接使用也可以。

您可以做的另一种可选的最终操作是加载和修改默认用户Hive。这将为首次登录该特定系统的所有新用户设置注册表值。


我该死的,这看起来很完美。我以前从未听说过Active Setup。现在测试!谢谢。
道格·蔡斯

20世纪男孩也提供了很好的答案,但是在我看来,Active Setup是最简单,最可靠的解决方案。您可以运行任何“可运行”的东西。
SteinÅsmul09年

2
如何处理写给HKLM的邮件,特别是在用户不是管理员的情况下?您的博客文章确实可以使用示例-这篇文章也可以。
伊恩·博伊德

7

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

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


这也是一个很好的解决方案,我敢打赌这两个答案都会起作用。
道格·蔡斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.