我是一名管理员,负责将软件安装到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并检查上述密钥并在缺少时安装它吗? 感谢。
答案 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
但这不太对。以下是香港大学的参赛作品清单:
在系统中唯一似乎是有效帐户的是: S-1-5-21-856089149-4157031032-549160387-500
但是,有很多用户登录此计算机。
所以我需要另一种选择。如果我明白了,我会在这里发布。
<强>更新强> 我找到了一个列出所有用户的命令,但这似乎向域控制器查询信息,该信息返回系统上的所有帐户(包括管理员,模板,非活动,例如禁用帐户等)。
wmic useraccount get name,sid
有用的知道,但对于我的目的来说是过度的。