Как стать автором
Обновить

Борьба с sysprep, или как облегчить себе жизнь с Windows Vista

Время на прочтение3 мин
Количество просмотров9.7K
Я до этого механизма доходил месяца два – с криками, матом, ворчанием в адрес разработчиков ПО Microsoft. Некоторые нюансы все еще остались для меня загадкой. Но основная часть решена.

Среди задач, поставленных передо мной, были следующие:

— установить Windows Vista Home Basic
— заставить работать на нем некое специфическое ПО
— установить на втором разделе FreeDOS и внедрить его в загрузчик Vista
— научиться делать запаковку

Часть первая. Многоликий Sysprep

Когда слышишь любую фразу, связанную с названием операционной системы от Microsoft, в которой есть слово Home, на ум приходит в первую очередь непомерно урезанная версия для домохозяек – невозможность редактирования локальных политик и групп пользователей, урезанный до удаленного помощника RDP, отсутствие некоторых важных утилит администрирования… Но со всем этим приходится бороться, ибо задача есть и нужно ее решить при отсутствии альтернативы.


Что нового в механизме sysprep от Vista

1. Sysprep теперь встроен в систему. Лежит в папке C:\Windows\system32\sysprep
2. Поменялись названия ключей и способ их задания. То есть если в XP можно было ограничиться простым sysprep –reseal, то в Vista это не прокатит. Ключи задаются жестко и в определенном сочетании:
/oobe или /audit – два режима, в которых возможен запуск sysprep. На выбор или/или, но запустить sysprep без любого из них не получится.
/generalize – опционально, аналог reseal, но без /oobe или /audit не запустится
/reboot или /shutdown – соответственно, шатдаун или ребут по окончании sysprep, в зависимости от поставленной задачи
/unattend:path – путь к файлу ответов
3. Изменен сам механизм подготовки системы, касающийся, в частности, учетных записей пользователей. Если в XP текущие настройки пользовательского профиля сохранялись и после sysprep, то в Vista в режиме /oobe по умолчанию всегда создается новый профиль пользователя вне зависимости от того, существует ли в системе еще пользователи. Таким образом, если при установки системы новый профиль создается по умолчанию, то после sysprep вы получите еще и второй.

Как с этим бороться

Алгоритм создания нужного образа сам по себе не представляет сложности. Но для этого придется, как минимум, скачать WAIK (Windows Automatic Installation Kit), при помощи которого создается файл ответов с нужными параметрами. Как показала практика, это единственный разумный выход достижения желаемого результата, хотя он и не претендует на исключительность.
Для того чтобы исключить создание ненужных профилей в системе, сразу после установки системы запустите режим sysprep /audit /generalize /reboot. После перезагрузки активизируется скрытая учетная запись суперадминистратора (чьи полномочия на порядок выше полномочий обычных пользователей с администраторскими правами), из-под которой можно смело удалить учетную запись, созданную при установке системы. Все настройки, сделанные под учетной записью суперадминистратора, формируются в профиле Default User. После того как все необходимые приготовления будут сделаны, можно приступить к созданию файла ответов.

Создание файла ответов

WAIK оказался довольно гибким и удобным инструментом для решения поставленной мной цели. Его возможности используются как для автоматической установки Windows, так и для автоматического sysprep. В моем случае была важна вторая составляющая.
Механизм работы утилиты sysprep состоит из нескольких так называемых «проходов» – specialize, generalize и oobeSystem, для каждого из которых есть возможность настроить необходимые параметры. В частности, параметр CopyProfile, существующий только для прохода specialize, отвечает за копирование настроенного по умолчанию профиля во все вновь создаваемые учетные записи (что нам как раз необходимо). Выставляем его в true. По желанию, можно также настроить параметры oobeSystem, куда входит, например, автовыбор языковой локали, установка временного пояса и др. Это сведет к минимуму количество действий, которые будет необходимо совершить конечному пользователю, когда он получит на руки уже готовый образ. В версии моего файла ответов пользователь в итоге вводил только имя компьютера, остальное система делала за него сама.
Полученный файл unattend.xml (другие вариации названия файла Vista принимать отказывается) копируется в два места:
C:\Windows\system32\sysprep\sysprep\Panther\
C:\Windows\Panther\
После это можно запускать длинную и замысловатую команду
C:\Windows\system32\sysprep\sysprep /oobe /generalize /reboot (или /shutdown) /unattend: C:\Windows\system32\sysprep\sysprep\Panther\unattend.xml

Создание образа можно считать законченным.

Дополнительные фичи

Иногда появляется необходимость запустить какой-нибудь cmd-файл со своими командами перед первым входом в систему до логина. Это можно сделать, создав файл setupcomplete.cmd и поместив его в каталог C:\Windows\Setup\Scripts\ (папка Scripts в Home Basic отсутствует – создаем ее сами).

Продолжение следует…

Теги:
Хабы:
Всего голосов 13: ↑11 и ↓2+9
Комментарии8

Публикации

Истории

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн