ADG Оставить заявку
Блог Автоматизация 4 мин чтения

Двадцать рабочих мест за три дня: образ плюс Sysprep вместо ручной возни

Как мы развернули двадцать одинаковых Windows XP через образ с Sysprep: уникальные SID, имена из файла ответов, автоввод в домен - пятнадцать минут на место вместо двух часов.

Контекст момента

подготовка образов через Sysprep стала основным способом развёртывания Windows

Клиент открыл новый офис - двадцать рабочих мест, все под одну гребёнку: одинаковое железо, одинаковый набор программ, один домен. Задача на вид простая, пока не считаешь время. Двадцать установок Windows XP вручную - это примерно сорок часов работы, если не торопиться и не косячить. Торопиться на таком потоке как раз и не получается: к десятой машине уже путаешься, на какой ставил антивирус, а на какой забыл прописать принтер.

Клонирование через Ghost мы освоили ещё в 2002-м - быстро, но тянет за собой ручную работу после раскатки: SID менять, имя переименовывать, в домен вводить руками. На десяти машинах это терпимо, на двадцати уже раздражает. Тут и пришло время по-настоящему разобраться с Sysprep.

Что такое Sysprep и зачем он нужен. Это утилита от Microsoft, которая переводит Windows в режим "обобщения": удаляет все уникальные идентификаторы машины - SID, имя компьютера, сетевые настройки - и приводит систему к состоянию, из которого она при следующей загрузке начинает Mini-Setup как будто только что установлена. Образ, снятый после Sysprep, можно раскатывать сколько угодно раз - каждая копия при первом старте генерирует себе новый SID и проходит короткую инициализацию.

Ключевой момент - файл ответов sysprep.inf. Без него Mini-Setup запрашивает у пользователя всё руками: имя компьютера, ключ продукта, часовой пояс, домен. С ним - читает ответы из файла и либо всё делает автоматически, либо пропускает нужные шаги.

Как готовили эталонную машину. Установили Windows XP Professional чисто. Поставили все программы: Office 2003, 1С, корпоративный антивирус, клиент для печати, всё прочее по списку. Настроили политики через локальный редактор - обои, заставка, ограничения. Проверили, что всё работает. После этого запустили sysprep.exe -factory для финальной очистки и подготовки к генерации образа.

sysprep.inf написали заранее - там прописаны: ключ продукта с корпоративной лицензией, часовой пояс, имя организации, настройки сети. Имя компьютера - единственное, что менять на каждой машине нельзя автоматизировать через один файл без дополнительных трюков. Мы пошли простым путём: в секции [Unattended] прописали ComputerName = * - Sysprep при Mini-Setup генерирует случайное имя, а мы после завершения установки переименовываем машину скриптом по заранее заготовленному списку.

Ввод в домен автоматом. Это приятная часть. В sysprep.inf есть секция [Identification], где можно указать имя домена и учётные данные для присоединения:

[Identification]
JoinDomain = corp.example.local
DomainAdmin = setupadmin
DomainAdminPassword = <пароль в открытом виде, да>

Пароль в открытом виде - не идеально с точки зрения безопасности, но файл лежит только на внутреннем ресурсе и удаляется после завершения развёртывания. Компромисс рабочий. После Mini-Setup машина сама заходит в домен и перезагружается уже полноценным членом AD.

Раскатка. Образ снимали Ghost'ом - с эталонной машины после Sysprep, диск уже в состоянии ожидания Mini-Setup. Файл образа положили на сервер. Дальше схема обычная: загрузка с дискеты Ghost, тянем образ по сети, пятнадцать минут на раскатку, перезагрузка - и машина сама проходит Mini-Setup, входит в домен, ждёт нас.

После завершения Mini-Setup на каждой машине запускали bat-скрипт с общего ресурса - он переименовывал компьютер по списку (читал из текстового файла построчно), устанавливал принтер и делал финальную перезагрузку. Список имён готовили заранее вместе с клиентом.

Что получилось по времени. Раскатка одной машины - пятнадцать минут Ghost плюс примерно десять минут Mini-Setup, плюс пара минут скрипт. Итого около получаса на место, если идти не отвлекаясь. Двадцать мест - около десяти часов чистой работы, но это без параллелизма. На практике Ghost запускали на нескольких машинах одновременно, пока одна проходила Mini-Setup, на других уже заканчивалась раскатка. Уложились в два рабочих дня с проверкой каждой машины.

Вручную это было бы дней пять, и с неизбежными расхождениями между машинами.

Где ломалось. Один раз Mini-Setup завис на присоединении к домену - контроллер домена не отвечал из-за DHCP-конфликта на новом сегменте сети. Пришлось вводить в домен руками. Ещё две машины получили одинаковые случайные имена - Ghost'у не объяснишь, что ComputerName = * должен быть по-настоящему случайным на каждой машине, иногда совпадало. Следили за этим и при повторе переименовывали руками.

Такие развёртывания - часть того, чем мы занимаемся в рамках сопровождения клиентских рабочих мест. Образ - это не разовая акция: его надо обновлять при смене версии программ или когда накапливаются обновления безопасности. Держать его актуальным проще, чем каждый раз поднимать эталон с нуля.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.