Статья для журнала
На фоне многочисленных публикаций о возможностях новой версии пользовательской операционной системы Windows 7, выход серверной ОС Windows Server 2008 R2 и связанных инструментов, остался практически не замечен. Новинки появившиеся в Windows AIK и будут рассмотрены далее.
Пакет автоматической установки Windows (WAIK, Windows Automated Installation Kit) позволяет упростить развертывание операционных систем Windows, за счет интеграции приложений, драйверов в установочный образ, и автоматизации самой установки системы. В зависимости от ОС, которую планируется развертывать, следует подбирать и версию WAIK. Предыдущий релиз пакета назывался “Пакет автоматической установки (AIK) для Windows Vista с пакетом обновления 1 (SP1) и Windows Server 2008” на работу с которыми он собственно и был и рассчитан. Уже в нем появились нововведения по сравнению версией для XP. В частности WIM-файл (Windows Image), который поддерживает редактирование и может содержать несколько образов ОС. Плюс единый файл ответов в формате XML, избавлявший от путаницы. Выход Windows 7 потребовал и обновления соответсвующих инструментов – WAIK и Microsoft Deployment Toolkit 2010 (ранее пакет MDT назывался Business Desktop Deployment). Утилиты из старой версии отказались работать с новыми сервисными функциями.
Версия “Windows Automated Installation Kit (Windows 7)” как и показывает название ориентированна на развертывание Windows 7, а также Windows Server 2008 R2. Установить пакет можно на Windows Server 2003SP1/VistaSP1/2008/2008R2/7. Традиционно WAIK распространяется бесплатно, установочные файлы в виде DVD ISO-образа можно свободно скачать с сайта корпорации Microsoft.
В состав обновленного комплекта WAIK входит несколько уже традиционных инструментов:
Плюс документация и дополнительные пакеты необходимые для установки самого WAIK в некоторых системах.

Изменения в WAIK видны уже начиная с загрузочного меню
Новая утилита DISM входящая помимо WAIK и в поставку Windows 2008R2/7, при работе с образами Windows 2008R2/7 заменяет как минимум три утилиты из состава WAIK: Pkgmgr, PEimg и Intlcfg (International Settings Configuration Tool), плюс может использоваться в настройке рабочей системы. К слову перечисленные утилиты никуда не делись, поэтому ни что не мешает не менять привычек и использовать старые команды. DISM позволяет добавлять, обновлять, удалять и получать список драйверов и пакетов, в том числе и языковых, включать/отключать компоненты системы, работать с образами системы и производитеь некоторые другие операции.
DISM также работает и с WIM файлами Vista и Windows Server 2008 (без R2), но нужно быть готовыми, что в этом случае и при использовании WAIK в ОС отличных от Windows 2008R2/7, часть функций будут недоступны. Правда что-то испортить не получится, так как если параметр не поддерживается пользователь просто получает сообщение об ошибке. Например, в Vista и Server 2008 вообще не работает ключ /Online указывающий, что команду необходимо выполнить в рабочей ОС, а не с образом. Например:
PETools> DISM /Online /Get-Packages
Получаем:
DISM does not support servicing Windows Vista or Windows Server 2008 with the /Online Options.
Формат самой команды и вывода результата в DISM существенно отличается от используемых ранее. Общий синтаксис DISM такой:
DISM.exe {/image:<path_to_image> | /online} [dism_options] {servicing_command} [<servicing_argument>]
Например, чтобы получить информацию об WIM образе, при помощи ImageX вводим:
PETools> imagex /INFO d:\sources\install.wim
В ответ получали:
<IMAGE INDEX="1"> <NAME>Windows Vista BUSINESS</NAME>
С использованием DISM команда и результат выглядит так:
PETools> DISM /Get-WimInfo /WimFile:d:\sources\install.wim Index : 1 Name : Windows Vista BUSINESS
Если нужно обратиться к определенному образу (например, первому) следует использовать дополнительный ключ “/index:1”.
Ключей в DISM используется достаточно много, при помощи “ /?” можно увидеть лишь самые востребованные, кроме этого каждый ключ также имеет дополнительные параметры. В документации WAIK расписаны все основные моменты по использованию DISM в различных ситуациях. Разберем некоторые из команд, чтобы увидеть разницу.
Образ перед использованием следует смонтировать:
PETools>DISM /Mount-Wim /WimFile:d:\sources\install.wim /index:1 /MountDir:c:\img
Поддерживается также и ключ “/ReadOnly” показывающий, что монтировать нужно только в режиме для чтения. Для получения списка различных составляющих системы следует использовать соответствующий ключ: Get-Drivers (драйвера), Get-Features (компоненты), Get-Packages (пакеты, обновления), Get-Intl (установки локализации).
PETools> DISM /Image:c:\img /Get-Drivers | more PETools> DISM /Image:c:\img /Get-Features | more
Теперь чтобы узнать подробнее о конкретном драйвере, вводим:
PETools> DISM /Get-DriverInfo /driver:oem1.inf
Это для установленного драйвера, иначе следует указать полный путь к файлу.
Команды можно использовать и в рабочей системе:
PETools>DISM /Online /Get-Features | more
Теперь получив нужные названия, отключаем встроенные игры и активируем роль веб-сервера IIS:
PETools> DISM /Online /Disable-Feature:InboxGames PETools> DISM /Online /Enable-Feature /FeatureName:IIS-WebServerRole
Для установки или удаления пакетов используется соответственно Add-Packages и Remove-Package. Но DISM поддерживает работу только с .cab, .msu и .inf файлами. Для установки .msi следует использовать OCSetup, сервис паков – Windows Update Stand-alone Installer (Wusa.exe)
По окончании работы образ следует размонтировать:
PETools> DISM /Unmount-Wim /MountDir:c:\img /commit
Если сохранять изменения не планируется, то вместо /commit используем /discard. То есть общий принцип работы с образами остался неизменным. Но теперь как к образу, так и к рабочей машине можно применить файл-ответов с настройками:
> DISM /Online /Apply-Unattend:C:\answerfiles\unattend.xml
Параметров у DISM действительно много, причиной появления этой утилиты, скорее всего является желание разработчиков дать пользователю универсальный инструмент.

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

DISM имеет достаточно много различных параметров
Вся работа с USMT состоит в использовании двух утилит ScanState (сбор файлов и параметров с исходного компьютера) и LoadState (восстановление среды). Теперь к ним добавлена еще одна – UsmtUtils, при помощи, которых можно получить список поддерживаемых алгоритмов шифрования (/ec) или удалить жесткую ссылку из базы сформированой ScanState (/rd).
К ранее поддерживаемому 3DES, в список алгоритмов шифрования данных, которые можно указывать в параметре /encrypt (ScanState) или /decrypt (LoadState) добавлен AES 128/192/256.
Но самым заметным нововедением USMT 4.0 является так называемая миграция жестких ссылок (Hard Link Migration) активируемая параметром /hardlink. Суть ее такова. Ранее чтобы сохранить и перенести пользовательсике данные их вначале каталогизировали, переносили на другой ресурс, а затем после установки ОС возвращали все обратно. Учитывая, возможные объемы данных которые хранил пользователь, весь процесс занимал достаточно много времени и требовал к тому же дополнительного места для хранения информации. Теперь после ввода команды:
> ScanState c:\store /o /c /i: app.xml /i: user.xml /nocompress /hardlink
Вместо непосредственного копирования данных в каталоге c:\store создаются только жесткие ссылки. При переносе ОС жесткий диск будет очищен кроме файлов заблокированных такими ссылками. В итоге объем копируемых данных и время затраченное на развертывание системы, значительно уменьшается.
Кроме этого при использовании USMT уже не требуется обязательное подключение к домену, а запуск ScanState можно производить из Windows PE. В связи с появлением Hard Link Migration в команде ScanState предусмотрен новый ключ /vsc, позволяющий задействовать службу теневого копирования (Volume Shadow Copy) для захвата заблокированных другими приложениями файлов.
В сценарии Config.xml (автоматически создается при помощи ScanState /genconfig) появились новые параметры и секции. Например, секция
<Policies> <HardLinkStoreControl> <fileLocked> <createHardLink>c:\Users\* [*]</createHardLink> <errorHardLink>C:\* [*]</errorHardLink> </fileLocked> </HardLinkStoreControl> </Policies>
При этом: