DIY Главная Медиа Logo

Конечная сайт для проектирования и создания вашей установке домашнего кинотеатра и Привет-Fi.

0Пакетный сценарий для переименования ПК на основе зарезервированного имени DHCP

Я использую WDS на отдельном сервере для установки новых ПК и переосмыслить ПК когда они оказались безнадежно искалеченными. С большим количеством ПК в моем собственном доме полезно время от времени перерисовывать их при замене или обновлении оборудования.. Большая часть этого процесса теперь автоматизирована файлом unattend.xml, но один шаг, который автоматический процесс, похоже, не поддерживает, - это переименование ПК вернуться к своему первоначальному имени.

Все мои ПК иметь статические резервирования DHCP с их правильным именем хоста (который также зарегистрирован в DNS) поэтому я подумал, что должен быть способ получить эту информацию и использовать ее для их переименования.. После долгих размышлений я создал пакетный скрипт, который сделает это (при запуске от имени администратора).

Просто вставьте следующий код в файл .cmd и запустите его как часть вашего автоматического процесса. (Я описываю свою ниже)

@echo off
set ip_address_string="IPv4-адрес"
FOR / F "usebackq" %%я В (`hostname`) DO SET MYVAR=%%i
for /f "токены usebackq = 2 разделителя =:" %%ж в (`ipconfig ^| findstr / c:%ip_address_string% `) делать (
    для / f "токены usebackq = 2 разделителя =:" %%Джин (`nslookup %% f ^| findstr / c:Имя) делать (
        для / F "токены = 1 разделители =." %%а в ("%%г") делать (
            для / F "токены = 1 разделители = " %%б в ("%%а") делать (
                WMIC ComputerSystem, где Name ="%myvar%" позвонить Rename Name ="%%б"
                перейти :eof
            )
        )
    )
)

Я вызываю свой сценарий из <FirstLogonCommands> раздел ImageUnattend.xml.

<Синхронная команда wcm:действие ="добавлять">
  <Заказ>5</Заказ>
  <Описание>Переименовать систему</Описание>
  <Командная строка>с:\дополнительные функции  поднять -c c:\дополнительные  переименовать-pc-from-dns.cmd</Командная строка>
</Синхронная команда>

Чтобы запустить его от имени администратора, я использую небольшую утилиту (называется elevate.exe) что делает это (команды, запускаемые во время установки, могут повышаться без вывода запроса!). Вы можете получить это из этого первоисточник

Последняя часть головоломки для моей установки заключается в том, что я модифицирую установочный образ Windows, чтобы включить исполняемый файл и небольшой скрипт poweershell — они позволяют копировать все другие установщики из сети.. Исполняемый файл — это ‘потоки’ который является sysinternals (теперь часть Microsoft) утилита для удаления предупреждения «этот файл получен из Интернета, вы уверены, что хотите его запустить».

У меня также есть следующий скрипт в виде файла .ps1

copy-item -Path \ wds-server  RemInst  Custom  *. * -Destination C:\Дополнительно

Мой первый 4 Затем LogonCommands выглядят следующим образом…

<Синхронная команда wcm:действие ="добавлять">
  <Заказ>1</Заказ>
  <Описание>Нет режима ожидания во время настройки</Описание>
  <Командная строка>powercfg -change standby-timeout-ac 0</Командная строка>
</Синхронная команда>
<Синхронная команда wcm:действие ="добавлять">
  <Заказ>2</Заказ>
  <Описание>Добавить учетные данные для доступа к серверу по сети</Описание>
  <Командная строка>cmdkey / добавить:wds-сервер / пользователь:wds-сервер  администратор / пароль:пароль123</Командная строка>
</Синхронная команда>
<Синхронная команда wcm:действие ="добавлять">
  <Заказ>3</Заказ>
  <Описание>Скопируйте скрипты и приложения из сети в папку extras</Описание>
  <Командная строка>C:\Windows  System32  WindowsPowerShell  v1.0  powershell.exe -windowstyle hidden -ExecutionPolicy ByPass -File C:\Экстра  copyapps.ps1</Командная строка>
</Синхронная команда>
<Синхронная команда wcm:действие ="добавлять">
  <Заказ>4</Заказ>
  <Описание>Удалить интернет-предупреждение из скопированных приложений</Описание>
  <Командная строка>C:\Дополнительно  Streams64.exe -d -d -nobanner C:\Дополнительно  *. * / Acceptpteula</Командная строка>
</Синхронная команда>

оставьте ответ