我最近不得不做一些 VBScript,我见过的许多脚本都使用这个变量 strComputer
,无论如何,从表面上看,这似乎毫无意义。它通常设置为 "."
,然后用于字符串连接,如下所示:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
当人们可以简单地编写 Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
时,为什么要这样做?我到处都看到这种情况,这让我很困惑。
最佳答案
正如 @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
关于vbscript - "strComputer"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24393774/