В статье описывается, как подготовить автоматическую установку обновлений, которая будет запущена за 13 минут до окончания установки Windows. Процесс установки обновлений может занять от 5 до 20 минут, в зависимости от их количества и конфигурации вашей системы. Сразу скажу, что процесс подготовки обновлений намного упростился по сравнению с pre-SP2 апдейтами.
Обновления и поддерживаемые ключи
Я буду опираться на статью МS Knowledge Base (MS KB) за номером 262841 - Command-Line switches for Windows software update packages. Microsoft использует несколько различных самораспаковывающихся пакетов, которые автоматически запускают программы обновлений, содержащихся внутри пакетов. Все пакеты обновлений для Windows XP и Windows 2003 Server содержат внутри программу Update.exe. Начиная с версии 5.4.15.0 эта программа поддерживает ключ , который нам очень поможет. А поможет он нам тем, что больше не понадобится вручную распаковывать обновления и вносить изменения в файлы svcpack.inf и dosnet.inf. Все это будет проделано автоматически. Для того, чтобы убедиться, что пакет на самом деле содержит Update.exe, загляните в свойства файла на закладку Версия. Там много полезной информации, включая даже ссылку на статью базы данных.
Ключ /integrate:path работает следующим образом. Первая часть его выполняет команду интеграции, а вторая задает путь к дистрибутиву, а точнее к директории содержащей папку i386. Таким образом, для интеграции обновления в дистрибутив, находящийся в директории C:\XPCD, нужно выполнить примерно такую команду:
WindowsXP-KB886185-x86-enu.exe /integrate:C:\XPCD
Об остальных ключах вы можете прочитать в вышеупомянутой статье МS KB, a я перейду к рассказу о том, что происходит при запуске обновления с ключом /integrate:path.
Интеграция обновлений
При запуске пакета обновления с ключом /integrate:path происходит следующее:
Новые версии файлов, содержащиеся в пакете обновлений распаковываются в i386, заменяя старые файлы. При этом они находятся в несжатом виде (*.dll вместо *.dl_)
Исполняемый файл обновления переименовывается в формат KBxxxxxx.exe в соответствии с номером статьи MS KB и копируется в директорию i386\svcpack
Каталоговый *.cat файл копируется в директорию i386\svcpack
В файл dosnet.inf в секцию [OptionalSrcDirs] вносится название каталога, содержащего обновления (svcpack)
В файл svcpack.inf добавляются запись для установки *.cat файла и запуска исполняемого файла обновления во время установки системы
После интеграции шести обновлений файл svcpack.inf выглядит следующим образом. В нем, кстати, видны и ключи /q /n /z, с которыми автоматически устанавливаются исполняемые файлы обновлений во время инсталляции системы.
[CatalogHeader]
[Version]
BuildNumber=2600
MinorVersion=1
MajorVersion=5
Signature="$WINDOWS NT$"
[SetupData]
CatalogSubDir="\I386\svcpack"
[SetupHotfixesToRun]
KB886185.exe /q /n /z
KB885626.exe /q /n /z
KB834707.exe /q /n /z
KB885836.exe /q /n /z
KB885835.exe /q /n /z
KB873339.exe /q /n /z
[ProductCatalogsToInstall]
KB886185.cat
KB885626.cat
KB834707.cat
KB885836.cat
KB885835.cat
KB873339.cat
Как видите, все что раньше приходилось делать вручную, теперь выполняется одной командой.
Примечание
В Феврале Microsoft выпустила обновление KB885250, которое не интегрируется при помощи ключа /integrate, если в дистрибутив уже интегрировано обновление KB885835 (и наоборот). Возможно, со временем Microsoft исправит эту проблему, а пока используйте обходной путь, который описан в этой теме на конференции OSZone.
Заключение
После того, как вы запишете ваш инсталляционный диск и проведете установку системы, вам не понадобится загружать критические обновления. Если вы все сделали правильно, то посетив сайт Windows Update, вы увидите примерно такую картину: