我很想在Powershell中这样做,但这不是一个选项。我有一堆电脑,我正在寻找重命名,并试图自动化的过程,尽可能多的我可以。我想有一个csv文件设置与两列(oldname,newname),并能够将信息拉到vbs脚本自动重命名计算机。
重命名单个计算机的代码为:
Name = "wantedcomputername"
Password = "localadminpassword"
Username = "localadminusername"
Set objWMIService = GetObject("Winmgmts:rootcimv2")
'Call always gets only one Win32_ComputerSystem object.
For Each objComputer In objWMIService.InstancesOf("Win32_ComputerSystem")
Return = objComputer.rename(Name,Password,Username)
If Return <> 0 Then
WScript.Echo "Rename failed. Error = " & Err.Number
Else
WScript.Echo "Rename succeeded." &
"Reboot for new name to have effect"
End If
Next
我也不想在更改名称后强制重启机器。重新启动将完成,但我不能在重命名中包含一个。我不知道足够的编码去拉信息从csv文件,但我很感激任何帮助或反馈。
将CSV作为数据库打开可以说是最优雅的方式:
filename = "C:pathtoyour.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
WScript.Echo rs.Fields("ComputerName").Value
rs.MoveNext
Loop
rs.Close
conn.Close
基本上你需要:
- 打开文件以文本文件的形式读取(csv就是文本文件)
- 文件
- 读取一行,用逗号把这行分成两个变量oldname, newname,运行这段代码你必须为计算机做一个重命名
- 重复步骤3,直到没有更多的行(即。在csv
请阅读如何打开文件进行阅读,并在vbscript中逐行读取。[链接]
然后阅读如何在vbscript中分割字符串。[链接]
结合这些知识并填写脚本中最后剩下的步骤。你就快成功了!你需要知道文件读取,分割-这些都是重要的工具总是!!!!