我最近不得不做一些VBScript,而且我见过的许多脚本都使用了这个变量strComputer
,从表面看来,它似乎毫无意义。它通常设置为"."
,然后用于字符串连接,如下所示:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
为什么这样做,只要写一个Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
?我看到了这一切,这让我感到困惑。
答案 0 :(得分:4)
正如@false在问题的评论中指出的那样,目的是使您想要访问其WMI服务的计算机可配置。
.
是本地计算机的快捷方式。如果您确定您的脚本只会连接到本地计算机,那么从可配置的计算机名称中获取确实没有任何好处,并且您最好只将.
合并到绰号:
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
但是,如果您需要能够针对远程主机运行脚本,则可以通过命令行参数使主机可配置:
strComputer = "." 'default to localhost
If WScript.Arguments.Exists("ComputerName") Then
strComputer = WScript.Arguments.Named("ComputerName")
End If
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
'do stuff with objWMIService
或从文件中读取主机名列表:
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:\computerlist.txt")
Do Until f.AtEndOfStream
strComputer = f.ReadLine
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
'do stuff with objWMIService
Loop
f.Close