다음을 통해 공유


응용 프로그램 설정 마이그레이션

특정 기간 업무 애플리케이션 설정을 마이그레이션하거나 USMT(사용자 상태 마이그레이션 도구)의 기본 마이그레이션 동작을 변경하기 위해 사용자 지정.xml파일을 만들 수 있습니다. ScanStateLoadState에서 이 파일을 사용하려면 두 명령줄 모두에서 사용자 지정 .xml 파일을 지정해야 합니다.

이 문서에서는 를 사용하여 MigApp.xml기본적으로 마이그레이션되지 않는 애플리케이션의 설정을 마이그레이션하는 사용자 지정 마이그레이션 .xml 파일을 작성하는 방법을 정의합니다. 애플리케이션을 설치한 후 사용자가 처음으로 애플리케이션을 실행하기 전에 설정을 마이그레이션해야 합니다.

이 문서에는 애플리케이션별 저장소에 설정을 저장하는 애플리케이션을 마이그레이션하는 방법에 대한 정보가 포함되어 있지 않으며, 파일 또는 레지스트리에 정보를 저장하는 애플리케이션만 포함되어 있습니다. 또한 애플리케이션을 사용하여 사용자가 만드는 데이터를 마이그레이션하는 방법에 대한 정보도 포함하지 않습니다. 예를 들어 애플리케이션이 특정 템플릿을 사용하여 .doc 파일을 만드는 경우 이 문서에서는 .doc 파일 및 템플릿 자체를 마이그레이션하는 방법을 설명하지 않습니다.

시작하기 전에

원본 컴퓨터의 운영 체제를 포함하는 테스트 컴퓨터를 식별해야 합니다. 테스트 컴퓨터에는 설정을 마이그레이션해야 하는 애플리케이션도 있어야 합니다. 예를 들어 Windows 10 Windows 11 마이그레이션하는 경우 테스트 컴퓨터에 Windows 10 설치한 다음 애플리케이션을 설치합니다.

1단계: 애플리케이션이 원본 컴퓨터에 설치되어 있고 대상 컴퓨터에 설치할 버전과 동일한 버전인지 확인합니다.

USMT에서 설정을 마이그레이션하기 전에 애플리케이션이 원본 컴퓨터에 설치되어 있는지 여부와 올바른 버전인지 검사. 애플리케이션이 원본 컴퓨터에 설치되지 않은 경우 USMT는 여전히 애플리케이션의 설정을 검색하는 데 시간을 소비합니다. 더 중요한 것은 USMT가 설치되지 않은 애플리케이션에 대한 설정을 수집하는 경우 대상 컴퓨터가 잘못 작동하도록 하는 설정을 마이그레이션할 수 있다는 것입니다. 또한 새 버전이 설정을 다른 위치에 저장할 수 있으므로 둘 이상의 애플리케이션 버전이 있는지 여부를 결정합니다. 애플리케이션 버전이 일치하지 않는 경우 대상 컴퓨터에서 예기치 않은 결과가 발생할 수 있습니다.

애플리케이션이 설치되어 있는지 검색하는 방법에는 여러 가지가 있습니다. 가장 좋은 방법은 레지스트리에서 애플리케이션 제거 키를 검사 것입니다. 그런 다음, 애플리케이션을 설치한 실행 파일을 검색할 수 있습니다. 동일한 애플리케이션의 다른 버전이 동일한 제거 키를 공유하기 때문에 이러한 두 항목에 대해 검사 것이 중요합니다. 키가 있더라도 원하는 다른 버전의 애플리케이션에 해당할 수 있습니다.

레지스트리에서 애플리케이션 제거 키 확인

많은 애플리케이션, 특히 Microsoft Windows Installer 기술을 사용하여 설치된 애플리케이션은 다음에서 애플리케이션 제거 키를 만듭니다.

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사용합니다. Regedit.exe는 일반적으로 C:\Windows에 저장된 경로에 %SystemRoot%있습니다.

파일 시스템에서 애플리케이션 실행 파일 확인

애플리케이션을 설치한 실행 파일에 대한 애플리케이션 이진 파일도 확인해야 합니다. 애플리케이션 이진 파일에 대해 검사 애플리케이션이 설치된 위치와 실행 파일의 이름을 결정합니다. 대부분의 애플리케이션은 레지스트리에 애플리케이션 이진 파일의 설치 위치를 저장합니다. 설치 경로가 포함된 레지스트리 값을 찾을 때까지 다음 항목 중 하나에서 레지스트리를 검색해야 합니다.

  • 애플리케이션의 이름입니다.
  • 애플리케이션 실행 파일의 이름입니다.
  • 애플리케이션을 만드는 회사의 이름입니다.

애플리케이션 실행 파일의 경로가 결정되면 도우미 함수를 DoesFileVersionMatch 사용하여 올바른 버전의 애플리케이션 실행 파일을 검사 수 있습니다. 도우미 함수를 사용하는 방법에 대한 예제는 DoesFileVersionMatch 파일의 Windows Live™ Messenger 섹션을 MigApp.xml 참조하세요.

2단계: 각 설정이 컴퓨터에 저장되는 위치를 수집하고 결정하는 설정 식별

다음으로, 사용자 인터페이스를 살펴보고 사용 가능한 모든 설정 목록을 만듭니다. 마이그레이션할 필요가 없는 설정이 있는 경우 목록을 줄일 수 있습니다. 각 설정이 저장되는 위치를 확인하려면 설정을 변경합니다. 설정이 변경되면 프로세스 모니터와 같은 도구를 통해 레지스트리 및 파일 시스템의 활동을 모니터링합니다. 애플리케이션이 설치될 때 생성되는 이진 파일 및 레지스트리 설정은 마이그레이션할 필요가 없습니다. 애플리케이션이 대상 컴퓨터에 다시 설치되면 해당 설정을 다시 만듭니다. 사용자 지정된 설정만 마이그레이션해야 합니다.

각 설정이 저장되는 위치를 확인하는 방법

  1. Sysinternals 웹 사이트에서프로세스 모니터(Procmon)와 같은 파일 및 레지스트리 모니터링 도구를 다운로드합니다.

  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: 대상 컴퓨터의 애플리케이션 버전이 원본 컴퓨터의 애플리케이션 버전보다 최신 버전입니다.

이 경우 최신 버전의 애플리케이션은 수정 없이 원본 컴퓨터에서 설정을 읽을 수 있습니다. 즉, 이전 버전의 애플리케이션에서 수집된 데이터는 최신 버전의 애플리케이션과 호환되는 경우가 있습니다. 그러나 다음 조건 중 하나가 true인 경우 설정 위치를 수정해야 할 수 있습니다.

  • 최신 버전의 애플리케이션은 이전 버전에서 설정을 가져올 수 있습니다. 이 매핑은 일반적으로 설정이 마이그레이션된 후 사용자가 최신 버전을 처음 실행할 때 발생합니다. 일부 애플리케이션은 설정을 마이그레이션한 후 자동으로 설정을 가져옵니다. 그러나 다른 애플리케이션은 애플리케이션이 이전 버전에서 업그레이드된 경우에만 설정을 가져옵니다. 애플리케이션이 업그레이드되면 이전 버전의 애플리케이션이 이전에 설치되었음을 나타내는 파일 및/또는 레지스트리 키 집합이 설치됩니다. 최신 버전의 클린 설치가 수행되면 컴퓨터에 이러한 파일 및 레지스트리 키가 포함되지 않습니다. 파일 및 레지스트리 키가 없는 경우 매핑이 발생하지 않습니다. 최신 버전의 애플리케이션을 속여 이 가져오기 프로세스를 시작하려면 마이그레이션 스크립트가 대상 컴퓨터에 이러한 파일 및/또는 레지스트리 키를 만들어야 할 수 있습니다.

    가져오기가 작동하도록 만들어야 하는 파일 및/또는 레지스트리 키/값을 식별하려면 다음을 수행합니다.

    1. 이전 버전의 애플리케이션을 최신 버전으로 업그레이드합니다.
    2. 각 설정이 저장되는 위치를 확인하는 방법에 설명된 것과 동일한 프로세스를 사용하여 파일 시스템 및 레지스트리에 대한 변경 내용을 모니터링합니다.

    컴퓨터에 필요한 파일 집합이 알려 <지면 addObjects> 요소를 사용하여 대상 컴퓨터에 추가할 수 있습니다.

  • 최신 버전의 애플리케이션은 원본 컴퓨터에서 설정을 읽을 수 없으며 설정을 새 형식으로 가져올 수도 없습니다. 이 경우 이전 위치에서 새 위치로의 각 설정에 대한 매핑을 만듭니다. 매핑을 만들려면 각 설정이 저장되는 위치를 확인하는 방법에 설명된 프로세스를 사용하여 최신 버전이 각 설정을 저장하는 위치를 결정합니다. 매핑을 만든 후 locationModify> 요소 및 및 도우미 함수를 사용하여< 대상 컴퓨터의 RelativeMove 새 위치에 설정을 적용합니다.ExactMove

사례 2: 대상 컴퓨터에 애플리케이션에 대한 설정이 이미 포함되어 있습니다.

애플리케이션을 설치한 후 사용자가 처음으로 애플리케이션을 실행하기 전에 설정을 마이그레이션하는 것이 좋습니다. 이 프로세스는 설정을 마이그레이션할 때 대상 컴퓨터에 설정이 없도록 하기 때문에 이 프로세스를 권장합니다. 마이그레이션 전에 애플리케이션을 설치해야 하는 경우 destinationCleanup> 요소를 사용하여< 기존 설정을 삭제해야 합니다. 어떤 이유로든 대상 컴퓨터에 있는 설정을 유지해야 하는 경우 병합> 요소 및 도우미 함수를< 사용할 수 있습니다.DestinationPriority

사례 3: 설치 시 애플리케이션이 설정을 덮어씁니다.

애플리케이션을 설치한 후 사용자가 처음으로 애플리케이션을 실행하기 전에 설정을 마이그레이션하는 것이 좋습니다. 이 프로세스는 설정을 마이그레이션할 때 대상 컴퓨터에 설정이 없도록 하기 때문에 이 프로세스를 권장합니다. 또한 일부 애플리케이션이 설치되면 컴퓨터에 있는 모든 기존 설정을 덮어씁니다. 이 시나리오에서는 애플리케이션이 설치되기 전에 데이터를 마이그레이션한 경우 사용자 지정된 설정을 덮어씁니다. 이 시나리오는 사용자 프로필 외부에 있는 위치에 설정을 저장하는 애플리케이션에 일반적입니다(일반적으로 이러한 설정은 모든 사용자에게 적용되는 설정임). 이러한 범용 설정은 애플리케이션이 설치될 때 덮어쓰여지고 기본값으로 바뀝니다. 이 문제를 방지하려면 파일 및 설정을 대상 컴퓨터로 마이그레이션하기 전에 이러한 애플리케이션을 설치해야 합니다. 기본적으로 USMT에서는 원본 컴퓨터의 데이터가 대상 컴퓨터의 동일한 위치에 이미 있는 데이터를 덮어씁니다.

4단계: 애플리케이션에 대한 마이그레이션 XML 구성 요소 만들기

1~3단계를 완료한 후 업데이트된 정보를 기반으로 애플리케이션을 마이그레이션하는 사용자 지정 마이그레이션 .xml 파일을 만듭니다. 이 파일에는 MigApp.xml 이 문서에서 설명하는 많은 개념의 예제가 포함되어 있으므로 모델로 사용할 수 있습니다. 또한 다른 샘플 .xml 파일에 대한 사용자 지정 XML 예제를 참조하세요.

참고

파일에 스크립트를 추가하는 대신 별도의 .xml 파일을 만드는 것이 MigApp.xml 좋습니다. 파일이 큰 파일이며 읽고 편집하기 어렵기 때문에 MigApp.xml 별도의 .xml 파일을 사용하는 것이 좋습니다. 또한 USMT를 다시 설치 MigApp.xml 하면 파일이 기본 버전의 파일로 덮어쓰여지고 사용자 지정된 버전이 손실됩니다.

중요

일부 애플리케이션은 애플리케이션 설치 경로, 컴퓨터 이름 등과 같은 정보를 사용자 프로필에 저장합니다. 사용자 프로필에 저장된 애플리케이션 정보는 마이그레이션하면 안 되며 마이그레이션에서 제외되어야 합니다.

스크립트는 다음 작업을 수행해야 합니다.

  1. 올바른 버전의 애플리케이션이 설치되어 있는지 확인합니다.

    • 도우미 함수를 사용하여 DoesObjectExist 에서 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 설치 제거 키를 검색합니다.

    • 도우미 함수를 사용하여 DoesFileVersionMatch 애플리케이션 실행 파일의 올바른 버전을 확인합니다.

  2. 올바른 버전의 애플리케이션이 설치된 경우 각 설정이 대상 컴퓨터의 적절한 위치로 마이그레이션되었는지 확인합니다.

    • 원본 컴퓨터와 대상 컴퓨터 모두에서 애플리케이션 버전이 동일한 경우 include> 및 exclude 요소를 사용하여< 각 설정을 마이그레이션합니다.><

    • 대상 컴퓨터의 애플리케이션 버전이 원본 컴퓨터의 애플리케이션 버전보다 최신이고 애플리케이션이 설정을 가져올 수 없는 경우 스크립트는 다음 중 하나를 수행해야 합니다.

      1. addObjects 요소를 사용하여 가져오기를 트리거하는 <파일 집합을 추가합니다> .
      2. locationModify 요소 및 및 ExactMove 도우미 함수를 사용하여 <대상 컴퓨터의 올바른 위치에 이전 설정을 적용하는 매핑을 만듭니다.>RelativeMove
    • 설정을 마이그레이션하기 전에 애플리케이션을 설치해야 하는 경우 destinationCleanup> 요소를 사용하여< 대상 컴퓨터에 이미 있는 설정을 삭제합니다.

.xml 요소 및 도우미 함수에 대한 자세한 내용은 XML 요소 라이브러리를 참조하세요.

5단계: 애플리케이션 설정 마이그레이션 테스트

테스트 컴퓨터에서 대상 컴퓨터에 설치할 운영 체제를 설치합니다. 예를 들어 Windows 10 Windows 11 마이그레이션을 계획하는 경우 Windows 11 설치한 다음 Windows 11 애플리케이션을 설치합니다. 다음으로, 테스트 컴퓨터에서 LoadState 를 실행하고 모든 설정이 마이그레이션되는지 확인합니다. 필요한 경우 수정하고 필요한 모든 설정이 올바르게 마이그레이션될 때까지 프로세스를 반복합니다.

데이터를 수집하고 마이그레이션하는 데 걸리는 시간을 단축하기 위해 한 번에 하나의 사용자만 마이그레이션할 수 있습니다. 테스트 중인 애플리케이션을 제외한 다른 모든 구성 요소는 마이그레이션에서 제외될 수 있습니다. 마이그레이션에서 User1 만 지정하려면 다음을 입력합니다.

/ue:*\* /ui:user1

자세한 내용은 파일 및 설정 제외 문서 및ScanState 구문 문서의 사용자 옵션 섹션을 참조하세요. 문제를 해결하려면 진행률 로그, ScanState 로그 및 LoadState 로그를 검사. 로그에는 마이그레이션 문제를 가리킬 수 있는 경고 및 오류가 포함됩니다.