Компьютерщик на все руки: Жульничать не всегда плохо

Mila

Основатель
Сообщения
4,353
Реакции
6,996
Можно жульничать, обновляя WIM-файлы в автономном режиме средствами системы обновления Windows. Из этой статьи вы узнаете, как это делать.

Грэг Шилдс

Вы знаете, я совершенно очарован возможностями WDS (Windows Deployment Services). В конфигурации по умолчанию это средство предоставляет изумительно мощные средства автоматизации развертывания ОС Windows. Но это лишь начало.

Гибкость WDS, умноженная на возможности автоматизации WSIM (Windows System Image Manager), позволяет удивительно быстро разворачивать полностью сконфигурированные экземпляры Windows 7. В данном случае «полностью сконфигурированные» означает, что компьютер уже подключен к домену, полностью сконфигурирован, подключен к сети и готов к использованию. Можно сразу включать и начинать работу.

Но при всем богатстве возможностей автоматизации конфигурирования при развертывании операционных систем, всегда существовала процедура, которую до недавнего времени мне не удавалось автоматизировать. Речь идет от занимающей много времени, но важной процедуре установки обновлений Windows.

Долготерпение обновления

Я не очень терпеливый. Меня всегда раздражала необходимость ждать 5-10 минут, пока Windows загрузит и применит обновления. Даже когда для установки используешь WIM-образ (Windows Imaging Format) операционной системы Windows 7 на DVD-диске, все равно сразу же приходится устанавливать обновления. Я считаю неразумной установку обновлений вручную, впрочем, как и трехэтапный процесс создания образа, применения обновлений и последующего создания нового WIM-образа для библиотеки WDS.

Мне нужна была автоматизация, чтобы можно было выполнять установку простой командой. Приложив немного усилий, я узнал, как можно немного схитрить и организовать автономное применение обновлений к WIM-образу за счет использования сервера WSUS (Windows Server Update Services), команд DISM (Deployment Image Servicing and Management) и WDSUTIL, а также командного файла. Оказывается, мошенничество вполне оправдывает себя.

Шаг 1. Установка WSUS-сервера

Мне нужно было как-то организовать внедрение обновлений Windows непосредственно в WIM-образы. Разве можно найти для этого лучший вариант, чем использование WSUS-сервера?

Проще всего начать с установки нового экземпляра WSUS-сервера, который не отягощен массой устаревших обновлений. Сконфигурируйте сервер на локальную загрузку обновлений. Настройте загрузку только нужных обновлений.

Мне нужно было автоматизировать загрузку только тех обновлений, которые запрашиваются сразу после установки операционной системы. Поэтому я предусмотрел загрузку четырех категорий самых важных обновлений для Windows 7 и Windows Server 2008 R2: критические обновления (Critical Updates), обновления определений (Definition Updates), важные обновления (Important Updates) и обновления безопасности (Security Updates).

Шаг 2. Создание машины с Windows 7

После быстрой синхронизации мой сервер нашел почти семьсот обновлений четырех категорий (рис. 1), относящихся к указанным двум операционными системам. Это все равно слишком много. Мне нужно было ограничить этот список только теми обновлениями, которые Windows запрашивает сразу после установки. Поэтому снова пришлось пойти на обман.



Рис. 1. Служба обновления Windows обнаружила почти 700 обновлений

Средствами WDS создаем машину под управлением Windows 7. После нужно сконфигурировать параметры групповой политики так, чтобы подключить машину к ранее установленному WSUS-серверу. Эти параметры называются «Настройка автоматического обновления» (Configure Automatic Updates) и «Указать размещение службы обновлений Microsoft в интрасети» (Specify intranet Microsoft update service location) и находятся в папке Конфигурация компьютера/Политики/Административные шаблоны/Компоненты Windows/Обновление Windows (Computer Configuration/Administrative Templates/Windows Components/Windows Update).

В первом параметре надо выбрать вариант «Уведомления о загрузке и установке» (Notify for download and notify for install). Во втором параметре укажите свой экземпляр WSUS-сервера. Чтобы ускорить проверку обновлений, выполните команды gpupdate /force и wuauclt /resetauthorization /detectnow.

Шаг 3. Выбор обновлений

Мой стандартный экземпляр Windows 7 SP1 обнаружил примерно 70 действительно нужных обновлений. У вас ситуация будет похожей. Одобрите установку этих обновлений.

На этом этапе мошенничать приходится «по максимуму». Одобрение установки обновления WSUS-сервер рассматривает как сигнал к загрузке установочных файлов обновления. По умолчанию эти файлы загружаются в подпапки папки C:\WSUS\WsusContent (рис. 2). В своей папке вы найдете все эти 70 с хвостиком обновлений в папках, количество которых примерно такое же.



Рис. 2. Содержимое папки C:\WSUS\WsusContent

Шаг 4. Создание сценариев

WSUS-обновления нельзя загрузить так же, как обычные установочные файлы, и это может быть проблемой. Они практически всегда поставляются как CAB-файлы. И это плохо, потому что CAB-файл нельзя установить, просто дважды щелкнув его.

Однако они отлично подходят для таких инструментов командной строки, как DISM, который позволяет создавать сценарии для работы с WDS и WIM-образами.

Вообще говоря, применяя утилиту командной строки WDSUTIL к DISM и WDS, можно экспортировать и подключать «пустой» WIM-образ средствами WDS. После подключения и добавления цикла с «for» DISM будет по циклу устанавливать обновление, которое вы только что замечательным образом загрузили в папку C:\WSUS\WsusContent. После этого две команды фиксируют изменения, отключат WIM-образ и импортируют файл обратно в инфраструктуру WDS. Теперь установка исправлений полностью автоматизирована.

Я написал сценарий, который выполняет все эти операции. В сценарии предполагается, что образ называется W7SP1 и находится в группе образом с таким же именем и имеет порядковый номер «1». Для сценария нужны две папки: папка экспорта по имени C:\DISM и папка подключения C:\DISM\mount. Эти папки надо создать до запуска сценария. Вот его текст:
start /w wdsutil –Export-Image /image:W7SP1 /imageType:Install /imageGroup:W7SP1 /destinationImage /filePath:c:\dism\patchMe.wim /overwrite:yes
start /w dism /mount-wim /wimfile:c:\dism\patchMe.wim /mountdir:c:\dism\mount /index:1
start /w for /R C:\WSUS\WsusContent %f in (*.cab) do dism /image:c:\dism\mount /add-package /packagepath:"%f"
start /w dism /unmount-wim /mountdir:c:\dism\mount /commit
start /w wdsutil –Replace-Image /image:W7SP1 /imageType:Install /imageGroup:W7SP1 /replacementImage /imageFile:c:\dism\patchMe.wim

Внесите нужные изменения и добавьте соответствующие строки в командный файл. Обратите внимание, что каждая строка начинается с команды «start /w». Каждая из этих пяти команд выполняется довольно долго. Команда start /w гарантирует, что выполнение следующей команды не начнется, пока не завершится предыдущая.

После многих лет своего существования WSUS в этом продукте все еще остались «шероховатости», если использовать его «как положено». К счастью, WSUS обладает удивительно открытой архитектурой, которая позволяет обойти ограничения и наладить процесс автономного обновления WIM.


Грег Шилдс носит звание MVP и является партнером в компании Concentrated Technology.



источник
 
Назад
Сверху Снизу