什么是" strComputer"?

时间:2014-06-24 18:28:57

标签: vbscript

我最近不得不做一些VBScript,而且我见过的许多脚本都使用了这个变量strComputer,从表面看来,它似乎毫无意义。它通常设置为".",然后用于字符串连接,如下所示:

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

为什么这样做,只要写一个Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")?我看到了这一切,这让我感到困惑。

1 个答案:

答案 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