Vbscript 读取注册表项中显示无效根的注册表项
我必须读取注册表值“GDIProcessHandleQuota”,以便编写以下代码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
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
值。