Я работаю с компанией, которая перерабатывает ноутбуки для компаний, и мы получаем заказы около 20-100 ноутбуков за заказ. Мы устанавливаем новые изображения на них после того, как мы обновляем сам ноутбук, но у нас возникают проблемы с написанием сценария автоматического именования. Я была поставлена задача найти скрипт, который может сделать следующее:Как я могу сделать пакетный файл найти серийный номер ноутбука в электронной таблице и переименовать имя хоста из записи в электронной таблице?
- Прочитайте серийный номер Биос ноутбука
- Сравните этот серийный номер таблицы или CSV файл, и найти серийный номер есть
- Затем найдите нужное имя компьютера в колонке рядом с серийным номером
- Наконец, переименовать компьютер, используя новое имя, найденное в файле
Гораздо проще написать один большой файл таблицы с именами и серийными номерами, чем вводить каждое новое имя в приглашении CMD и перезапускать каждый компьютер по отдельности.
До сих пор у меня есть следующий сценарий, чтобы использовать серийный номер в качестве переменной, в случае необходимости:
for /f "skip=1 delims=" %%J in ('wmic bios get serialnumber') do (set serial=%%J Goto :done) :done
После того как мы этот сценарий, набрав% серийный% входы серийного номера, относящиеся к этому компьютер.
Я также знаю, что следующий сценарий будет переименовать компьютер, используя переменную в качестве нового имени:
wmic computersystem where caption='%computername%' rename %variable%
Где% переменная% является переменной, мы надеемся, найти в таблице. Я просто не знаю, как найти эту новую переменную (новое имя компьютера), которая будет найдена в электронной таблице. Любая помощь будет принята с благодарностью.
Я также хотел бы написать этот скрипт в PowerShell, но я никогда раньше не использовал PowerShell. Ноутбуки, на которых я запускаю этот скрипт, должны быть чистыми и не иметь загруженных материалов, прежде чем мы их отправим, так что имейте это в виду. – Umbrathe
Предполагая, что ваш CSV находится в форме 'SerialNumber, Hostname', вы можете использовать [FIND] (http://ss64.com/nt/find.html), чтобы получить строку в CSV. [Разделить строку] (http://stackoverflow.com/questions/1707058/how-to-split-a-string-in-a-windows-batch-file), используя 'FOR', чтобы получить ваше имя пользователя. – Tim