Этот пакет используется с несколькими другими файлами в качестве сценариев запуска в рамках процесса переизображения Symantec Ghost Cast для Windows 7, который мы собираемся предпринять. Вместе они полностью автоматизируют весь процесс перерисовки Sysprep, переименовывают компьютер из текстового файла, затем присоединяют компьютер к домену и помещают в правильное подразделение.

Я знаю, что есть другие языки программирования и языки сценариев, которые могут выполнять те же процессы намного лучше, но сейчас нет времени на их изучение. Конечно, MS Power-shell и VBS являются лучшими кандидатами, но я пока еще не потрачен на них, как и мои коллеги. Другие переименования приложений работают с перебоями для меня. Compname.exe не работает с Windows 7. Wsname работает с перебоями или вообще не работает с некоторыми из наших моделей Dell 790, Power Edge, серверами 850, 860 и R200. Другие наши модели, похоже, не имеют каких-либо серьезных проблем при использовании сторонних приложений - GX620, 740, 745, 755, 760 и 780.

Я предпочитаю использовать нативные приложения уже внутри ОС. Очевидно, что netdom.exe не является родным (нужно получать файлы из исполняемого файла RSAT), но это простой импорт ОС и обязательный атрибут образов.

Поэтому, пожалуйста, предоставьте любые ответы по программам, которые я сейчас использую (batch, netdom, getmac и хорошие текстовые файлы ole).

Этот пакетный файл выполняет следующее:

  1. Использует getmac.exe, чтобы найти MAC-адрес локальной машины (перезаписывается)
  2. Переменный локальный MAC-адрес (%% G)
  3. Передает переменный MAC-адрес и сравнивает его с файлом getmac2.txt (%% A)
  4. Захватывает связанную переменную (%% B) и
  5. Помещает %% B в качестве strComputername
  6. Оператор && останавливает операцию при обнаружении MAC-адреса вместо анализа всего файла
  7. Метка:insert_name запускает netdom.exe, закрывает пакет и перезагружает компьютер. Ключ /FORCE используется, но не указан здесь во время тестирования. «Пауза» также используется только для тестирования.

Последующий скрипт присоединяет компьютер к домену.

Теперь это то, что я хотел бы попробовать ... Я хотел бы иметь возможность изменить переменную %% G, заменив дефисы '-' в MAC-адресе двоеточиями ':'. Getmac.exe создает MAC-адрес, подобный этому 11-22-33-44-55-66. Однако другая программа администратора предоставляет мне список с MAC-адресами, такими как 11:22:33:44:55:66. Мой файл getmac2.text перечисляет MAC-адреса с двоеточиями. Очевидно, что я могу автоматически удалять двоеточия из текстового редактора, но цель состоит в том, чтобы сократить как можно больше шагов. Кроме того, передача переменной %% G в другой файл не будет проблемой, если проще выполнить замену строки.

Верьте или нет, сценарий работает отлично!

Содержимое файла getmac2.txt форматируется так:

11:22:33:44:55:66,88D-350-03-780 11:22:33:44:55:77,44E-351-13-790 11:22:33:44:55:88, 66F-352-23-760 11:22:33:44:55:99,22G-353-33-R200 11:22:33:44:55:00,11H-354-43-620

setlocal enabledelayedexpansion


FOR /F "usebackq delims= " %%G IN (`getmac.exe /FO table /NH`) DO (
    FOR /F "usebackq delims=, tokens=1,2" %%A IN (`type C:\wsname\getmac2.txt`) DO if %%G EQU %%A SET strComputername=%%B && goto insert_name
)    

:insert_name
C:\windows\system32\netdom.exe renamecomputer %COMPUTERNAME% /NewName:%strComputername%

pause

1 ответ1

1

Используйте %variable:from=to% или !variable:from=to! (с отложенным расширением).

set mac=%%G
set mac=%mac:-=:%

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .