我使用以下 VB 脚本使用 WMI 远程查询注册表值。它能够连接,但无法获得价值。
Option Explicit
Dim strComputer
Dim strUser, strPassword
Dim objSWbemLocator, objSWbemServices, objReg
Dim strKeyPath, strEntryName, strValue
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "192.168.1.10"
strUser = "username"
strPassword = "password"
Set objSWbemLocator = CreateObject("wbemScripting.SwbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer _
(strComputer, "root\default", strUser, strPassword)
Set objReg = objSWbemServices.Get("StdRegProv")
strKeyPath = "SYSTEM\CurrentControlSet\services\eventlog\Application"
strEntryName = "MaxSize"
objReg.GetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath, strEntryName, dwValue
Wscript.Echo dwValue
它返回:Microsoft VBscript 运行时错误:变量未定义:'dwValue'。这意味着它没有获得目标机器的价值。我在目标机器上检查过,dword 值确实存在。
我配置目标机器如下
- 关闭防火墙
- 运行“wmimgmt.msc”-> WMI 控制-> 为所有用户的所有命名空间及其子命名空间启用“远程启用”属性。
- 启动服务“远程注册表”
我在这个问题上花了几天时间,只是想不通。请帮我检查一下脚本是否有问题或者是目标机器的配置。非常感谢。