Миграция параметров приложения

Вы можете создать свой xml-файл для переноса параметров определенного бизнес-приложения или изменения поведения по умолчанию при миграции с помощью средства миграции пользовательской среды (USMT) 10.0. Для его использования в программах ScanState и LoadState укажите этот XML-файл в командной строке запуска обеих программ.

В этом разделе определяется способ создания пользовательского XML-файла миграции для переноса параметров приложения, которые не перенесены по умолчанию при использовании файла MigApp.xml. Необходимо перенести параметры после установки приложения, но до первого запуска приложения пользователем.

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

В этом разделе

  • Перед началом работы

  • Шаг 1. Убедитесь, что приложение установлено на исходном компьютере и его версия совпадает с версией, которая будет установлена на целевом компьютере.

  • Шаг 2. Определите параметры, которые следует собрать, и место сохранения каждого параметра на компьютере.

  • Шаг 3. Определите способ применения собранных параметров.

  • Шаг 4. Создайте XML-компонент миграции для приложения.

  • Шаг 5. Протестируйте перенос параметров приложения.

Перед началом работы

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

Шаг 1. Убедитесь, что приложение установлено на исходном компьютере и его версия совпадает с версией, которая будет установлена на целевом компьютере.

Перед переносом параметров средством USMT необходимо проверить, установлено ли приложение на исходном компьютере, а также правильность версии. Если приложение не установлено на исходном компьютере, возможно, вы не захотите, чтобы средство USMT потратило время на поиск параметров этого приложения. Более важно, если USMT соберет настройки приложения, которое не установлено, перенос параметров может состояться, что приведет к неправильной работе целевого компьютера. Также следует проверить, существуют ли другие версии приложения. Это необходимо, поскольку параметры новой версии могут сохраняться в другом месте, что может привести к непредсказуемым результатам на целевом компьютере.

Есть разные способы проверить, установлено ли приложение. Рекомендуется проверить ключ удаления приложения в реестре, а затем найти на компьютере исполняемый файл, с помощью которого было установлено приложение. Важно проверить оба элемента, поскольку иногда разные версии одного приложения совместно используют один и тот же ключ удаления в реестре. Поэтому даже если ключ есть, он может не соответствовать нужной версии приложения.

Найдите ключ удаления приложения в реестре.

В случае если установлено много приложений (особенно при использовании технологии установщика Microsoft® Windows®), ключ удаления приложения создается в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. Например, при установке Adobe Acrobat Reader 7 создается ключ с именем HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall \{AC76BA86-7AD7-1033-7B44-A70000000000}. Таким образом, если в реестре имеется этот ключ, на компьютере установлено приложение Adobe Acrobat Reader 7. Наличие раздела реестра можно проверить с помощью вспомогательной функции DoesObjectExist.

Обычно этот ключ можно найти, выполнив поиск по разделу HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, используя имя приложения, имя исполняемого файла приложения или имя компании, выпустившей приложение. Вы можете использовать редактор реестра (Regedit.exe, расположенный по адресу %SystemRoot%) для поиска в реестре.

Проверьте наличие исполняемого файла приложения в файловой системе.

Следует также проверить двоичные файлы приложения на наличие исполняемого файла, который установил приложение. Для этого сначала надо определить место установки приложения и имя исполняемого файла. Для большинства приложений место установки двоичных файлов приложения сохраняется в реестре. В реестре следует выполнять поиск по имени приложения, имени исполняемого файла приложения или названию компании, выпустившей приложение, пока не будет найден параметр реестра, содержащий путь установки. Определив путь к исполняемому файлу приложения, с помощью вспомогательной функции DoesFileVersionMatch можно проверить правильную версию исполняемого файла приложения. Пример выполнения таких действий можно найти в разделе Windows Live(TM) Messenger файла MigApp.xml.

Шаг 2. Определите параметры, которые следует собрать, и место сохранения каждого параметра на компьютере.

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

Mt299190.wedge(ru-ru,VS.85).gifКак определить место сохранения каждого параметра

  1. Загрузите файл и средство отслеживания реестра, например Regmon или Filemon, на веб-сайте Windows Sysinternals.

  2. Закройте как можно больше приложений, чтобы ограничить активность реестра и файловой системы на компьютере.

  3. Отфильтруйте выходные данные этих средств, чтобы показать только изменения, вносимые приложением.

    Примечание  

    Параметры большинства приложений сохраняются в профиле пользователя. Это означает, что параметры, сохраняемые в файловой системе, находятся в каталоге %UserProfile%, а параметры, сохраненные в реестре, находятся в разделе HKEY_CURRENT_USER. Для таких приложений можно фильтровать выходные данные средств мониторинга файлов и реестра, чтобы отображалась активность только в этих расположениях. Это существенно уменьшит объем проверяемых выходных данных.

     

  4. Запустите средства мониторинга, измените параметр и проверьте записи реестра и файловой системы, которые появились после изменения параметра. Убедитесь, что внесенные изменения вступили в действие. Например, если вы изменяете какую-либо настройку Microsoft Word, отмечая флажком один из пунктов диалогового окна Параметры, это изменение обычно не применяется, пока вы не закроете это диалоговое окно нажатием кнопки ОК.

  5. Когда параметр изменится, отметьте изменения в файловой системе и реестре. Каждому параметру может соответствовать изменение нескольких файлов или значений реестра. Вы должны определить минимальный набор изменений файлов и разделов реестра, необходимых для изменения этого параметра. Этот набор файлов и разделов реестра будет необходимо перенести для переноса параметра.

    Примечание  

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

     

Шаг 3. Определите способ применения собранных параметров.

Если версия приложения на исходном компьютере совпадает с версией на целевом компьютере, можно не изменять собранные файлы и разделы реестра. По умолчанию USMT переносит файлы и разделы реестра из исходного местоположения в соответствующее место на целевом компьютере. Например, если файл был получен из папки C:\Documents and Settings\User1\My Documents, а каталог профиля на целевом компьютере расположен по адресу D:\Users\User1, то USMT автоматически перенесет файл в папку D:\Users\User1\My Documents. Однако в трех случаях может потребоваться изменить расположение некоторых параметров.

Случай 1. Версия приложения на целевом компьютере новее версии на исходном компьютере.

В ряде случаев новая версия приложения способна читать параметры с исходного компьютера без изменений. То есть данные, собранные из старой версии приложения, совместимы с новой версией приложения. Однако может потребоваться изменить расположение параметров, если верно любое из следующих условий.

  • Новая версия приложения способна импортировать параметры из старой версии. Такое сопоставление происходит обычно в случае, когда пользователь в первый раз запускает новую версию после переноса параметров. Одни приложения делают это автоматически после переноса параметров, а другие — если происходит обновление старой версии приложения. Когда приложение обновляется, устанавливается набор файлов и разделов реестра, по которым видно, что ранее была установлена более старая версия. При "чистой" установке новой версии (в большинстве случаев переноса данных) на компьютере отсутствует соответствующий набор файлов и разделов реестра, а значит, сопоставления нет. Чтобы направить новое приложение на инициализацию такого процесса импорта, может потребоваться, чтобы ваш скрипт переноса создавал эти файлы и разделы реестра на целевом компьютере.

    Чтобы определить, какие файлы, разделы или значения реестра необходимо создать для импорта, вам необходимо обновить более старую версию приложения на более новую и отследить изменения, внесенные в файловую систему и реестр с помощью процесса, описанного в разделе Как определить место хранения каждого параметра. Узнав, какой набор файлов требуется компьютеру, их можно добавить на целевой компьютер с помощью элемента <addObjects>.

  • Новой версии приложения не удается прочитать параметры с исходного компьютера, а также импортировать параметры в новый формат. В этом случае понадобится создать сопоставление старого и нового расположения для каждого параметра. Чтобы это сделать, определите, где более новая версия будет сохранять каждый параметр в ходе процесса, описанного в разделе Как определить место хранения каждого параметра. После создания сопоставления примените параметры к новому местоположению на целевом компьютере, используя элемент <locationModify> и функции помощника RelativeMove и ExactMove.

Случай 2. На целевом компьютере уже присутствуют параметры приложения.

Рекомендуется переносить параметры после установки приложения, но прежде чем пользователь впервые запустит его. Это гарантирует, что в момент переноса параметров они отсутствуют на целевом компьютере. Если приложение необходимо установить до миграции, следует удалить все существующие параметры с помощью элемента <destinationCleanup>. Если по какой-то причине вы хотите сохранить параметры на целевом компьютере, вы можете использовать элемент <merge> и вспомогательную функцию DestinationPriority.

Случай 3. При установке приложения параметры перезаписываются.

Рекомендуется переносить параметры после установки приложения, но прежде чем пользователь впервые запустит его. Это гарантирует, что в момент переноса параметров они отсутствуют на целевом компьютере. Кроме того, при установке некоторых приложений перезаписываются любые параметры, существующие на компьютере. В случае если перенос данных выполняется до установки приложения, пользовательские параметры будут перезаписаны. Это характерно для приложений, параметры которых сохраняются вне профиля пользователя (обычно это параметры, общие для всех пользователей). Такие универсальные параметры иногда перезаписываются при установке приложения и заменяются значениями по умолчанию. Чтобы избежать этого, необходимо устанавливать такие приложения до переноса файлов и параметров на целевой компьютер. По умолчанию при использовании USMT данные из исходного компьютера перезаписывают данные, которые уже существуют в том же месте на целевом компьютере.

Шаг 4. Создайте XML-компонент миграции для приложения.

После выполнения шагов 1–3 для переноса приложения на основании полученных данных необходимо создать собственный XML-файл миграции. В качестве модели можно использовать файл MigApp.xml, поскольку он содержит примеры многих понятий, которые рассматривались в этом разделе. Вы можете также просмотреть Примеры пользовательских XML-файлов, чтобы ознакомиться с еще одним образом XML-файла.

Примечание  

Мы рекомендуем создать отдельный XML-файл вместо добавления вашего скрипта в файл MigApp.xml. Это происходит потому, что файл MigApp.xml слишком велик и его сложно прочитать и отредактировать. Кроме того, при переустановке USMT по любой причине файл MigApp.xml будет перезаписан версией файла по умолчанию и вы потеряете вашу измененную версию.

 

Важно  

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

 

В скрипте должны быть предусмотрены описанные ниже действия.

  1. Проверка установки правильной версии приложения посредством:

    • Поиск ключа установки в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall с помощью помощника DoesObjectExist.

    • Проверка наличия правильной версии исполняемого файла приложения с использованием вспомогательной функции DoesFileVersionMatch.

  2. Если установлена правильная версия приложения, убедитесь, что каждый параметр переносится в правильное расположение на целевом компьютере.

    • Если версии приложений одинаковы на исходном и целевом компьютере, перенесите каждый параметр с помощью элементов <include> и <exclude>.

    • Если версия приложения на целевом компьютере является более новой, чем на исходном, и приложение не может импортировать параметры, ваш скрипт должен 1) добавлять набор файлов, запускающих импорт с помощью элемента <addObjects>, или 2) создать сопоставление, которое применяет старые параметры к нужному местоположению на целевом компьютере с помощью элемента <locationModify> и функциям помощника RelativeMove и ExactMove.

    • Если требуется установить приложение до переноса параметров, удалите любые параметры, уже имеющиеся на целевом компьютере, с помощью элемента <destinationCleanup>.

Сведения об XML-элементах и функциях помощника см. в разделе Библиотека XML-элементов.

Шаг 5. Протестируйте перенос параметров приложения.

На тестовом компьютере установите операционную систему, которая будет установлена на целевых компьютерах. Например, если планируется миграция из Windows 7 на Windows 10, установите и запустите Windows 10 и приложение. Затем запустите программу LoadState на тестовом компьютере и проверьте, все ли параметры переносятся. При необходимости вносите изменения и повторяйте процесс, пока не будут правильно перенесены все необходимые параметры.

Чтобы сократить время сбора и переноса данных, можно переносить пользователей по одному. Можно также исключить из переноса все компоненты, кроме тестируемого приложения. Чтобы указать только пользователя User1 в миграции, введите: /ue:*\* /ui:user1. Дополнительные сведения см. в разделе Исключение файлов и параметров и см. параметры пользователя в теме Синтаксис ScanState. Для устранения возникающих проблем проверьте журнал выполнения и журналы программ ScanState и LoadState, куда записываются предупреждения и ошибки, которые могут указывать на проблемы при миграции.

Связанные разделы

Справочник по XML для средства миграции пользовательской среды

Конфликты и приоритет

Библиотека XML-элементов

Файлы журналов