Поиск переименования компьютеров с помощью файла csv и сценария .vbs

Я хотел бы сделать это в Powershell, но это не вариант. У меня есть несколько компьютеров, которые я хочу переименовать, и я пытаюсь максимально автоматизировать этот процесс. Я хотел бы настроить файл csv с двумя столбцами (старое имя, новое имя) и иметь возможность извлекать эту информацию в сценарий 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

Я также не хочу принудительно перезагружать машину после изменения имени. Перезапуск будет выполнен, но я не могу включить его в переименование. Я недостаточно разбираюсь в кодировании, чтобы извлекать информацию из CSV-файла, но буду признателен за любую помощь или отзыв.


person user3701235    schedule 03.06.2014    source источник


Ответы (2)


Открытие 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
person Ansgar Wiechers    schedule 03.06.2014

По существу вам необходимо:

  1. Откройте файл для чтения как текстовый файл (csv — это просто текстовый файл)
  2. Пока в файле есть строки
  3. Прочитайте строку, разделите строку с помощью запятой на 2 переменные старое имя, новое имя, запустите этот фрагмент кода, который вам нужно переименовать для компьютера
  4. Повторяйте шаг 3 до тех пор, пока у вас не останется строк (т.е. компьютеров) в csv.

Пожалуйста, прочитайте, как открыть файл для чтения и прочитать его построчно в vbscript. [Ссылка]

Затем прочитайте, как разделить строку в vbscript. [Ссылка]

Объедините эти знания и заполните последние оставшиеся шаги в своем сценарии. Ты почти там! Вам в любом случае нужно будет уметь читать файлы, разбивать их - это всегда важные инструменты!!!!

person Br1sk1t    schedule 03.06.2014
comment
Спасибо за ссылки. Я проверю их. - person user3701235; 03.06.2014
comment
Ваши ссылки указывают на примеры VB.net, а не на примеры VBScript. Два языка не одно и то же. - person Ansgar Wiechers; 03.06.2014