首页 > 解决方案 > 使用 Vbscript 读取包含机器名称、用户名、密码(以逗号分隔)的 CSV

问题描述

任务是首先扫描本地计算机以查找有效的计算机名称(我已经完成),然后使用该计算机名称检查 CSV 以在某处通过管道传输用户名和密码部分。

我的 CSV 内容如下:

COMPUTERNAME1,USERNAME1,PASSWORD1
COMPUTERNAME2,USERNAME2,PASSWORD2
COMPUTERNAME3,USERNAME3,PASSWORD3

因此,例如,如果 VBS 使用 VBS 检测计算机名称:

Set wshShell = CreateObject( "WScript.Shell" )
strComputerName = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )

..它检测到计算机名称被称为:COMPUTERNAME2

然后 VBS 应该查找"strComputerName"在 CSV 中声明的内容(即"COMPUTERNAME2")并将关联的下两行USERNAME2传递PASSWORD2给和密码。

目标是我们正在运行一个活动的 CSV,因此机器列表会增加,因此只需检测适当的计算机名称即可。

标签: csvvbscriptautologincomputer-name

解决方案


您可以使用FSO 读取文件

Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\FSO\ScriptLog.txt", ForReading)
 Do While objFile.AtEndOfStream = False
    strLine = objFile.ReadLine
    If computername = Split(strLine, ",")(0) Then
        'found a matching computer name
        username = Split(strLine, ",")(1)
        plaintextpasswordomg = Split(strLine, ",")(2)
    End If
 Loop
 objFile.Close
 Set objFile = Nothing
 Set objFSO = Nothing

它循环文件的每一行,然后测试计算机名并将用户名/密码捕获到变量中Split(),使用逗号作为分隔符将行拆分为数组。


推荐阅读