我正在寻找帮助,能够使用VBScript对csv中列出的每台PC运行脚本。目前我们正在使用一个小脚本,我们在" Hey,Scripting Guy博客"它收集了有关PC到打印机关系的正确信息,但仅限于一台手动指定的PC。这是对我们正在努力实现的目标的细分:
列出以CSV格式存储的个人电脑。
运行下面列出的脚本以查询CSV中的值并针对该值运行脚本。
根据文件中的值运行脚本后,转到CSV列表中的下一台PC。
strComputer = "PC-13699"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colPrinters = objWMIService.ExecQuery("Select * From Win32_Printer")
For Each objPrinter in colPrinters
If objPrinter.Attributes And 64 Then
strPrinterType = "Local"
Else
strPrinterType = "Network"
End If
Wscript.Echo objPrinter.Name & " -- " & strPrinterType
Next
我对VBS没有多少经验,所以我是这个语言的完全新手,所以如果我听起来很蠢,请耐心等待。感谢您的高级帮助!
答案 0 :(得分:0)
假设您的CSV有一个名为ComputerName
的字段用于计算机名称,您可以修改脚本like this:
filename = "C:\path\to\your.csv"
Set csv = CreateObject("Scripting.FileSystemObject").GetFile(filename)
Set conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & csv.ParentFolder.Path & ";" & _
"Extended Properties=""text;HDR=YES;FMT=Delimited"""
rs.Open "SELECT * FROM [" & csv.Name & "]", conn
Do Until rs.EOF
strComputer = rs.Fields("ComputerName").Value
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colPrinters = objWMIService.ExecQuery("Select * From Win32_Printer")
For Each objPrinter in colPrinters
If objPrinter.Attributes And 64 Then
strPrinterType = "Local"
Else
strPrinterType = "Network"
End If
Wscript.Echo objPrinter.Name & " -- " & strPrinterType
Next
rs.MoveNext
Loop
rs.Close
conn.Close