Dim strComputer, objReg, ScriptName, strKeyPath, strValueName, strValue
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
这是一个较大的脚本,我正在尝试对工作进行逆向工程。原始编码器不可用。
我试图研究并理解最后一行代码,但我在网上找不到任何好的信息,而且我对vbs并不擅长。
据我所知: - objreg是一个SWbemObjectEx类型的对象。 - winmgmts:{impersonationLevel = impersonate}让对象使用调用者的安全级别(在我的情况下系统) - StdRegProv应指向HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ WBEM \ Scripting \ Default Impersonation Level
我有点得到它应该做的但是我不知道它是如何玩的。
如果有人能够逐字逐句地解释它的作用,包括“!\”之类的东西, 我会非常感激它。谢谢。
答案 0 :(得分:12)
首先,通过将strComputer
设置为等于句点(.
),这意味着它定位到本地计算机,而不是远程计算机,因为该句点是MS Windows的缩写本地电脑。
GetObject()
方法是Windows Scripting Host函数,可用于获取多种类型的对象,具体取决于您提供的第一个参数(有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/8ywk619w%28v=vs.84%29.aspx)。在这种情况下,您可以使用它来连接到Windows'内置 Windows Management Instrumentation(WMI)数据源(有关WMI的详细信息,请参阅http://msdn.microsoft.com/en-us/library/aa394582%28v=vs.85%29.aspx),其中包含WMI名字对象winmgmts:
(有关详细信息,请参阅http://technet.microsoft.com/en-us/library/bb684728.aspx连接到WMI对象时。)
在使用此过程的任何WMI连接中,WMI名字对象允许三个组件:
在您的示例中,"安全设置组件"提供:{impersonationLevel=impersonate}!
以及" WMI对象路径组件":\\.\root\default:StdRegProv
。
正如您正确指出的那样,安全组件用于设置将提供给查询的权限。
路径组件用于引用WMI&#34;对象或类路径&#34;,即WMI提供的信息集特定信息的路径。它不应该与文件系统中的路径混淆。路径组件始终以\\<computer name>\
开头,其中<computer name>
是远程计算机或上面提到的指示本地计算机的时间段。
在您的情况下,路径指向StdRegProv
类(有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/aa393664%28v=vs.85%29.aspx);这个类只提供对Windows注册表的访问以进行读写。
通过
获取对象后Set objReg=GetObject("winmgmts:impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
您可以使用objReg
执行任何可用操作(同样,
有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/aa393664%28v=vs.85%29.aspx。