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

사용자 지정 .xml 파일을 만들어 특정 LOB(기간 업무) 응용 프로그램 설정을 마이그레이션하거나 사용자 상태 마이그레이션 도구(USMT) 5.0의 기본 마이그레이션 동작을 변경할 수 있습니다. ScanState 및 LoadState에서 이 파일을 사용하려면 두 명령줄 모두에서 사용자 지정 .xml 파일을 지정해야 합니다.

이 항목에서는 MigApp.xml을 사용하여 기본적으로 마이그레이션되지 않는 응용 프로그램 설정을 마이그레이션하는 사용자 지정 마이그레이션 .xml 파일을 만드는 방법을 정의합니다. 응용 프로그램을 설치한 후 사용자가 응용 프로그램을 처음으로 실행하기 이전에 설정을 마이그레이션해야 합니다.

이 항목에서는 응용 프로그램별 저장소에 설정을 저장하는 응용 프로그램을 마이그레이션하는 방법에 대해서는 다루지 않고, 파일 또는 레지스트리에 정보를 저장하는 응용 프로그램에 대해서만 마이그레이션하는 방법을 설명합니다. 또한 사용자가 응용 프로그램을 사용하여 만드는 데이터를 마이그레이션하는 방법에 대한 정보는 없습니다. 예를 들어 응용 프로그램에서 특정 템플릿을 사용하여 .doc 파일을 만들 경우 이 항목에서는 .doc 파일과 템플릿을 마이그레이션하는 방법에 대해서는 설명하지 않습니다.

이 항목의 내용

  • 시작하기 전에

  • 1단계: 응용 프로그램이 원본 컴퓨터에 설치되어 있고 대상 컴퓨터에 설치할 버전과 동일한 버전인지 확인합니다..

  • 2단계: 수집할 설정을 식별하고 컴퓨터에서 각 설정이 저장되는 위치를 결정합니다..

  • 3단계: 수집된 설정을 적용하는 방법을 식별합니다..

  • 4단계: 응용 프로그램에 대한 마이그레이션 XML 구성 요소를 만듭니다..

  • 5단계: 응용 프로그램 설정 마이그레이션을 테스트합니다..

시작하기 전에

원본 컴퓨터의 운영 체제가 들어 있는 테스트 컴퓨터와 설정을 마이그레이션할 응용 프로그램을 식별해야 합니다. 예를 들어 Windows Vista(R)에서 Windows(R) 8로 마이그레이션하려면 테스트 컴퓨터에 Windows Vista를 설치한 다음 응용 프로그램을 설치합니다.

1단계: 응용 프로그램이 원본 컴퓨터에 설치되어 있고 대상 컴퓨터에 설치할 버전과 동일한 버전인지 확인합니다.

USMT에서 설정을 마이그레이션하기 전에 원본 컴퓨터에 응용 프로그램이 설치되어 있고 버전이 올바른지 확인해야 합니다. 응용 프로그램이 원본 컴퓨터에 설치되어 있지 않은 경우 USMT에서 응용 프로그램 설정을 검색하는 데 많은 시간이 걸릴 수 있습니다. USMT에서 설치되지 않은 응용 프로그램에 대한 설정을 수집할 때 설정을 마이그레이션하여 대상 컴퓨터가 올바르게 작동하지 않을 수 있습니다. 또한 응용 프로그램 버전이 여러 개 있는지 여부를 확인해야 합니다. 그럴 경우 새 버전이 동일한 위치에 설정을 저장하지 않아서 대상 컴퓨터에서 예기치 않은 결과가 발생할 수 있습니다.

여러 가지 방법으로 응용 프로그램이 설치되어 있는지 여부를 검색할 수 있습니다. 레지스트리에서 응용 프로그램 uninstall 키를 검사한 다음 컴퓨터에서 응용 프로그램을 설치한 실행 파일을 검색하는 것이 가장 좋은 방법입니다. 동일한 응용 프로그램의 서로 다른 버전이 same uninstall 키를 공유하지 않는 경우도 있으므로 두 항목을 모두 검사해야 합니다. 따라서 키가 있더라도 원하는 응용 프로그램 버전에 응답하지 않을 수 있습니다.

레지스트리에서 응용 프로그램 uninstall 키를 검사합니다.

특히, Microsoft(R) Windows(R) 설치 관리자 기술을 사용하여 많은 응용 프로그램을 설치한 경우 응용 프로그램 uninstall 키가 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 아래에서 응용 프로그램 이름, 응용 프로그램 실행 파일 이름 또는 응용 프로그램을 만든 회사 이름을 검색하여 이 키를 찾을 수 있습니다. 레지스트리 편집기(%SystemRoot%에 있는 Regedit.exe)를 사용하여 레지스트리를 검색할 수 있습니다.

파일 시스템에서 응용 프로그램 실행 파일을 검사합니다.

응용 프로그램 바이너리에서 응용 프로그램을 설치한 실행 파일을 검사할 수도 있습니다. 이렇게 하려면 먼저 응용 프로그램이 설치된 위치와 실행 파일의 이름을 확인해야 합니다. 대부분의 응용 프로그램은 레지스트리에 응용 프로그램 바이너리의 설치 위치를 저장합니다. 설치 경로가 포함된 레지스트리 값을 찾을 때까지 레지스트리에서 응용 프로그램 이름, 응용 프로그램 실행 파일 이름 또는 응용 프로그램을 만든 회사 이름을 검색해야 합니다. 응용 프로그램 실행 파일의 경로를 확인한 후 DoesFileVersionMatch 도우미 함수를 사용하여 응용 프로그램 실행 파일의 올바른 버전을 검사할 수 있습니다. 이렇게 하는 방법에 대한 예제는 MigApp.xml 파일의 Windows Live(TM) Messenger 섹션을 참조하세요.

2단계: 수집할 설정을 식별하고 컴퓨터에서 각 설정이 저장되는 위치를 결정합니다.

이제 사용자 인터페이스를 통해 모든 사용 가능한 설정 목록을 만들어야 합니다. 마이그레이션하지 않을 설정이 있는 경우 목록을 줄일 수 있습니다. 각 설정이 저장되는 위치를 결정하려면 각 설정을 변경하고 레지스트리 및 파일 시스템에 대한 활동을 모니터링해야 합니다. 응용 프로그램을 설치할 때 만들어지는 이진 파일과 레지스트리 설정은 마이그레이션할 필요가 없습니다. 응용 프로그램을 대상 컴퓨터에 다시 설치해야 하기 때문입니다. 사용자 지정할 수 있는 설정만 마이그레이션해야 합니다.

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

  1. Windows Sysinternals 웹 사이트(영문)에서 파일 및 레지스트리 모니터링 도구(예: Regmon 및 Filemon)를 다운로드합니다.

  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> 요소와 RelativeMoveExactMove 도우미 함수를 사용하여 대상 컴퓨터의 새 위치에 설정을 적용합니다.

사례 2: 대상 컴퓨터에 응용 프로그램에 대한 설정이 이미 있는 경우.

응용 프로그램을 설치한 후 사용자가 응용 프로그램을 처음으로 실행하기 이전에 설정을 마이그레이션하는 것이 좋습니다. 그러면 설정을 마이그레이션할 때 대상 컴퓨터에 설정이 없는지 확인하기 때문입니다. 마이그레이션하기 전에 응용 프로그램을 설치해야 하는 경우 <destinationCleanup> 요소를 사용하여 기존 설정을 삭제해야 합니다. 대상 컴퓨터에 있는 설정을 유지하려면 <merge> 요소와 DestinationPriority 도우미 함수를 사용할 수 있습니다.

사례 3: 응용 프로그램을 설치할 때 설정을 덮어쓰는 경우.

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

4단계: 응용 프로그램에 대한 마이그레이션 XML 구성 요소를 만듭니다.

1단계부터 3단계까지 완료한 후 보유한 정보를 기반으로 응용 프로그램을 마이그레이션하는 사용자 지정 마이그레이션 .xml 파일을 만들어야 합니다. MigApp.xml 파일에는 이 항목에서 설명하는 많은 개념에 대한 예제가 들어 있으므로 이 파일을 모델로 사용할 수 있습니다. 다른 예제 .xml 파일은 사용자 지정 XML 예를 참조하세요.

참고

MigApp.xml 파일에 스크립트를 추가하는 대신 별도의 .xml 파일을 만드는 것이 좋습니다. MigApp.xml 파일이 매우 커서 읽고 편집하는 데 어려움이 있기 때문입니다. 또한 USMT를 다시 설치하면 파일의 기본 버전으로 MigApp.xml 파일을 덮어쓰므로 사용자 지정 버전을 잃게 됩니다.

중요

일부 응용 프로그램에서는 마이그레이션하지 않을 사용자 프로필에 정보(예: 응용 프로그램 설치 경로, 컴퓨터 이름, 등)를 저장합니다. 이러한 파일과 레지스트리 키를 마이그레이션에서 제외해야 합니다.

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

  1. 다음을 수행하여 응용 프로그램과 올바른 버전이 설치되는지 여부를 확인합니다.

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

    • DoesFileVersionMatch 도우미 함수를 사용하여 올바른 버전의 응용 프로그램 실행 파일이 있는지 확인.

  2. 올바른 버전의 응용 프로그램이 설치되어 있으면 각 설정이 대상 컴퓨터의 해당 위치에 마이그레이션되는지 확인합니다.

    • 원본 컴퓨터와 대상 컴퓨터의 응용 프로그램 버전이 동일하면 <include> 및 <exclude> 요소를 사용하여 각 설정을 마이그레이션합니다.

    • 대상 컴퓨터의 응용 프로그램 버전이 원본 컴퓨터의 응용 프로그램보다 최신 버전이고 응용 프로그램에서 설정을 가져올 수 없는 경우 1) <addObjects> 요소를 사용하여 가져오기를 트리거하는 파일 집합을 추가하거나 2) <locationModify> 요소와 RelativeMoveExactMove 도우미 함수를 사용하여 이전 설정을 대상 컴퓨터의 올바른 위치에 적용하는 매핑을 만들어야 합니다.

    • 설정을 마이그레이션하기 전에 응용 프로그램을 설치해야 하는 경우 <destinationCleanup> 요소를 사용하여 대상 컴퓨터에 이미 있는 설정을 삭제합니다.

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

5단계: 응용 프로그램 설정 마이그레이션을 테스트합니다.

테스트 컴퓨터에서 대상 컴퓨터에 설치할 운영 체제를 설치합니다. 예를 들어 Windows(R) 7에서 Windows 8로 마이그레이션하려면 Windows 8 및 응용 프로그램을 설치합니다. 그런 다음 테스트 컴퓨터에서 LoadState를 실행하여 모든 설정이 마이그레이션되는지 확인합니다. 필요한 경우 수정하고 모든 필요한 설정이 올바르게 마이그레이션될 때까지 프로세스를 반복합니다.

데이터를 수집하고 마이그레이션하는 시간을 단축하려면 사용자를 한 번에 한 명씩만 마이그레이션하고 테스트할 응용 프로그램을 제외한 모든 다른 구성 요소를 마이그레이션에서 제외할 수 있습니다. 마이그레이션에서 User1만 지정하려면 /ue:*\* /ui:user1을 입력합니다. 자세한 내용은 파일 및 설정 제외ScanState 구문 항목의 사용자 옵션을 참조하세요. 문제를 해결하려면 진행 로그와 ScanState 및 LoadState 로그에서 마이그레이션 문제를 나타내는 경고 및 오류가 있는지 확인합니다.

참고 항목

기타 리소스

USMT XML 참조
충돌 및 우선 순위
XML 요소 라이브러리
로그 파일