Обновления и поддерживаемые ключи
Я буду опираться на статью М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, вы увидите
примерно такую картину: