Vbscript 读取注册表项中显示无效根的注册表项

Vbscript 读取注册表项中显示无效根的注册表项,vbscript,Vbscript,我必须读取注册表值“GDIProcessHandleQuota”,以便编写以下代码 strKeyPath = "Schema\wcm://Microsoft-Windows-Win32k-Settings?version=6.1.7600.16385&language=neutral&processorArchitecture=x86&publicKeyToken=31bf3856ad364e35&versionScope=nonSxS&scope=all

我必须读取注册表值“GDIProcessHandleQuota”,以便编写以下代码

strKeyPath = "Schema\wcm://Microsoft-Windows-Win32k-Settings?version=6.1.7600.16385&language=neutral&processorArchitecture=x86&publicKeyToken=31bf3856ad364e35&versionScope=nonSxS&scope=allUsers\metadata\elements\GDIProcessHandleQuota"

Set WSHShell = CreateObject("WScript.Shell")

Set value = WSHShell.RegRead(strKeyPath)
运行此脚本时显示错误

WshShell.regrad:注册表项“架构”中的根目录无效\wcm://Microsoft-Windows-Win32k-Settings?version=6.1.7600.16385&language=neutral&processorArchitecture=x86&publicKeyToken=31bf3856ad364e35&versionScope=nonSxS&scope=allUsers\元数据\元素\ GDIProcessHandleQuota”

使用的WMI:

'Constants (taken from WinReg.h)
Const HKEY_CLASSES_ROOT= &H80000000
Const HKEY_CURRENT_USER= &H80000001
Const HKEY_LOCAL_MACHINE= &H80000002
Const HKEY_USERS= &H80000003

Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")

strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows"
strValueName = "GDIProcessHandleQuota"
oReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strValue
WScript.Echo strValue 
上面的脚本显示错误“类型不匹配”


应该如何以正确的方式读取,或者是否有其他方法来遍历注册表并查找子项,因为我已经硬编码了必须避免的项。我只想编写像pass-GDIProcessHandleQuota这样的代码,这样代码就能提供值。

我不知道第一个代码段要做什么。我以前从未见过这样的关键路径

但是第二个代码段由于类型不匹配错误而失败,因为
GDIProcessHandleQuota
REG\u DWORD
值,但您试图将其读取为
REG\u SZ
值。您需要使用方法而不是方法


在任何情况下,在这种情况下都不需要枚举密钥,因为
GDIProcessHandleQuota
的位置是。

我不知道第一个代码段试图做什么。我以前从未见过这样的关键路径

但是第二个代码段由于类型不匹配错误而失败,因为
GDIProcessHandleQuota
REG\u DWORD
值,但您试图将其读取为
REG\u SZ
值。您需要使用方法而不是方法


在任何情况下,在这种情况下都不需要枚举键,因为
GDIProcessHandleQuota
的位置是。

您的第一个代码段会引发错误,因为注册表路径缺少配置单元(
HKLM
)。另外,在这两个代码段中有不同的路径,因此您的问题完全不清楚。“GDIProcessHandleQuota”是密钥吗?价值观?值中的数据?它是REG_SZ吗?雷格·德沃德?REG_二进制?它在注册表中的确切位置?@AnsgarWiechers:
GDIProcessHandleQuota
HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
项中的
REG\u DWORD
值。您的第一个代码段会引发错误,因为注册表路径缺少配置单元(
HKLM
)。另外,在这两个代码段中有不同的路径,因此您的问题完全不清楚。“GDIProcessHandleQuota”是密钥吗?价值观?值中的数据?它是REG_SZ吗?雷格·德沃德?REG_二进制?它在注册表中的确切位置?@AnsgarWiechers:
GDIProcessHandleQuota
HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
键中的
REG\u DWORD
值。