Vbscript 在路径的所有子项中搜索注册表项
我想在Vbscript 在路径的所有子项中搜索注册表项,vbscript,registry,Vbscript,Registry,我想在HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Enum\IDE下找到键“设备参数” 但是,BD/DVD/CD-ROM/Writers在每个系统中使用不同的键。我目前使用的是HKEY\u LOCAL\u MACHINE\system\CurrentControlSet\Enum\IDE\CdRomHL-DT-ST\u DVDRAM\u GH20NS15\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Enum\IDE
下找到键“设备参数”
但是,BD/DVD/CD-ROM/Writers
在每个系统中使用不同的键。我目前使用的是HKEY\u LOCAL\u MACHINE\system\CurrentControlSet\Enum\IDE\CdRomHL-DT-ST\u DVDRAM\u GH20NS15\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu5&1562d3e&0.1.0设备参数
但是我想搜索IDE和BD/DVD/CD-ROM/Writer
下的每个子键以获得设备参数。有一个二进制值DefaultDVD-Region
,我想为每个BD/DVD/CD-ROM/Writer
将其设置为0
我想在VBScript中执行此操作。此代码将循环通过
HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Enum\IDE
中的所有键,并查看每个键的内部,以打印出DefaultDVD区域的DWORD值
Option Explicit
Const HKEY_LOCAL_MACHINE = &H80000002
Dim oReg : Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
Dim oShell : Set oShell = CreateObject("WScript.Shell")
Dim sPath, aSub, sKey, aSubToo, sKeyToo, dwValue
' Get all keys within sPath
sPath = "SYSTEM\CurrentControlSet\Enum\IDE"
oReg.EnumKey HKEY_LOCAL_MACHINE, sPath, aSub
' Loop through each key
For Each sKey In aSub
' Get all subkeys within the key 'sKey'
oReg.EnumKey HKEY_LOCAL_MACHINE, sPath & "\" & sKey, aSubToo
For Each sKeyToo In aSubToo
' Try and get the DWORD value in Device Parameters\DefaultDvdRegion
oReg.GetDWORDValue HKEY_LOCAL_MACHINE, sPath & "\" & sKey & "\" & sKeyToo & "\Device Parameters", "DefaultDvdRegion", dwValue
Wscript.Echo "DVDRegion of " & sPath & "\" & sKey & "\" & sKeyToo & " = " & dwValue
Next
Next
这不是我最好的代码,但应该能提供您所需要的。在我的机器上,我得到以下输出:
DVDRegion of SYSTEM\CurrentControlSet\Enum\IDE\CdRomOptiarc_DVD_RW_AD-7200S_________________1.0A____\5&3308a5ad&0&1.0.0 = 2
DVDRegion of SYSTEM\CurrentControlSet\Enum\IDE\DiskSAMSUNG_HD103UJ_________________________1AA01113\5&76d4b99&0&0.0.0 =
这是有道理的,因为我的DVD驱动器的地区代码是2(欧洲),而我的硬盘驱动器没有地区代码