在PC上为每个用户帐户插入一个条目到HKCU

时间:2012-08-22 11:09:47

标签: windows batch-file registry

我是一名管理员,负责将软件安装到PC的小型局域网中。该软件必须安装在不同的阶段(三个不同的可执行安装程序包)。

销售布偶以错误的顺序提供了阶段,并且由于它们以错误的顺序安装,因此未正确生成注册表项。

所以我需要在注册表中为每台PC上的每个现有用户创建一个HKCU条目。

我需要安装的注册表项是

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\AcmeSoft\AcmeApp]
"InstallLocation"="C:\\Program Files (x86)\\AcmeApp"
@=""

我想写一个脚本(语言不重要,我熟悉C ++和python),我可以每台PC运行一次,将这个新的注册表项部署到HKCU \ Software \ AcmeSoft \ AcmeApp配置单元。

Regedit显示了一个名为HKEY_USERS的配置单元,我怀疑它可能包含PC上所有用户的条目。

我可以以某种方式迭代HKEY_USERS并检查上述密钥并在缺少时安装它吗? 感谢。

2 个答案:

答案 0 :(得分:1)

如果您不反对使用简单的批处理脚本,可以使用:

如果您愿意,您甚至可以在HKU之前添加一个计算机名称(例如:\ Computer \ HKU),这样您就可以远程运行它。你必须以管理员(提升)

运行它
for /F  "delims=\ tokens=1,*" %%t in ('reg query HKU') do reg add HKU\%%u\Software\AcmeSoft\AcmeApp /ve
for /F  "delims=\ tokens=1,*" %%t in ('reg query HKU') do reg add HKU\%%u\Software\AcmeSoft\AcmeApp /v InstallLocation /d C:\\Program Files (x86)\\AcmeApp

答案 1 :(得分:1)

我在提供的答案中发现了一些简单的语法错误。对于那些可能需要它的人来说,这是正确的语法。

for /F  "delims=\ tokens=2,*" %t in ('reg query HKU') do 
    reg add HKU\%t\Software\AcmeSoft\AcmeApp /ve

for /F  "delims=\ tokens=2,*" %t in ('reg query HKU') do 
    reg add HKU\%t\Software\AcmeSoft\AcmeApp /v InstallLocation /d C:\\Program Files (x86)\\AcmeApp

但这不太对。以下是香港大学的参赛作品清单:

HKU hive

在系统中唯一似乎是有效帐户的是: S-1-5-21-856089149-4157031032-549160387-500

但是,有很多用户登录此计算机。

user accounts on the PC

所以我需要另一种选择。如果我明白了,我会在这里发布。

<强>更新 我找到了一个列出所有用户的命令,但这似乎向域控制器查询信息,该信息返回系统上的所有帐户(包括管理员,模板,非活动,例如禁用帐户等)。

wmic useraccount get name,sid

有用的知道,但对于我的目的来说是过度的。