USMT 로그 파일
USMT(사용자 상태 마이그레이션 도구) 로그를 사용하여 마이그레이션을 모니터링하고 오류 및 실패한 마이그레이션 문제를 해결할 수 있습니다. 이 문서에서는 USMT 로그를 사용하도록 설정하는 사용 가능한 명령줄 옵션에 대해 설명합니다. 또한 다음을 구성하는 데 사용할 수 있는 새 XML 요소에 대해서도 설명합니다.
- 어떤 유형의 오류가 치명적이며 마이그레이션을 중단해야 합니다.
- 어떤 형식이 치명적이지 않으며 마이그레이션을 계속할 수 있도록 건너뛰어야 합니다.
로그 명령줄 옵션
다음 표에서는 로그와 관련된 각 명령줄 옵션에 대해 설명하고 각 로그에 포함된 정보 유형에 대한 로그 이름과 설명을 제공합니다.
명령줄 옵션 | 파일 이름 | 설명 |
---|---|---|
/l"[Path]FileName |
ScanState.exe.log 또는 LoadState.log |
ScanState 로그 또는 LoadState 로그의 경로 및 파일 이름을 지정합니다. |
/progress:[Path]FileName | 진행률 로그의 경로 및 파일 이름을 지정합니다. | 완료율별로 마이그레이션 상태에 대한 정보를 제공합니다. |
/v:[VerbosityLevel] | 해당 없음 | ScanState 구문의모니터링 옵션을 참조하세요. |
/listfiles:[Path]FileName | Listfiles 로그의 경로 및 파일 이름을 지정합니다. | 마이그레이션된 파일 목록을 제공합니다. |
환경 변수 MIG_ENABLE_DIAG XML 파일의 경로로 설정합니다. | USMTDiag.xml |
진단 로그에는 자세한 시스템 환경 정보, 사용자 환경 정보 및 수집되는 마이그레이션 단위(migunits)와 해당 내용에 대한 정보가 포함됩니다. |
참고
로그 파일은 StorePath에 저장할 수 없습니다. 로그 파일이 StorePath에 저장되면 USMT가 실행되면 로그 파일을 덮어씁니다.
ScanState 및 LoadState 로그
ScanState 및 LoadState 로그는 ScanState 및 LoadState 도구를 실행할 때 생성되는 텍스트 파일입니다. 이러한 로그를 사용하여 마이그레이션을 모니터링할 수 있습니다. 로그의 내용은 사용되는 명령줄 옵션과 지정된 세부 정보 수준에 따라 달라집니다. 자세한 정보 표시 수준에 대한 자세한 내용은 ScanState 구문의모니터링 옵션을 참조하세요.
진행률 로그
옵션을 사용하여 진행률 로그를 /progress
만들 수 있습니다. Microsoft System Center Operations Manager와 같은 외부 도구는 진행률 로그를 구문 분석하여 모니터링 시스템을 업데이트할 수 있습니다. 각 줄의 처음 세 필드는 다음과 같이 수정됩니다.
날짜:date, dayshortNameOfTheMonthyear 형식입니다. 예: 2023년 6월 8일.
현지 시간:시간(시간:분:초 )(24시간 시계 사용)입니다. 예: 13:49:13.
마이그레이션 시간: USMT가 실행된 시간( 시간:분:초) 형식입니다. 예: 00:00:20.
나머지 필드는 다음 표에 표시된 대로 키/값 쌍입니다.
키 | 값 |
---|---|
프로그램 |
ScanState.exe 또는 LoadState.exe 입니다. |
productVersion | USMT의 전체 제품 버전 번호입니다. |
computerName | USMT가 실행된 원본 또는 대상 컴퓨터의 이름입니다. |
commandLine | USMT를 실행하는 데 사용되는 전체 명령입니다. |
단계 | 마이그레이션의 새 단계가 시작되고 있다고 보고합니다. 이 키는 다음 값 중 하나일 수 있습니다.
|
detectedUser |
|
includedInMigration | 마이그레이션을 위해 사용자 프로필/구성 요소가 포함되는지 여부를 정의합니다. 유효한 값은 예 또는 아니요입니다. |
forUser | 다음 값 중 하나를 지정합니다.
|
detectedComponent | USMT에서 검색된 구성 요소를 지정합니다.
|
totalSizeInMBToTransfer | 마이그레이션할 파일 및 설정의 총 크기(MB)입니다. |
totalPercentageCompleted | ScanState 또는 LoadState에서 완료한 마이그레이션의 총 백분율입니다. |
collectingUser | 파일 및 설정을 수집하는 사용자 ScanState 를 지정합니다. |
totalMinutesRemaining | 마이그레이션이 완료된 시간(분)입니다. |
error | 발생한 치명적이 아닌 오류의 유형입니다. 이 키는 다음 값 중 하나일 수 있습니다.
|
objectName | 치명적이 아닌 오류를 발생시킨 파일 또는 설정의 이름입니다. |
행동 | 치명적이 아닌 오류에 대해 USMT에서 수행한 작업입니다. 값은 다음과 같습니다.
|
errorCode | errorCode 또는 return 값입니다. |
numberOfIgnoredErrors | USMT에서 무시한 치명적이 아닌 오류의 총 수입니다. |
메시지* | errorCode에 해당하는 메시지입니다. |
파일 로그 나열
파일 목록 로그(Listfiles.txt
)는 마이그레이션된 파일 목록을 제공합니다. 이 목록을 사용하여 XML 문제를 해결하거나 마이그레이션 저장소에 수집된 파일의 레코드로 보존할 수 있습니다. 파일 목록 로그는 에 ScanState.exe
만 사용할 수 있습니다.
진단 로그
환경 변수 MIG_ENABLE_DIAG XML 파일의 경로로 설정하여 진단 로그를 가져올 수 있습니다.
진단 로그에는 다음이 포함됩니다.
자세한 시스템 환경 정보입니다.
자세한 사용자 환경 정보입니다.
수집되는 마이그레이션 단위(migunits) 및 해당 내용에 대한 정보입니다.
진단 로그 사용
진단 로그는 기본적으로 마이그레이션에 포함된 모든 마이그레이션 단위(migunits)의 보고서입니다. migunit는 데이터 컬렉션입니다. XML 파일에서 구성 요소는 migunit이 연결된 migunit을 식별합니다. 마이그레이션 저장소는 마이그레이션의 모든 migunits로 구성됩니다. 진단 로그를 사용하여 마이그레이션에 포함된 migunits를 확인할 수 있으며 마이그레이션 XML 파일을 작성하는 동안 문제 해결에 사용할 수 있습니다.
다음 예제에서는 진단 로그를 사용할 수 있는 일반적인 시나리오를 설명합니다.
"포함" 규칙을 작성할 때 이 파일이 마이그레이션되지 않는 이유는 무엇인가요?
다음과 같은 디렉터리 구조가 있으며 새 폴더의 새 텍스트 Document.txt 파일과 함께 마이그레이션에 데이터 디렉터리를 포함하려 한다고 생각해 보겠습니다. 의 C:\data
디렉터리에는 다음이 포함됩니다.
12/21/2023 01:08 PM <DIR> .
12/21/2023 01:08 PM <DIR> ..
12/21/2023 01:08 PM <DIR> New Folder
12/21/2023 01:19 PM 13 test (1).txt
12/21/2023 01:19 PM 13 test.txt
2 File(s) 26 bytes
의 C:\data\New Folder
디렉터리에는 다음이 포함됩니다.
12/21/2023 01:08 PM <DIR> .
12/21/2023 01:08 PM <DIR> ..
12/21/2023 01:08 PM 0 New Text Document.txt
1 File(s) 0 bytes
이러한 파일을 마이그레이션하려면 다음 마이그레이션 XML이 작성됩니다.
<?xml version="1.0" encoding="UTF-8"?>
<migration urlid="http://www.microsoft.com/migration/1.0/TestSuite_BUGFIX">
<component context="System" type="Application">
<displayName>DATA1</displayName>
<role role="Data">
<rules>
<include>
<objectSet>
<pattern type="File">c:\data\ [*]</pattern>
</objectSet>
</include>
</rules>
</role>
</component>
</migration>
그러나 마이그레이션을 테스트할 때 새 텍스트 Document.txt 파일은 마이그레이션에 포함되지 않은 것으로 확인됩니다. 이 오류를 해결하기 위해 진단 로그가 생성되도록 환경 변수 를 MIG_ENABLE_DIAG 설정하여 마이그레이션을 반복할 수 있습니다. 구성 요소 DATA1 에 대한 진단 로그를 검색하면 다음 XML 섹션이 표시됩니다.
<MigUnitList>
<MigUnit Name="\<System\>\DATA1 (CMXEAgent)" Context="System" ConfidenceLevel="100" Group="Applications" Role="UserData" Agent="CMXEAgent" Selected="true" Supported="true">
<Patterns Type="Include">
<Pattern Type="File" Path="C:\data [*]"/>
</Patterns>
</MigUnit>
</MigUnitList>
<Perform Name="Gather" User="System">
<MigUnit Name="\<System\>\DATA1 (CMXEAgent)">
<Operation Name="Store" Type="File" Path="C:\data" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data [test (1).txt]" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data [test.txt]" SimObj="false" Success="true"/>
</MigUnit>
</Perform>
이 XML 섹션을 분석하면 마이그레이션 규칙이 처리될 때 생성된 migunit가 표시됩니다. 수행> 섹션에서는< 수집을 위해 예약된 실제 파일과 수집 작업의 결과를 자세히 설명합니다. 마이그레이션 규칙이 올바르게 작성되지 않았음을 확인하는 새 텍스트 Document.txt 파일이 이 섹션에 표시되지 않습니다.
XML 요소 라이브러리 참조 문서를 분석하면 패턴> 태그를< 다음과 같이 수정해야 합니다.
<pattern type="File">c:\data\* [*]</pattern>
수정된 태그를 사용하여 마이그레이션을 다시 수행하면 진단 로그에 다음 정보가 표시됩니다.
<MigUnitList>
<MigUnit Name="\<System\>\DATA1 (CMXEAgent)" Context="System" ConfidenceLevel="100" Group="Applications" Role="UserData" Agent="CMXEAgent" Selected="true" Supported="true">
<Patterns Type="Include">
<Pattern Type="File" Path="C:\data\* [*]"/>
</Patterns>
</MigUnit>
</MigUnitList>
<Perform Name="Gather" User="System">
<MigUnit Name="\<System\>\DATA1 (CMXEAgent)">
<Operation Name="Store" Type="File" Path="C:\data" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data [test (1).txt]" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data [test.txt]" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data\New Folder" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data\New Folder [New Text Document.txt]" SimObj="false" Success="true"/>
</MigUnit>
</Perform>
이 진단 로그는 수정된 <패턴> 값으로 파일을 마이그레이션할 수 있음을 확인합니다.
제외 규칙을 작성할 때 이 파일이 마이그레이션되는 이유는 무엇인가요?
이 시나리오에서는 다음 디렉터리 구조가 존재하며 데이터 디렉터리의 모든 파일은 텍스트 파일을 제외하고 마이그레이션해야 합니다. 폴더에는 다음 C:\Data
이 포함됩니다.
Directory of C:\Data
12/21/2023 01:08 PM <DIR> .
12/21/2023 01:08 PM <DIR> ..
12/21/2023 01:08 PM <DIR> New Folder
12/21/2023 01:19 PM 13 test (1).txt
12/21/2023 01:19 PM 13 test.txt
2 File(s) 26 bytes
에는 다음 C:\Data\New Folder\
이 포함됩니다.
12/21/2023 01:08 PM <DIR> .
12/21/2023 01:08 PM <DIR> ..
12/21/2023 01:08 PM 0 New Text Document.txt
1 File(s) 0 bytes
다음 마이그레이션 XML이 작성됩니다.
<?xml version="1.0" encoding="UTF-8"?>
<migration urlid="http://www.microsoft.com/migration/1.0/TestSuite_BUGFIX">
<component context="System" type="Application">
<displayName>DATA1</displayName>
<role role="Data">
<rules>
<include>
<objectSet>
<pattern type="File">c:\data\* [*]</pattern>
</objectSet>
</include>
</rules>
<rules>
<exclude>
<objectSet>
<pattern type="File">c:\* [*.txt]</pattern>
</objectSet>
</exclude>
</rules>
</role>
</component>
그러나 마이그레이션을 테스트할 때 모든 텍스트 파일은 여전히 마이그레이션에 포함되어 있음을 알 수 있습니다. 이 문제를 해결하기 위해 환경 변수를 사용하여 마이그레이션을 수행할 수 MIG_ENABLE_DIAG 진단 로그가 생성되도록 설정할 수 있습니다. 구성 요소 DATA1 에 대한 진단 로그를 검색하면 다음 XML 섹션이 표시됩니다.
<MigUnitList>
<MigUnit Name="\<System\>\DATA1 (CMXEAgent)" Context="System" ConfidenceLevel="100" Group="Applications" Role="UserData" Agent="CMXEAgent" Selected="true" Supported="true">
<Patterns Type="Include">
<Pattern Type="File" Path="C:\data\* [*]"/>
</Patterns>
<Patterns Type="Exclude">
<Pattern Type="File" Path="C:\* [*.txt]"/>
</Patterns>
</MigUnit>
</MigUnitList>
<Perform Name="Gather" User="System">
<MigUnit Name="\<System\>\DATA1 (CMXEAgent)">
<Operation Name="Store" Type="File" Path="C:\data" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data [test (1).txt]" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data [test.docx]" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data [test.txt]" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data\New Folder" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data\New Folder [New Text Document.txt]" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data\New Folder [test.docx]" SimObj="false" Success="true"/>
</MigUnit>
</Perform>
진단 로그를 검토하면 파일이 여전히 마이그레이션되고 있으며 작성된 마이그레이션 XML 규칙에 문제가 있음을 확인합니다. 업데이트는 다음과 같이 마이그레이션 XML 스크립트에 작성됩니다.
<?xml version="1.0" encoding="UTF-8"?>
<migration urlid="http://www.microsoft.com/migration/1.0/TestSuite_BUGFIX">
<component context="System" type="Application">
<displayName>DATA1</displayName>
<role role="Data">
<rules>
<include>
<objectSet>
<pattern type="File">c:\data\* [*]</pattern>
</objectSet>
</include>
</rules>
<rules>
<exclude>
<objectSet>
<pattern type="File">c:\data\* [*.txt]</pattern>
</objectSet>
</exclude>
</rules>
</role>
</component>
</migration>
수정된 마이그레이션 XML 스크립트는 진단 로그에서 확인한 대로 마이그레이션에서 파일을 제외합니다.
<MigUnitList>
<MigUnit Name="\<System\>\DATA1 (CMXEAgent)" Context="System" ConfidenceLevel="100" Group="Applications" Role="UserData" Agent="CMXEAgent" Selected="true" Supported="true">
<Patterns Type="Include">
<Pattern Type="File" Path="C:\data\* [*]"/>
</Patterns>
<Patterns Type="Exclude">
<Pattern Type="File" Path="C:\data\* [*.txt]"/>
</Patterns>
</MigUnit>
</MigUnitList>
<Perform Name="Gather" User="System">
<MigUnit Name="\<System\>\DATA1 (CMXEAgent)">
<Operation Name="Store" Type="File" Path="C:\data" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data [test.docx]" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data\New Folder" SimObj="false" Success="true"/>
<Operation Name="Store" Type="File" Path="C:\data\New Folder [test.docx]" SimObj="false" Success="true"/>
</MigUnit>
</Perform>