Поделиться через


Перенос параметров приложений

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

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

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

Перед началом

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

Шаг 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 функцию можно использовать для проверка для правильной версии исполняемого файла приложения. Пример использования вспомогательной DoesFileVersionMatch функции см. в разделе Windows Live™ Messenger файла MigApp.xml .

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

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

Как определить, где хранится каждый параметр

  1. Скачайте средство мониторинга файлов и реестра, например Монитор процессов (Procmon), с веб-сайта Sysinternals.

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

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

    Примечание.

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

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

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

    Примечание.

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

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

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

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

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

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

    Чтобы определить, какие файлы и (или) разделы и значения реестра необходимо создать, чтобы обеспечить работу импорта, выполните следующие действия:

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

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

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

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

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

Вариант 3. Приложение перезаписывает параметры при установке

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

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

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

Примечание.

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

Важно.

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

Скрипт должен выполнить следующие действия:

  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 10 на Windows 11, установите Windows 11, а затем установите приложение в Windows 11. Затем запустите LoadState на тестовом компьютере и убедитесь, что все параметры перенесены. При необходимости внесите исправления и повторите процесс, пока все необходимые параметры не будут перенесены правильно.

Чтобы ускорить сбор и перенос данных, одновременно можно перенести только одного пользователя. Все остальные компоненты можно исключить из миграции, за исключением тестируемого приложения. Чтобы указать только User1 в миграции, введите:

/ue:*\* /ui:user1

Дополнительные сведения см. в статье Об исключении файлов и параметров и разделе Параметры пользователя в статье Синтаксис ScanState . Чтобы устранить проблему, проверка журнал хода выполнения, журнал ScanState и журнал LoadState. Журналы содержат предупреждения и ошибки, которые могут указывать на проблемы с миграцией.