拉取注册表值不起作用

时间:2017-03-28 03:40:26

标签: vbscript scripting

我刚开始学习自动化......

我希望在下面的注册表值中查询带有日期的测试文件。

eRegistry values

我写了下面的剧本;但是,我认为这缺少一些逻辑,因此无法为每个注册表字符串获取附加值,

Const HKEY_LOCAL_MACHINE = &H80000002
Const ForAppending = 2
Set objfso = CreateObject("scripting.filesystemobject")
Set objFile = objfso.OpenTextFile("C:\SWSetup\abc.txt", 8, true)
'Set filestreamOUT = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\Test.txt,8,true)
strComputer = "."

'strPath = "C:\SWSetup\abc.txt"
strKeyPath = "SOFTWARE\SAT"
strValueName1 = "Bcore"
strValueName = "GG"
strValueName = "Graph"
strValueName = "MEM"
strValueName = "PHD"
strValueName = "PHDk"
strValueName = "Pro"

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

'oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue

oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue,strValueName1
objFile.WriteLine (Now)
objfile.WriteLine strValue
objfile.Close

1 个答案:

答案 0 :(得分:0)

你可以用更简单的方式做到这一点。

使用WScript.Shell Object从注册表中读取值。

为您创建样本。

相应地修改

我在我的系统上测试过。

我看到了预期的结果。

'DECLARE A FILE SYSTEM OBJECT
Set objfso = CreateObject("scripting.filesystemobject")
Set objFile = objfso.OpenTextFile("C:\\Users\\<<YOUR USER NAME>>\\desktop\\abc.txt", 8, true)

'CREATE A SHELL OBJECT TO READ REGISTRY
Dim WSHShell, value
Set WSHShell = CreateObject("WScript.Shell")


'READ REGISTRY VARIABLES
value = WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\SAT\GG")
objFile.WriteLine (value & "  " & Now)

value = WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\SAT\Graph")
objFile.WriteLine (value & "  " & Now)

value = WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\SAT\MEM")
objFile.WriteLine (value & "  " & Now)

value = WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\SAT\PHD")
objFile.WriteLine (value & "  " & Now)


'CLEAR THE OBJECTS
objfile.Close
set WSHShell = nothing

完美地获取关键名称:

  • 运行注册表并在您的案例中搜索“SAT”。
  • 选择它并右键单击鼠标。
  • 您可以看到“复制密钥名称”。
  • 选择它。
  • 现在将其粘贴到一些记事本中。
  • 然后将“值”名称附加到其中。 (在你的情况下是GG MEM等..)