0

我使用以下 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 值确实存在。

我配置目标机器如下

  1. 关闭防火墙
  2. 运行“wmimgmt.msc”-> WMI 控制-> 为所有用户的所有命名空间及其子命名空间启用“远程启用”属性。
  3. 启动服务“远程注册表”

我在这个问题上花了几天时间,只是想不通。请帮我检查一下脚本是否有问题或者是目标机器的配置。非常感谢。

4

0 回答 0