Vbscript 如何在多台计算机上编辑注册表值?
我需要在200多台计算机上编辑注册表值,经过几个小时的研究,我仍然没有取得多大进展。我需要它是一个.vbs文件,我想到的是:Vbscript 如何在多台计算机上编辑注册表值?,vbscript,registry,Vbscript,Registry,我需要在200多台计算机上编辑注册表值,经过几个小时的研究,我仍然没有取得多大进展。我需要它是一个.vbs文件,我想到的是: Const HKEY_LOCAL_MACHINE = &H80000001 strComputer = "." Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv") strKeyPath = "SOFTWARE\I placed r
Const HKEY_LOCAL_MACHINE = &H80000001
strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\I placed rest of the path to registry value here"
strValueName = "I placed D-WORD entry name here"
strValue = "http://example.com"
objRegistry.SetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strValue
我的两个主要问题是:
当我在管理命令提示符下运行脚本时,什么也没有发生。不会显示任何错误,也不会对注册表进行任何更改。
我知道,对于strComputer,我需要定义计算机名。如果我有许多计算机需要运行此功能,可以将此留空吗?
WMI注册表方法以静默方式失败,但返回状态代码。将最后一行更改为rc=objRegistry.SetStringValueHKEY_LOCAL_MACHINE、strKeyPath、strValueName、strValue,然后检查rc的值。另外,您在此处放置D字条目名称是什么意思?不能使用SetStringValue方法修改DWORD值。至于你的第二个问题:不,你不能留白。如果要在多台计算机上修改注册表,必须在循环中运行GetObject,在循环中迭代所有计算机。Re:2,这可能不是最佳解决方案,但在过去,我做过类似的事情,让脚本执行网络视图并解析标准输出以获取计算机名,然后使用reg add将注册表数据添加到每台计算机。