Вопрос или проблема
Я работаю над новым образом системы Windows в формате *.wim. Я закончил подготовку системы в режиме аудита, и сейчас хочу обобщить систему с помощью sysprep
, чтобы подготовиться к захвату образа с dism
. Между этими двумя задачами я хочу использовать инструмент dism /optimize-image
, так как планирую загрузить этот образ примерно на 80 машин. Что бы я ни пробовал, мне не удается корректно завершить шаг /optimize-image
.
Я пробовал несколько вариантов:
Если я пытаюсь использовать dism /optimize-image
на запущенной системе до или сразу после выполнения sysprep /generalize
(до перезагрузки), я не могу нацелиться на текущую систему с помощью /online
или /image:c:\
. Это ожидаемо, поскольку ни то, ни другое не разрешено, но я хотел быть тщательным. Точные ошибки немного различаются, но это неважно, так как они ясно показывают, что это неподдерживаемая операция, как и ожидалось.
Если я пытаюсь запустить процесс оптимизации образа, загрузившись в режим восстановления после выполнения sysprep /generalize
, командная строка режима восстановления больше недоступна. Она была доступна ранее, но была удалена в процессе обобщения. Я также проверил, что не могу повторно включить ее после выполнения sysprep /generalize
.
Если я пытаюсь запустить процесс оптимизации образа из среды WinPE после выполнения sysprep /generalize
и непосредственно перед запуском dism /capture-image
, он завершает работу с ошибкой, что провайдер недоступен. Действительно, дальнейшие исследования показывают, что WinPE DISM отличается от полной версии Windows DISM тем, что не включает провайдер optimize-image. Это ограничено сообщением на Reddit, но это соответствует моему опыту.
Похоже, единственный способ успешно запустить dism /optimize-image
— это загрузиться в командную строку восстановления до выполнения sysprep /generalize
. Но это кажется неправильным, так как мне нужно будет снова загрузиться в систему, чтобы выполнить sysprep /generalize
(я также пробовал сделать это из среды восстановления, но безуспешно), и это, кажется, сведет на нет работу, выполненную /optimize-image
в первую очередь.
Я не использую Windows Deployment Services или другие средства оркестрации на данный момент. Я просто хочу обобщить, оптимизировать и захватить файл wim вручную.
Раньше мы могли сделать это несколько лет назад, но это уже некоторое время не работает, и мы обходимся без этого, поскольку шаг /optimize-image считается необязательным. Но я хочу его запустить, если смогу.
Единственное, что я еще не пробовал, — это захват файла wim, его монтирование, а затем запуск оптимизации образа оттуда, чтобы я мог затем повторно зафиксировать и размонтировать его. Но это кажется утомительным, особенно на файле размером около 14 ГБ, и в прошлом это было не нужно.
Как я могу это сделать?
Ответ или решение
Чтобы успешно выполнить процесс подготовки вашей Windows-системы с использованием утилит Sysprep и DISM, в частности команды /generalize
и /optimize-image
, необходимо тщательно подойти к каждому этапу. Рассмотрим каждый шаг и возможные решения на русском языке.
Теория
Sysprep /generalize
Утилита Sysprep с параметром /generalize
используется для удаления уникальной информации о системе из Windows, что позволяет использовать один и тот же образ на нескольких компьютерах. Это важный шаг, если вы планируете развертывание образа на множество машин. Однако после выполнения этой команды учетные записи пользователей, системные SID и драйвера, привязанные к оборудованию, будут удалены.
DISM /optimize-image
Опция /optimize-image
с DISM (Deployment Image Servicing and Management) используется для оптимизации образа, что может уменьшить его размер и повысить эффективность развертывания. Однако выполнение этой команды может быть затруднено, особенно в средах WinPE или в системах, подготовленных Sysprep, как вы уже заметили.
Примеры и анализ
-
Запуск Sysprep:
- Обычно Sysprep выполняется в режиме онлайн, находясь на целевой машине в режиме аудита.
- Запуск команды для генерализации:
sysprep /oobe /generalize /shutdown
. Важно учитывать, что после генерализации система выключится или перезагрузится, в зависимости от указанных вами параметров.
-
Оптимизация образа:
- Запуск команды DISM
/optimize-image
на работающей системе не поддерживается. Традиционно эту опцию пытаются использовать на автономных образах.
- Запуск команды DISM
-
Среда восстановления до генерализации Sysprep:
- Как вы заметили, начиная с Windows 10, возможность запуска командной строки в режиме восстановления после генерализации ограничена. Это связано с изменениями в политике безопасности и управления системами Microsoft.
-
WinPE и ограничения:
- В среде WinPE могут отсутствовать некоторые функции, необходимые для оптимизации. Поддержка DISM в WinPE действительно ограничена, и функциональность может быть урезана для облегчения её использования в минималистичной среде.
Применение
Учитывая всю теорию и примеры, оптимальным решением вашей задачи может стать следующий подход:
-
Первичная подготовка:
- В среде Windows, прежде чем вы запускаете
sysprep /generalize
, попробуйте провести основную оптимизацию файловой системы собственными стандартными средствами, такими как дефрагментация или очистка диска.
- В среде Windows, прежде чем вы запускаете
-
Копирование образа и оптимизация:
- Захватите образ
wim
после генерализации с помощью команды:dism /capture-image /imagefile:C:\path\to\destination.wim /capturedir:C:\ /name:"My Custom Image"
- Захватите образ
-
Монтаж и оптимизация оффлайн-образа:
-
Смонтируйте созданный образ:
dism /mount-image /imagefile:C:\path\to\destination.wim /index:1 /mountdir:C:\mounted_image
-
Выполните оптимизацию:
dism /image:C:\mounted_image /optimize-image
-
После оптимизации отмонтируйте и примените изменения:
dism /unmount-image /mountdir:C:\mounted_image /commit
-
Заключение
Хотя предлагаемый подход может показаться более сложным, чем непрерывное выполнение команд на одной системе, он позволит вам обойти ограничения современных систем и подготовить оптимизированные образы для ваших нужд. Даже если оптимизация образа кажется дополнительной нагрузкой, в долгосрочной перспективе это может существенно сэкономить место и время при развертывании на множестве устройств.
Дополнительно можно рассмотреть использование инструментов автоматического развертывания, таких как Microsoft Deployment Toolkit или System Center Configuration Manager, которые могут взять на себя часть сложных процессов подготовки и развертывания. Эти инструменты могут интегрировать команды sysprep и dism, обеспечивая более плавное выполнение операций развертывания.
Таким образом, ключ к успеху заключается в правильном планировании и использовании расширенных возможностей управления образами Windows.