正在使用csv文件和.vbs脚本重命名计算机

正在使用csv文件和.vbs脚本重命名计算机,csv,vbscript,wmic,Csv,Vbscript,Wmic,我很想在Powershell中这样做,但这不是一个选项。我有一堆计算机,我正在寻找重命名,并试图尽可能地自动化这个过程。我想有一个csv文件设置与两列(oldname,newname),并能够拉到一个vbs脚本的信息自动重命名计算机 重命名单个计算机的代码为: Name = "wantedcomputername" Password = "localadminpassword" Username = "localadminusername" Set objWMIService = GetObj

我很想在Powershell中这样做,但这不是一个选项。我有一堆计算机,我正在寻找重命名,并试图尽可能地自动化这个过程。我想有一个csv文件设置与两列(oldname,newname),并能够拉到一个vbs脚本的信息自动重命名计算机

重命名单个计算机的代码为:

Name = "wantedcomputername"
Password = "localadminpassword"
Username = "localadminusername"

Set objWMIService = GetObject("Winmgmts:root\cimv2")

'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
Name=“wantedcomputername”
Password=“localadminpassword”
Username=“localadminusername”
设置objWMIService=GetObject(“Winmgmts:root\cimv2”)
'调用始终只获取一个Win32_ComputerSystem对象。
对于objWMIService.InstancesOf(“Win32_ComputerSystem”)中的每个对象计算机
Return=objComputer.rename(名称、密码、用户名)
如果返回0,则
WScript.Echo“重命名失败。错误=&Err.Number
其他的
Echo“重命名成功”&
“重新启动以使新名称生效”
如果结束
下一个

我也不想在名称更改后强制重新启动机器。将重新启动,但我不能在重命名中包含一个。我对编码知之甚少,无法从csv文件中提取信息,但我希望得到任何帮助或反馈

基本上,您需要:

  • 以文本文件的形式打开文件进行读取(csv只是一个文本文件)
  • 当文件中有行时
  • 读一行,用逗号将行拆分成两个变量oldname,newname,运行这段代码你必须为计算机重命名
  • 重复步骤3,直到csv中不再有行(即不再有计算机)
  • 请阅读如何打开文件进行读取,并在vbscript中逐行读取。

    然后阅读如何在vbscript中拆分字符串。


    结合这些知识,填写脚本中最后剩下的步骤。你快到了!你将需要知道文件读取,无论如何分裂-这些都是重要的工具

    将CSV作为数据库打开可以说是最优雅的方式:

    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
      WScript.Echo rs.Fields("ComputerName").Value
      rs.MoveNext
    Loop
    
    rs.Close
    conn.Close
    

    谢谢你的链接。我来看看。你的链接指向VB.net示例,而不是VBScript示例。这两种语言不一样。