vbscript - "strComputer"是什么?

标签 vbscript

我最近不得不做一些 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/

相关文章:

vbscript - 使用VBS获取进程路径

postgresql - 为什么我不能在 Postgresql 中使用数字或日期类型输入 NULL 值?

javascript - 如何使用 javascript 或 jquery 在客户端机器上创建文本文件

vbscript - 解密函数给出带有特殊字符的错误结果

FFMPEG VBS 处理同步文件

vbscript - 如何知道 CScript.exe 的有效脚本引擎名称//E :engine option?

vbscript - 检查文件是否为空

command-line - 通过 VBS 带参数运行命令行

vbscript - 空格和回车被添加到 HTML 电子邮件

vbscript - 传递一个字符串作为变量名QTP