我们有一个 QA VBS 脚本已经运行了很长一段时间。模拟级别组件已在脚本中。QA 脚本中有几个部分可以在 2003、2003x64、2008 和 2008 R2 中远程和本地无错误地读取注册表。
我最近添加了一个用于检查 SCOM 代理的补丁级别的部分。该脚本在所有 3 个操作系统上按预期在本地运行,但在远程,只有 Server 2003(32 位)可以读取注册表的这一部分,“HKLM\SOFTWARE\Classes\Installer\Products\”。
这是代码的相关部分:
strKeyPath = "SOFTWARE\Classes\Installer\Products\07779052F1B26F94BAD9C107B86962A2\"
iRC = objReg.GetStringValue(HKLM, strKeyPath & "Patches", "772A5728AE0F5A548B3D4ACF8DB285ED", sValue)
If iRC = 0 Then
sStatus2 = 1
End If
为了调试,我添加了一个带有 Wscript.Echo iRC 的 else 部分,它返回了 2。根据 Net Helpmsg,错误是“系统找不到指定的文件。”。
工作中是否有一些 UAC 巫术?我可以在 S2K3x64 上读取注册表的其他部分(“HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\”和“HKLM\SOFTWARE\Wow6432Node\Network Associates\ePolicy Orchestrator\Application Plugins”,仅举几例) , S2K8 和 S2K8R2。