DiagnosticLog CSP
다음 목록에서는 DiagnosticLog 구성 서비스 공급자 노드를 보여 줍니다.
- ./Vendor/MSFT/DiagnosticLog
DeviceStateData
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/DeviceStateData
CSP가 노출하는 모든 유형의 디바이스 상태 데이터의 루트 노드입니다.
DiagnosticLog CSP 내의 DeviceStateData 기능은 추가 디바이스 정보를 제공합니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | node |
액세스 유형 | 가져오기 |
DeviceStateData/MdmConfiguration
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10, 버전 1607 [10.0.14393] 이상 |
./Vendor/MSFT/DiagnosticLog/DeviceStateData/MdmConfiguration
이 노드는 "SNAP"을 사용하여 장치 관리 상태 데이터의 스냅을 트리거합니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 |
chr (문자열) |
액세스 유형 | Exec, Get |
예:
<?xml version="1.0"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
<SyncBody>
<Exec>
<CmdID>2</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/DiagnosticLog/DeviceStateData/MdmConfiguration</LocURI>
</Target>
<Meta>
<Format xmlns="syncml:metinf">chr</Format>
</Meta>
<Data>SNAP</Data>
</Item>
</Exec>
<Final/>
</SyncBody>
</SyncML>
DiagnosticArchive
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1903 [10.0.18362] 이상 |
./Vendor/MSFT/DiagnosticLog/DiagnosticArchive
보관 정의 및 컬렉션에 대한 루트 노드입니다.
DiagnosticLog CSP 내의 DiagnosticArchive 기능은 디바이스를 트리거하여 문제 해결 데이터를 zip 보관 파일로 수집하고 해당 보관 파일을 클라우드 스토리지에 업로드하는 데 사용됩니다.
DiagnosticArchive는 이벤트 로그 이벤트, 레지스트리 값, 앱 또는 OS 로그 파일 컬렉션을 사용하여 앱 설치 실패를 조사하는 IT 관리자와 같은 임시 문제 해결 시나리오를 위해 설계되었습니다.
참고
DiagnosticArchive는 디바이스 문제 해결을 위한 "중단 유리" 백스톱 옵션입니다. 로그 파일과 같은 진단 데이터는 기가바이트 단위로 증가할 수 있습니다. 대량의 데이터를 수집, 전송 및 저장하면 사용자의 디바이스, 네트워크 및 클라우드 스토리지에 부담이 될 수 있습니다. DiagnosticArchive를 호출하는 관리 서버는 데이터 수집 빈도 및 scope 최소화하기 위해 주의해야 합니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | node |
액세스 유형 | 가져오기 |
DiagnosticArchive/ArchiveDefinition
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1903 [10.0.18362] 이상 |
./Vendor/MSFT/DiagnosticLog/DiagnosticArchive/ArchiveDefinition
이 노드에 대한 실행 작업은 수집할 데이터와 업로드 위치를 설명하는 XML 코드 조각(문자열)을 허용 Collection
합니다. 결과는 압축되어 지정된 SasUrl에 업로드됩니다. 압축된 파일 이름 형식은 입니다 DiagLogs-{ComputerName}-YYYYMMDDTHHMMSSZ.zip
.
Windows 10 KB5011543 및 Windows 11 KB5011563 사용하면 XML의 각 지시문에 대한 개별 폴더가 있는 대신 CSP에서 생성된 출력 파일이 평면화된 폴더 구조인지 여부를 결정하는 추가 요소에 대한 추가 지원이 있습니다. 다음 예제에서는 XML을 보여줍니다.Collection
<Collection>
<!--NOTE: The value shown here is an example only, for more information see the ID documentation which follows the example -->
<ID>f1e20cb4-9789-4f6b-8f6a-766989764c6d</ID>
<!--NOTE: The value shown here is an example only, for more information see the SasUrl documentation which follows the example -->
<SasUrl><![CDATA[https://myaccount.blob.core.windows.net/mycontainer?sp=aw&st=2020-07-01T23:02:07Z&se=2020-07-02T23:02:07Z&sv=2019-10-10&sr=c&sig=wx9%2FhwrczAI0nZL7zl%2BhfZVfOBvboTAnrGYfjlO%2FRFA%3D]]></SasUrl>
<RegistryKey>HKLM\Software\Policies</RegistryKey>
<FoldersFiles>%ProgramData%\Microsoft\DiagnosticLogCSP\Collectors\*.etl</FoldersFiles>
<Command>%windir%\system32\ipconfig.exe /all</Command>
<Command>%windir%\system32\mdmdiagnosticstool.exe -out %ProgramData%\temp\</Command>
<FoldersFiles>%ProgramData%\temp\*.*</FoldersFiles>
<Events>Application</Events>
<OutputFileFormat>Flattened</OutputFileFormat>
</Collection>
XML에는 요소 내에 Collection
다음 요소가 포함되어야 합니다.
- ID: ID 값은 이 데이터 수집 요청을 고유하게 식별합니다. 실수로 데이터 수집이 반복되지 않도록 CSP는 ID 값이 동일한 후속 Set 또는 Execute 호출을 무시합니다. CSP는 요청이 수신될 때 값이 채워질 것으로 예상하므로 IT 관리자 또는 관리 서버에서 생성해야 합니다.
-
SasUrl: SasUrl 값은 CSP가 수집된 데이터를 포함하는 zip 파일을 업로드하는 대상 URI입니다. 스토리지 서버가 이 URL에 디바이스의 HTTP PUT을 허용하는 방식으로 스토리지를 프로비전하는 것은 관리 서버의 책임입니다. 예를 들어 디바이스 관리 서비스는 다음을 수행할 수 있습니다.
- 대상 디바이스(예: Microsoft Azure Blob Storage 컨테이너)에서 연결할 수 있는 클라우드 스토리지 프로비전
- 스토리지 컨테이너에 대한 소유자(대상 디바이스) 시간 제한 쓰기 액세스 권한을 부여하는 공유 액세스 서명 URL 생성
- XML을 통해
Collection
대상 디바이스의 CSP에 이 값을 값으로SasUrl
전달합니다.
또한 XML에는 다음 중 하나를 포함할 수 있는 하나 이상의 데이터 수집 지시문이 포함될 수 있습니다.
RegistryKey: 지정된 경로(재귀)에서 모든 키 이름과 값을 내보냅니다.
- 예상 입력 값: "HKLM\Software\Policies"와 같은 레지스트리 경로입니다.
- 출력 형식: reg.exe EXPORT 명령의 출력과 유사한 .reg 파일을 만듭니다.
- 개인 정보 보호책: IT 관리자가 실수로 사용자 생성 문서를 캡처하는 위험을 줄이면서 진단 로그 캡처를 사용하도록 설정하려면 레지스트리 경로가 HKLM 및 HKCR에 있는 경로로 제한됩니다.
이벤트: 명명된 Windows 이벤트 로그에서 모든 이벤트를 내보냅니다.
- 예상 입력 값: "Application" 또는 "Microsoft-Windows-DeviceGuard/Operational"과 같은 명명된 이벤트 로그 채널입니다.
- 출력 형식: .evtx 파일을 만듭니다.
명령: 이 지시문 형식을 사용하면 ipconfig.exe 같은 특정 명령을 실행할 수 있습니다. DiagnosticArchive 및 Commands 지시문은 범용 스크립팅 플랫폼이 아닙니다. 이러한 명령은 DiagnosticArchive 컨텍스트에서 기존 로그 파일을 통해 중요한 디바이스 정보를 사용할 수 없는 경우를 처리할 수 있습니다.
- 예상 입력 값: 경로 및 인수(예:
%windir%\\system32\\ipconfig.exe /all
)를 포함한 전체 명령줄입니다. - 출력 형식: 명령의 콘솔 텍스트 출력은 텍스트 파일에 캡처되고 전체 출력 보관에 포함됩니다. 콘솔 출력이 아닌 파일 출력을 생성할 수 있는 명령의 경우 후속 FolderFiles 지시문을 사용하여 해당 출력을 캡처합니다. 위의 예제 XML은 mdmdiagnosticstool.exe -out 매개 변수를 사용하여 이 패턴을 보여 줍니다.
- 개인 정보 보호책: IT 관리자가 실수로 사용자 생성 문서를 캡처하는 위험을 줄이면서 진단 데이터 캡처를 사용하도록 설정하려면 다음 명령만 허용됩니다.
- %windir%\system32\certutil.exe
- %windir%\system32\dxdiag.exe
- %windir%\system32\gpresult.exe
- %windir%\system32\msinfo32.exe
- %windir%\system32\netsh.exe
- %windir%\system32\nltest.exe
- %windir%\system32\ping.exe
- %windir%\system32\powercfg.exe
- %windir%\system32\w32tm.exe
- %windir%\system32\wpr.exe
- %windir%\system32\dsregcmd.exe
- %windir%\system32\dispdiag.exe
- %windir%\system32\ipconfig.exe
- %windir%\system32\logman.exe
- %windir%\system32\tracelog.exe
- %programfiles%\windows defender\mpcmdrun.exe
- %windir%\system32\MdmDiagnosticsTool.exe
- %windir%\system32\pnputil.exe
- 예상 입력 값: 경로 및 인수(예:
FoldersFiles: 지정된 경로(재귀 없이)에서 로그 파일을 캡처합니다.
- 예상 입력 값: 와일드카드가 있거나 없는 파일 경로(예: "%windir%\System32" 또는 "%programfiles%\*.log").
- 개인 정보 보호책: IT 관리자가 실수로 사용자 생성 문서를 캡처하는 위험을 줄이면서 진단 로그 캡처를 사용하도록 설정하려면 다음 루트 아래의 경로만 허용됩니다.
- %PROGRAMFILES%
- %PROGRAMDATA%
- %PUBLIC%
- %WINDIR%
- %TEMP%
- %TMP%
- 또한 다음 확장이 있는 파일만 캡처됩니다.
- .로그
- .txt
- .Dmp
- .cab
- .zip
- .xml
- .html
- ..evtx
- .Etl
OutputFileFormat: XML의 각 지시문에 대한 개별 폴더가 있는 대신 폴더 구조를 평면화합니다.
- "Flattened" 값은 OutputFileFormat에 대해 지원되는 유일한 값입니다. OutputFileFormat이 XML에 없거나 명시적으로 Flattened 이외의 항목으로 설정된 경우 파일 구조는 이전 구조로 유지됩니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 |
chr (문자열) |
액세스 유형 | Exec, Get, Replace |
DiagnosticArchive/ArchiveResults
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1903 [10.0.18362] 이상 |
./Vendor/MSFT/DiagnosticLog/DiagnosticArchive/ArchiveResults
마지막 보관 실행의 결과를 끌어올 수 있습니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 |
chr (문자열) |
액세스 유형 | 가져오기 |
예:
위의 URI로 가져오기는 마지막 진단 요청에 대한 데이터 수집 결과를 반환합니다. 예시:
<SyncML>
<SyncHdr/>
<SyncBody>
<Status>
<CmdID>1</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>0</CmdRef>
<Cmd>SyncHdr</Cmd>
<Data>200</Data>
</Status>
<Status>
<CmdID>2</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>1</CmdRef>
<Cmd>Get</Cmd>
<Data>200</Data>
</Status>
<Results>
<CmdID>3</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>1</CmdRef>
<Item>
<Source>
<LocURI>./Vendor/MSFT/DiagnosticLog/DiagnosticArchive/ArchiveResults</LocURI>
</Source>
<Data>
<Collection HRESULT="0">
<ID>f1e20cb4-9789-4f6b-8f6a-766989764c6d</ID>
<RegistryKey HRESULT="0">HKLM\Software\Policies</RegistryKey>
<FoldersFiles HRESULT="0">C:\ProgramData\Microsoft\DiagnosticLogCSP\Collectors\*.etl</FoldersFiles>
<Command HRESULT="0">%windir%\system32\ipconfig.exe /all</Command>
<Command HRESULT="-2147024637">%windir%\system32\mdmdiagnosticstool.exe -out c:\ProgramData\temp\</Command>
<FoldersFiles HRESULT="0">c:\ProgramData\temp\*.*</FoldersFiles>
<Events HRESULT="0">Application</Events>
</Collection>
</Data>
</Item>
</Results>
<Final/>
</SyncBody>
</SyncML>
결과 데이터를 읽는 방법을 알아보려면 ArchiveResults를 검토하는 방법을 참조하세요.
EtwLog
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/EtwLog
CSP가 관리하는 모든 유형의 이벤트 로깅 노드의 루트 노드입니다.
DiagnosticLog CSP의 ETW(Windows용 이벤트 추적) 로그 기능은 다음과 같은 유형의 이벤트 추적을 제어하는 데 사용됩니다.
ETW 로그 기능은 고급 사용을 위해 설계되었으며 개발자가 ETW에 대해 잘 알고 있다고 가정합니다. 자세한 내용은 이벤트 추적 정보를 참조하세요.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | node |
액세스 유형 | 가져오기 |
EtwLog/채널
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Channels
등록된 "채널" 노드의 루트 노드입니다.
이벤트 추적 유형은 특정 채널에서 이벤트 데이터를 내보냅니다. 사용자는 전체 이름(예: Microsoft-Windows-AppModel-Runtime/관리)을 사용하여 채널 노드를 추가하거나 삭제할 수 있습니다.
DiagnosticLog CSP는 각 채널 노드에 대한 로그 파일을 유지 관리하며 시작 명령이 동일한 채널 노드에서 다시 트리거되는 경우 로그 파일을 덮어씁니다.
각 채널 노드에 대해 사용자는 다음을 수행할 수 있습니다.
- 채널 이벤트 데이터를 로그 파일(.evtx)로 내보냅니다.
- 이벤트 로그 서비스에서 채널을 사용하거나 사용하지 않도록 설정하여 채널에 기록되는 이벤트 데이터를 허용하거나 허용하지 않습니다.
- 채널 이벤트 데이터를 내보내는 동안 이벤트를 필터링할 XPath 쿼리를 지정합니다.
DiagnosticLog를 사용하여 PC 또는 모바일 디바이스에서 원격으로 로그를 수집하는 방법에 대한 자세한 내용은 MDM 로그 수집을 참조하세요.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | node |
액세스 유형 | 가져오기 |
EtwLog/Channels/{ChannelName}
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Channels/{ChannelName}
각 동적 노드는 등록된 '채널' 노드를 나타냅니다. 노드 이름은 유효한 Windows 이벤트 로그 채널 이름(예: "Microsoft-Client-Licensing-Platform%2FAdmin")이어야 합니다. LocURI에서 이름을 지정할 때 URL이 인코딩되어야 합니다. 그렇지 않으면 예기치 않게 다른 URI로 변환됩니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | node |
액세스 유형 | 추가, 삭제, 가져오기 |
동적 노드 명명 | UniqueName: 노드 이름은 "Microsoft-Client-Licensing-Platform%2FAdmin"과 같은 유효한 Windows 이벤트 로그 채널 이름이어야 합니다. |
예:
채널 추가
<?xml version="1.0"?> <SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Add> <CmdID>1</CmdID> <Item> <Target> <LocURI>./Vendor/MSFT/DiagnosticLog/EtwLog/Channels/Microsoft-Client-Licensing-Platform%2FAdmin</LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">node</Format> </Meta> </Item> </Add> <Final/> </SyncBody> </SyncML>
채널 삭제
<?xml version="1.0"?> <SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Delete> <CmdID>1</CmdID> <Item> <Target> <LocURI>./Vendor/MSFT/DiagnosticLog/EtwLog/Channels/Microsoft-Client-Licensing-Platform%2FAdmin</LocURI> </Target> </Item> </Delete> <Final/> </SyncBody> </SyncML>
EtwLog/Channels/{ChannelName}/Export
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Channels/{ChannelName}/Export
이 노드는 이 노드의 연결된 Windows 이벤트 채널에서 로그 파일로 이벤트 내보내기를 트리거합니다. 로그 파일의 확장명은 Windows 이벤트 채널 로그의 표준 확장명인 .evtx입니다. "Get" 명령은 이 노드의 이름을 반환합니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | null |
액세스 유형 | Exec, Get |
예:
<?xml version="1.0"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
<SyncBody>
<Exec>
<CmdID>2</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/DiagnosticLog/EtwLog/Channels/Microsoft-Client-Licensing-Platform%2FAdmin/Export</LocURI>
</Target>
</Item>
</Exec>
<Final/>
</SyncBody>
</SyncML>
EtwLog/Channels/{ChannelName}/Filter
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Channels/{ChannelName}/Filter
이 노드는 채널에서 로그 파일을 내보낼 때 이벤트를 필터링하기 위해 xpath 쿼리 문자열을 설정하거나 가져오는 데 사용됩니다. 기본값은 빈 문자열입니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 |
chr (문자열) |
액세스 유형 | 가져오기, 바꾸기 |
기본 값 | "" |
예:
<?xml version="1.0"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
<SyncBody>
<Get>
<CmdID>1</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/DiagnosticLog/EtwLog/Channels/Microsoft-Client-Licensing-Platform%2FAdmin/Filter</LocURI>
</Target>
</Item>
</Get>
<Final/>
</SyncBody>
</SyncML>
EtwLog/Channels/{ChannelName}/State
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Channels/{ChannelName}/State
이 노드는 시스템에서 이 노드의 연결된 Windows 이벤트 채널의 '사용' 상태를 설정하거나 가져오는 데 사용됩니다. "TRUE"로 설정하면 채널이 활성화됩니다. "FALSE"로 설정하면 채널이 비활성화됩니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | bool |
액세스 유형 | 가져오기, 바꾸기 |
허용되는 값:
값 | 설명 |
---|---|
true | 채널이 활성화되어 있습니다. |
false | 채널이 비활성화되었습니다. |
예:
채널 상태 가져오기:
<?xml version="1.0"?> <SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Get> <CmdID>1</CmdID> <Item> <Target> <LocURI>./Vendor/MSFT/DiagnosticLog/EtwLog/Channels/Microsoft-Client-Licensing-Platform%2FAdmin/State</LocURI> </Target> </Item> </Get> <Final/> </SyncBody> </SyncML>
채널 상태 설정:
<?xml version="1.0"?> <SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Replace> <CmdID>2</CmdID> <Item> <Target> <LocURI>./Vendor/MSFT/DiagnosticLog/EtwLog/Channels/Microsoft-Client-Licensing-Platform%2FAdmin/State</LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">bool</Format> </Meta> <Data>false</Data> </Item> </Replace> <Final/> </SyncBody> </SyncML>
EtwLog/Collectors
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors
등록된 "수집기" 노드의 루트 노드입니다.
이 유형의 이벤트 추적은 등록된 ETW 공급자 컬렉션에서 이벤트 데이터를 수집합니다. 이벤트 수집기는 등록된 ETW 공급자의 컨테이너입니다. 사용자는 수집기 노드를 추가 또는 삭제하고 이 수집기에서 여러 공급자를 등록하거나 등록 취소할 수 있습니다.
은 {CollectorName}
CSP 내에서 고유해야 하며 유효한 이벤트 채널 이름 또는 공급자 GUID가 아니어야 합니다.
DiagnosticLog CSP는 각 수집기 노드에 대한 로그 파일을 유지 관리하며 시작 명령이 동일한 수집기 노드에서 다시 트리거되는 경우 로그 파일을 덮어씁니다.
각 수집기 노드에 대해 사용자는 다음을 수행할 수 있습니다.
- 등록된 모든 공급자와 함께 세션을 시작하거나 중지합니다.
- 쿼리 세션 상태.
- 추적 로그 파일 모드를 변경합니다.
- 추적 로그 파일 크기 제한을 변경합니다.
추적 세션이 진행되는 동안에는 구성 로그 파일 모드 및 로그 파일 크기 제한이 적용되지 않습니다. 이러한 특성은 사용자가 현재 세션을 중지한 다음 이 수집기를 위해 다시 시작할 때 적용됩니다.
이 수집기에서 등록된 각 공급자에 대해 사용자는 다음을 수행할 수 있습니다.
- 키워드를 지정하여 이 공급자의 이벤트를 필터링합니다.
- 추적 수준을 변경하여 이 공급자의 이벤트를 필터링합니다.
- 추적 세션에서 공급자를 사용하거나 사용하지 않도록 설정합니다.
상태, 키워드 및 TraceLevel의 변경 내용은 추적 세션이 진행되는 동안 즉시 적용됩니다.
참고
Microsoft-WindowsPhone-Enterprise-Diagnostics-Provider(GUID - 3da494e4-0fe2-415C-b895-fb5265c5c83b)에는 Windows에 기본 제공되는 필수 디버그 리소스 파일이 있으므로 원격 컴퓨터에서 로그 파일을 디코딩할 수 있습니다. 다른 로그에는 디코딩하는 데 필요한 디버그 리소스가 없을 수 있습니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | node |
액세스 유형 | 가져오기 |
예:
이 CSP를 사용하여 진단 수집하려면 다음을 수행합니다.
- 대상 ETW 공급자의 컨테이너에 대해 CollectorName 을 지정합니다.
- (선택 사항) 다음 옵션을 사용하여 로깅 및 로그 파일 매개 변수를 설정합니다.
- EtwLog/Collectors/CollectorName/Providers/ProviderGUID의 추가 작업에 ProviderGUID를 제공하여 하나 이상의 대상 ETW 공급자를 나타냅니다.
- (선택 사항) 다음 옵션을 사용하여 로깅 및 로그 파일 매개 변수를 설정합니다.
- TraceControl EXECUTE 명령 "START"를 사용하여 로깅을 시작합니다.
- 로그 파일에서 작업을 생성하는 대상 디바이스에서 작업을 수행합니다.
- TraceControl EXECUTE 명령 "STOP"을 사용하여 로깅을 중지합니다.
-
FileDownload에
%temp%
설명된 로그 파일 읽기 방법을 사용하여 폴더에 있는 로그 파일을 수집합니다.
EtwLog/Collectors/{CollectorName}
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/{CollectorName}
각 동적 노드는 등록된 'Collector' 노드를 나타냅니다. CSP는 고유 식별자로 사용되는 이름으로 이 수집기용 ETW 추적 세션을 유지 관리합니다. 수집기에서 유효한 ETW 공급자를 등록 및 등록 취소할 수 있습니다. 수집기 관련 추적 세션은 공급자의 상태가 '사용'인 경우 등록된 공급자를 사용하도록 설정합니다. 각 공급자의 상태, 추적 수준 및 키워드를 별도로 제어할 수 있습니다. 이 노드의 이름은 유효한 Windows 이벤트 채널 이름이 되어서는 안 됩니다. 이미 등록된 '공급자' 노드 이름과 같지 않은 경우 etw 공급자 guid일 수 있습니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | node |
액세스 유형 | 추가, 삭제, 가져오기 |
동적 노드 명명 | ServerGeneratedUniqueIdentifier |
예:
수집기 추가
<?xml version="1.0"?> <SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Add> <CmdID>1</CmdID> <Item> <Target> <LocURI>./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/DeviceManagement</LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">node</Format> </Meta> </Item> </Add> <Final/> </SyncBody> </SyncML>
수집기 삭제
<?xml version="1.0"?> <SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Delete> <CmdID>1</CmdID> <Item> <Target> <LocURI>./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/DeviceManagement</LocURI> </Target> </Item> </Delete> <Final/> </SyncBody> </SyncML>
EtwLog/Collectors/{CollectorName}/LogFileSizeLimitMB
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/{CollectorName}/LogFileSizeLimitMB
이 노드는 이 수집기 노드의 연결된 추적 세션의 추적 로그 파일 크기 제한(메가바이트)을 설정하거나 가져오는 데 사용됩니다. 값 범위는 1~2048입니다. 기본값은 4입니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | int |
액세스 유형 | 가져오기, 바꾸기 |
허용되는 값 | 범위: [1-2048] |
기본 값 | 4 |
EtwLog/Collectors/{CollectorName}/Providers
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/{CollectorName}/Providers
이 수집기 노드에 등록된 모든 공급자의 루트 노드입니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | node |
액세스 유형 | 가져오기 |
EtwLog/Collectors/{CollectorName}/Providers/{ProviderGuid}
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/{CollectorName}/Providers/{ProviderGuid}
각 동적 노드는 이 수집기 노드에 등록된 ETW 공급자를 나타냅니다. 노드 이름은 유효한 공급자 GUID여야 합니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | node |
액세스 유형 | 추가, 삭제, 가져오기 |
동적 노드 명명 | UniqueName: 노드 이름은 유효한 공급자 GUID여야 합니다. |
예:
공급자 추가:
<?xml version="1.0"?> <SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Add> <CmdID>1</CmdID> <Item> <Target> <LocURI>./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/DeviceManagement/Providers/3da494e4-0fe2-415C-b895-fb5265c5c83b</LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">node</Format> </Meta> </Item> </Add> <Final/> </SyncBody> </SyncML>
공급자 삭제:
<?xml version="1.0"?> <SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Delete> <CmdID>1</CmdID> <Item> <Target> <LocURI>./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/DeviceManagement/Providers/3da494e4-0fe2-415C-b895-fb5265c5c83b</LocURI> </Target> </Item> </Delete> <Final/> </SyncBody> </SyncML>
EtwLog/Collectors/{CollectorName}/Providers/{ProviderGuid}/Keywords
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/{CollectorName}/Providers/{ProviderGuid}/Keywords
이 노드는 이 수집기 노드의 연결된 추적 세션에서 이벤트 공급자의 키워드를 설정하거나 가져오는 데 사용됩니다. 문자열은 16진수 숫자와 너비 16자 형식입니다. 내부적으로 CSP에서 ULONGLONG 데이터 형식으로 변환됩니다. 기본값은 "0"입니다. 즉, 이 공급자의 모든 이벤트가 포함됩니다. 연결된 추적 세션이 진행 중인 경우 새 키워드 설정이 즉시 적용됩니다. 그렇지 않으면 다음에 해당 세션이 시작될 때 적용됩니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 |
chr (문자열) |
액세스 유형 | 가져오기, 바꾸기 |
기본 값 | "0" |
예:
공급자 키워드 가져오기:
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Get> <CmdID>1</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/DeviceManagement/Providers/3da494e4-0fe2-415C-b895-fb5265c5c83b/Keywords </LocURI> </Target> </Item> </Get> <Final/> </SyncBody> </SyncML>
공급자 키워드 설정:
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Replace> <CmdID>4</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/DeviceManagement/Providers/3da494e4-0fe2-415C-b895-fb5265c5c83b/Keywords </LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">chr</Format> <Type>text/plain</Type> </Meta> <Data>12345678FFFFFFFF</Data> </Item> </Replace> <Final/> </SyncBody> </SyncML>
EtwLog/Collectors/{CollectorName}/Providers/{ProviderGuid}/State
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/{CollectorName}/Providers/{ProviderGuid}/State
이 노드는 이 수집기 노드의 연결된 추적 세션에서 이벤트 공급자의 상태를 설정하거나 가져오는 데 사용됩니다. 추적 세션이 시작되지 않은 경우 값을 변경하면 세션이 시작될 때 공급자를 사용하도록 설정할지 여부를 제어합니다. 추적 세션이 이미 시작된 경우 해당 값을 변경하면 라이브 추적 세션에서 공급자를 사용하거나 사용하지 않도록 설정합니다. 기본값은 true입니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | bool |
액세스 유형 | 가져오기, 바꾸기 |
기본 값 | true |
허용되는 값:
값 | 설명 |
---|---|
true(기본값) | 공급자는 추적 세션에서 사용하도록 설정됩니다. 이것이 기본값입니다. |
false | 추적 세션에서 공급자를 사용할 수 없습니다. |
예:
공급자 상태 설정:
<?xml version="1.0"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
<SyncBody>
<Replace>
<CmdID>2</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/DeviceManagement/Providers/3da494e4-0fe2-415C-b895-fb5265c5c83b/State</LocURI>
</Target>
<Meta>
<Format xmlns="syncml:metinf">bool</Format>
</Meta>
<Data>false</Data>
</Item>
</Replace>
<Final/>
</SyncBody>
</SyncML>
EtwLog/Collectors/{CollectorName}/Providers/{ProviderGuid}/TraceLevel
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/{CollectorName}/Providers/{ProviderGuid}/TraceLevel
이 노드는 이 수집기 노드의 연결된 추적 세션에서 이 이벤트 공급자의 추적 수준을 설정하거나 가져오는 데 사용됩니다. 기본값은 5이며 TRACE_LEVEL_VERBOSE. 연결된 추적 세션이 진행 중인 경우 새 추적 수준 설정이 즉시 적용됩니다. 그렇지 않으면 다음에 해당 세션이 시작될 때 적용됩니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | int |
액세스 유형 | 가져오기, 바꾸기 |
기본 값 | 5 |
허용되는 값:
값 | 설명 |
---|---|
1 | TRACE_LEVEL_CRITICAL - 비정상적인 종료 또는 종료 이벤트입니다. |
2 | TRACE_LEVEL_ERROR - 심각한 오류 이벤트입니다. |
3 | TRACE_LEVEL_WARNING - 할당 실패와 같은 경고 이벤트입니다. |
4 | TRACE_LEVEL_INFORMATION - 입력 또는 종료 이벤트와 같은 오류가 없는 이벤트입니다. |
5(기본값) | TRACE_LEVEL_VERBOSE - 자세한 정보입니다. |
예:
공급자 TraceLevel을 설정합니다.
<?xml version="1.0"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
<SyncBody>
<Replace>
<CmdID>2</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/DeviceManagement/Providers/3da494e4-0fe2-415C-b895-fb5265c5c83b/TraceLevel</LocURI>
</Target>
<Meta>
<Format xmlns="syncml:metinf">int</Format>
</Meta>
<Data>1</Data>
</Item>
</Replace>
<Final/>
</SyncBody>
</SyncML>
EtwLog/Collectors/{CollectorName}/TraceControl
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/{CollectorName}/TraceControl
이 노드는 이 수집기 노드의 연결된 추적 세션의 "시작" 및 "중지"를 트리거하는 것입니다. "Get"은 이 노드의 이름을 반환합니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 |
chr (문자열) |
액세스 유형 | Exec, Get |
허용되는 값:
값 | 설명 |
---|---|
시작 | 로그 추적을 시작합니다. |
중지 | 로그 추적을 중지합니다. |
예:
로깅 작업을 추가한 후 이 노드에서 실행 명령을 실행하여 추적을 시작/중지할 수 있습니다.
수집기 추적 로깅 시작:
<?xml version="1.0"?> <SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Exec> <CmdID>2</CmdID> <Item> <Target> <LocURI>./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/DeviceManagement/TraceControl</LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">chr</Format> </Meta> <Data>START</Data> </Item> </Exec> <Final/> </SyncBody> </SyncML>
수집기 추적 로깅 중지:
<?xml version="1.0"?> <SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Exec> <CmdID>2</CmdID> <Item> <Target> <LocURI>./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/DeviceManagement/TraceControl</LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">chr</Format> </Meta> <Data>STOP</Data> </Item> </Exec> <Final/> </SyncBody> </SyncML>
EtwLog/Collectors/{CollectorName}/TraceLogFileMode
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/{CollectorName}/TraceLogFileMode
이 노드는 이 수집기 노드의 연결된 추적 세션의 추적 로그 파일 모드를 설정하거나 가져오는 데 사용됩니다. 허용되는 값은 1과 2뿐이며 EVENT_TRACE_FILE_MODE_SEQUENTIAL EVENT_TRACE_FILE_MODE_CIRCULAR. 기본값은 1입니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | int |
액세스 유형 | 가져오기, 바꾸기 |
기본 값 | 1 |
허용되는 값:
값 | 설명 |
---|---|
1(기본값) | 이벤트를 로그 파일에 순차적으로 EVENT_TRACE_FILE_MODE_SEQUENTIAL-Writes. 파일이 최대 크기에 도달하면 중지됩니다. |
2 | 로그 파일에 이벤트를 EVENT_TRACE_FILE_MODE_CIRCULAR-Writes. 파일이 최대 크기에 도달하면 가장 오래된 이벤트가 들어오는 이벤트로 바뀝니다. |
EtwLog/Collectors/{CollectorName}/TraceStatus
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/{CollectorName}/TraceStatus
이 노드는 이 수집기 노드의 연결된 추적 세션의 상태 가져오는 데 사용됩니다. 1은 "진행 중"을 의미합니다. 0은 "시작되지 않았거나 중지되지 않음"을 의미합니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | int |
액세스 유형 | 가져오기 |
FileDownload
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/FileDownload
csp에서 로그 파일 다운로드와 관련된 모든 csp 노드의 루트 노드입니다.
DiagnosticLog CSP의 FileDownload 기능을 사용하면 관리 서버가 디바이스에서 직접 데이터를 끌어올 수 있습니다. FileDownload 컨텍스트에서 클라이언트 및 서버 역할은 개념적으로 반전되며 관리 서버는 관리 디바이스에서 데이터를 다운로드하는 클라이언트 역할을 합니다.
로그 파일 읽기:
- ./Vendor/MSFT/DiagnosticLog/FileDownload/DMChannel에서 로그 파일을 열거합니다.
- 열거형 결과에서 로그 파일을 선택합니다.
- DM 서버 페이로드 제한당 BlockSizeKB 를 설정합니다.
- BlockCount를 가져와서 총 읽기 요청을 확인합니다.
- BlockIndexToRead를 설정하여 읽기 시작점을 초기화합니다.
- 업로드 로그 블록에 대한 BlockData 를 가져옵니다.
- BlockIndexToRead를 늘입니다.
- BlockIndexToRead == (BlockIndexToRead – 1)까지 5~7단계를 반복합니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | node |
액세스 유형 | 가져오기 |
FileDownload/DMChannel
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/FileDownload/DMChannel
csp 노드를 로깅하여 생성된 연결된 로그 파일에 대한 파일 다운로드를 제어하는 데 사용되는 모든 csp 노드의 루트 노드입니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | node |
액세스 유형 | 가져오기 |
FileDownload/DMChannel/{FileContext}
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/FileDownload/DMChannel/{FileContext}
각 동적 노드는 로깅 CSP 노드('EtwLog' 노드 아래)에서 생성된 로그 파일에 해당하는 'FileContext' 노드를 나타냅니다. 노드 이름은 등록된 '공급자', '수집기' 또는 '채널' 노드의 이름이어야 합니다. 로그 파일 및 해당 위치는 노드 이름에 따라 CSP에 의해 결정됩니다. 파일 다운로드는 로그 파일을 구성된 블록 크기의 여러 블록으로 나눈 다음 MDM 서버에서 요청한 대로 블록을 전송하여 수행됩니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | node |
액세스 유형 | 가져오기 |
동적 노드 명명 | UniqueName: 노드 이름은 등록된 '공급자', '수집기' 또는 '채널' 노드의 이름이어야 합니다. |
FileDownload/DMChannel/{FileContext}/BlockCount
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/FileDownload/DMChannel/{FileContext}/BlockCount
이 노드는 연결된 로그 파일에 대한 총 블록 수를 가져오는 데 사용됩니다. 로그 파일이 아직 생성되지 않은 경우 반환된 값은 -1입니다. 추적 세션이 진행 중이면 반환되는 값은 -2입니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | int |
액세스 유형 | 가져오기 |
예:
<?xml version="1.0"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
<SyncBody>
<Get>
<CmdID>1</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/DiagnosticLog/FileDownload/DMChannel/DeviceManagement/BlockCount</LocURI>
</Target>
</Item>
</Get>
<Final/>
</SyncBody>
</SyncML>
FileDownload/DMChannel/{FileContext}/BlockData
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/FileDownload/DMChannel/{FileContext}/BlockData
이 노드는 'BlockIndexToRead' 노드가 가리키는 블록의 이진 데이터를 가져오는 데 사용됩니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | b64 |
액세스 유형 | 가져오기 |
예:
<?xml version="1.0"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
<SyncBody>
<Get>
<CmdID>1</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/DiagnosticLog/FileDownload/DMChannel/DeviceManagement/BlockData</LocURI>
</Target>
</Item>
</Get>
<Final/>
</SyncBody>
</SyncML>
FileDownload/DMChannel/{FileContext}/BlockIndexToRead
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/FileDownload/DMChannel/{FileContext}/BlockIndexToRead
이 노드는 'BlockData' 노드의 데이터 블록을 가리키는 블록 인덱스 설정 및 가져오기에 사용됩니다. 값 범위는 0~(BlockCount-1)입니다.
예:
BlockIndexToRead를 0으로 설정합니다.
<?xml version="1.0"?> <SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Replace> <CmdID>1</CmdID> <Item> <Target> <LocURI>./Vendor/MSFT/DiagnosticLog/FileDownload/DMChannel/DeviceManagement/BlockIndexToRead</LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">int</Format> </Meta> <Data>0</Data> </Item> </Replace> <Final/> </SyncBody> </SyncML>
BlockIndexToRead를 1로 설정합니다.
<?xml version="1.0"?> <SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Replace> <CmdID>1</CmdID> <Item> <Target> <LocURI>./Vendor/MSFT/DiagnosticLog/FileDownload/DMChannel/DeviceManagement/BlockIndexToRead</LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">int</Format> </Meta> <Data>1</Data> </Item> </Replace> <Final/> </SyncBody> </SyncML>
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | int |
액세스 유형 | 가져오기, 바꾸기 |
FileDownload/DMChannel/{FileContext}/BlockSizeKB
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/FileDownload/DMChannel/{FileContext}/BlockSizeKB
이 노드는 연결 로그 파일을 다운로드하기 위해 블록 크기(킬로바이트)를 설정하거나 가져오는 데 사용됩니다. 값 범위는 1~16입니다. 기본값은 4입니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | int |
액세스 유형 | 가져오기, 바꾸기 |
허용되는 값 | 범위: [1-16] |
기본 값 | 4 |
예:
BlockSizeKB 설정:
<?xml version="1.0"?> <SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Replace> <CmdID>1</CmdID> <Item> <Target> <LocURI>./Vendor/MSFT/DiagnosticLog/FileDownload/DMChannel/DeviceManagement/BlockSizeKB</LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">int</Format> </Meta> <Data>1</Data> </Item> </Replace> <Final/> </SyncBody> </SyncML>
BlockSizeKB 가져오기:
<?xml version="1.0"?> <SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Get> <CmdID>1</CmdID> <Item> <Target> <LocURI>./Vendor/MSFT/DiagnosticLog/FileDownload/DMChannel/DeviceManagement/BlockSizeKB</LocURI> </Target> </Item> </Get> <Final/> </SyncBody> </SyncML>
FileDownload/DMChannel/{FileContext}/DataBlocks
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/FileDownload/DMChannel/{FileContext}/DataBlocks
연결된 로그 파일에 대한 모든 'BlockNumber' 노드의 루트 노드입니다. 자식의 수는 로그 파일의 총 블록 수여야 합니다. 'BlockCount' 노드의 값이 0보다 작은 경우에는 자식 노드가 없습니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | node |
액세스 유형 | 가져오기 |
FileDownload/DMChannel/{FileContext}/DataBlocks/{BlockNumber}
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1511 [10.0.10586] 이상 |
./Vendor/MSFT/DiagnosticLog/FileDownload/DMChannel/{FileContext}/DataBlocks/{BlockNumber}
각 동적 노드는 'BlockNumber' 노드를 나타냅니다. 노드 이름은 이 노드가 나타내는 블록의 인덱스와 같은 정수입니다. 따라서 노드 이름은 0에서 (BlockCount -1) 사이의 범위여야 합니다. 이 노드가 참조하는 블록의 이진 데이터를 반환합니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | b64 |
액세스 유형 | 가져오기 |
동적 노드 명명 | ClientInventory |
정책
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1903 [10.0.18362] 이상 |
./Vendor/MSFT/DiagnosticLog/Policy
진단 설정에 대한 정책을 포함합니다.
최대 로그 크기와 같은 Windows 이벤트 로그 정책을 구성하는 데 사용할 수 있습니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | node |
액세스 유형 | 가져오기 |
정책/채널
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1903 [10.0.18362] 이상 |
./Vendor/MSFT/DiagnosticLog/Policy/Channels
이벤트 로그 채널 설정에 대한 정책을 포함합니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | node |
액세스 유형 | 가져오기 |
Policy/Channels/{ChannelName}
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1903 [10.0.18362] 이상 |
./Vendor/MSFT/DiagnosticLog/Policy/Channels/{ChannelName}
각 동적 노드는 등록된 '채널' 노드를 나타냅니다. 노드 이름은 유효한 Windows 이벤트 로그 채널 이름(예: "Microsoft-Client-Licensing-Platform%2FAdmin")이어야 합니다. LocURI에서 이름을 지정할 때 URL이 인코딩되어야 합니다. 그렇지 않으면 예기치 않게 다른 URI로 변환됩니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | node |
액세스 유형 | 추가, 삭제, 가져오기 |
동적 노드 명명 | UniqueName: 노드 이름은 Microsoft-Client-Licensing-Platform%2FAdmin과 같은 유효한 Windows 이벤트 로그 채널 이름이어야 합니다. LocURI에서 이름을 지정할 때 URL로 인코딩되어야 합니다. 그렇지 않으면 예기치 않게 다른 URI로 변환될 수 있습니다. |
예:
채널 추가
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Add> <CmdID>2</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName </LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">node</Format> <Type></Type> </Meta> </Item> </Add> <Final/> </SyncBody> </SyncML>
채널 삭제
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Delete> <CmdID>3</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName </LocURI> </Target> </Item> </Delete> <Final/> </SyncBody> </SyncML>
채널 가져오기
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Get> <CmdID>4</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName </LocURI> </Target> </Item> </Get> <Final/> </SyncBody> </SyncML>
Policy/Channels/{ChannelName}/ActionWhenFull
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1903 [10.0.18362] 이상 |
./Vendor/MSFT/DiagnosticLog/Policy/Channels/{ChannelName}/ActionWhenFull
로그 파일이 최대 크기에 도달하면 수행할 작업입니다. "잘림", "덮어쓰기", "보관".
이 정책 설정을 사용하지 않거나 구성하지 않으면 로컬로 구성된 값이 기본값으로 사용됩니다. 받은 편지함 또는 ISV에 의해 설치된 모든 채널은 자체 로컬 구성을 정의해야 하며 관리자가 해당 구성을 변경할 수 있습니다. 이 정책을 통해 설정된 값은 재정의되지만 로컬 구성을 대체하지는 않습니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 |
chr (문자열) |
액세스 유형 | 추가, 삭제, 가져오기, 바꾸기 |
허용되는 값:
값 | 설명 |
---|---|
잘라야 | 로그 파일이 최대 파일 크기에 도달하면 새 이벤트가 로그에 기록되지 않고 손실됩니다. |
Overwrite | 로그 파일이 최대 파일 크기에 도달하면 새 이벤트가 이전 이벤트를 덮어씁니다. |
Archive | 로그 파일이 최대 크기에 도달하면 로그 파일은 "보관 위치" 정책 설정에 지정된 위치에 저장됩니다. 보관 위치 값이 설정되지 않은 경우 새 파일은 현재 로그 파일과 동일한 디렉터리에 저장됩니다. |
예:
ActionWhenFull 추가
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Add> <CmdID>14</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/ActionWhenFull </LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">chr</Format> <Type>text/plain</Type> </Meta> <Data>Archive</Data> </Item> </Add> <Final/> </SyncBody> </SyncML>
삭제 작업WhenFull
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Delete> <CmdID>15</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/ActionWhenFull </LocURI> </Target> </Item> </Delete> <Final/> </SyncBody> </SyncML>
ActionWhenFull 가져오기
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Get> <CmdID>13</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/ActionWhenFull </LocURI> </Target> </Item> </Get> <Final/> </SyncBody> </SyncML>
ActionWhenFull 바꾸기
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Replace> <CmdID>16</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/ActionWhenFull </LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">chr</Format> <Type>text/plain</Type> </Meta> <Data>Truncate</Data> </Item> </Replace> <Final/> </SyncBody> </SyncML>
Policy/Channels/{ChannelName}/Enabled
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1903 [10.0.18362] 이상 |
./Vendor/MSFT/DiagnosticLog/Policy/Channels/{ChannelName}/Enabled
이 정책 설정은 채널을 사용하도록 설정할지 아니면 사용하지 않도록 설정해야 하는지를 지정합니다. 사용하려면 값을 TRUE로 설정하고 FALSE를 사용하지 않도록 설정합니다.
이 정책 설정을 사용하지 않거나 구성하지 않으면 로컬로 구성된 값이 기본값으로 사용됩니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | bool |
액세스 유형 | 추가, 삭제, 가져오기, 바꾸기 |
허용되는 값:
값 | 설명 |
---|---|
true | 채널을 사용하도록 설정합니다. |
false | 채널을 사용하지 않도록 설정합니다. |
예:
사용 추가
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Add> <CmdID>18</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/Enabled </LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">bool</Format> <Type>text/plain</Type> </Meta> <Data>TRUE</Data> </Item> </Add> <Final/> </SyncBody> </SyncML>
삭제 사용
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Delete> <CmdID>19</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/Enabled </LocURI> </Target> </Item> </Delete> <Final/> </SyncBody> </SyncML>
사용 설정
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Get> <CmdID>17</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/Enabled </LocURI> </Target> </Item> </Get> <Final/> </SyncBody> </SyncML>
Replace Enabled
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Replace> <CmdID>20</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/Enabled </LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">bool</Format> <Type>text/plain</Type> </Meta> <Data>FALSE</Data> </Item> </Replace> <Final/> </SyncBody> </SyncML>
Policy/Channels/{ChannelName}/MaximumFileSize
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1903 [10.0.18362] 이상 |
./Vendor/MSFT/DiagnosticLog/Policy/Channels/{ChannelName}/MaximumFileSize
채널 로그 파일의 최대 크기(MB)입니다.
- 이 정책 설정을 사용하도록 설정하면 최대 로그 파일 크기를 1메가바이트에서 2테라바이트 단위로 구성할 수 있습니다.
- 이 정책 설정을 사용하지 않거나 구성하지 않으면 로그 파일의 최대 크기가 로컬로 구성된 값으로 설정됩니다. 이 값은 로그 속성 대화 상자를 사용하여 로컬 관리자가 변경할 수 있으며 기본값은 1메가바이트입니다.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 | int |
액세스 유형 | 추가, 삭제, 가져오기, 바꾸기 |
허용되는 값 | 범위: [1-2000000] |
기본 값 | 1 |
예:
MaximumFileSize 추가
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Add> <CmdID>6</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/MaximumFileSize </LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">int</Format> <Type>text/plain</Type> </Meta> <Data>3</Data> </Item> </Add> <Final/> </SyncBody> </SyncML>
MaximumFileSize 삭제
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Delete> <CmdID>7</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/MaximumFileSize </LocURI> </Target> </Item> </Delete> <Final/> </SyncBody> </SyncML>
MaximumFileSize 가져오기
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Get> <CmdID>5</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/MaximumFileSize </LocURI> </Target> </Item> </Get> <Final/> </SyncBody> </SyncML>
MaximumFileSize 바꾸기
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Replace> <CmdID>8</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/MaximumFileSize </LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">int</Format> <Type>text/plain</Type> </Meta> <Data>5</Data> </Item> </Replace> <Final/> </SyncBody> </SyncML>
Policy/Channels/{ChannelName}/SDDL
범위 | 에디션 | 적용 가능한 OS |
---|---|---|
✅ 장치 ❌ 사용자 |
✅ 프로 ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise/IoT Enterprise LTSC |
✅Windows 10 버전 1903 [10.0.18362] 이상 |
./Vendor/MSFT/DiagnosticLog/Policy/Channels/{ChannelName}/SDDL
채널에 대한 액세스를 제어하는 SDDL 문자열입니다. 자세한 내용은 ChannelType 복합 형식을 참조하세요.
설명 프레임워크 속성:
속성 이름 | 속성 값 |
---|---|
형식 |
chr (문자열) |
액세스 유형 | 추가, 삭제, 가져오기, 바꾸기 |
대 / 소문자 | True |
예:
SDDL 추가
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Add> <CmdID>10</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/SDDL </LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">chr</Format> <Type>text/plain</Type> </Meta> <Data>YourSDDL</Data> </Item> </Add> <Final/> </SyncBody> </SyncML>
SDDL 삭제
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Delete> <CmdID>11</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/SDDL </LocURI> </Target> </Item> </Delete> <Final/> </SyncBody> </SyncML>
SDDL 가져오기
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Get> <CmdID>9</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/SDDL </LocURI> </Target> </Item> </Get> <Final/> </SyncBody> </SyncML>
SDDL 바꾸기
<SyncML xmlns="SYNCML:SYNCML1.2"> <SyncBody> <Replace> <CmdID>12</CmdID> <Item> <Target> <LocURI> ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/SDDL </LocURI> </Target> <Meta> <Format xmlns="syncml:metinf">chr</Format> <Type>text/plain</Type> </Meta> <Data>YourNewSDDL</Data> </Item> </Replace> <Final/> </SyncBody> </SyncML>
FileDownload 및 DiagnosticArchive 비교
FileDownload 및 DiagnosticArchive 기능을 모두 사용하여 디바이스에서 관리 서버로 데이터를 가져올 수 있지만 서로 다른 워크플로에 최적화되어 있습니다.
- FileDownload를 사용하면 관리 서버가 관리 디바이스에서 바이트 수준 추적 데이터를 직접 끌어올 수 있습니다. 데이터 전송은 기존 OMA-DM/SyncML 컨텍스트를 통해 이루어집니다. 고급 모니터링 또는 진단 흐름의 일부로 EtwLogs 기능과 함께 사용됩니다. FileDownlod에는 관리 서버에서 세분화된 오케스트레이션이 필요하지만 전용 클라우드 스토리지가 필요하지 않습니다.
- DiagnosticArchive를 사용하면 관리 서버가 CSP에 전체 명령 집합을 단일 명령으로 제공할 수 있습니다. 이러한 지침에 따라 CSP는 작업 클라이언트 쪽을 오케스트레이션하여 요청된 진단 파일을 zip 보관 파일에 패키지하고 해당 보관 파일을 클라우드 스토리지에 업로드합니다. 데이터 전송은 HTTP PUT을 통해 OMA-DM 세션 외부에서 발생합니다.
ArchiveResults를 검토하는 방법
ArchiveResults에서 만들고 업로드하는 zip 보관 파일에는 다음 예제와 같은 폴더 구조가 포함되어 있습니다.
PS C:\> dir C:\DiagArchiveExamples\DiagLogs-MYDEVICE-20201202T182748Z
Directory: C:\DiagArchiveExamples\DiagLogs-MYDEVICE-20201202T182748Z
Mode LastWriteTime Length Name
---- ------------- ------ ----
la--- 1/4/2021 2:45 PM 1
la--- 1/4/2021 2:45 PM 2
la--- 12/2/2020 6:27 PM 2701 results.xml
원본 Collection
XML의 각 데이터 수집 지시문은 출력의 폴더에 해당합니다. 예를 들어 첫 번째 지시문은 다음과 같습니다.
<Collection HRESULT="0">
<RegistryKey HRESULT="0">HKLM\Software\Policies</RegistryKey>
</Collection>
그런 다음 폴더 1
에 해당 export.reg
파일이 포함됩니다.
파일은 results.xml
출력에 대한 신뢰할 수 있는 맵입니다. 여기에는 각 지시문에 대한 상태 코드가 포함됩니다. 파일의 지시문 순서는 출력 폴더의 순서에 해당합니다. 관리자를 사용하면 results.xml
수집된 데이터, 발생한 오류 및 출력이 포함된 폴더를 확인할 수 있습니다. 예를 들어 다음 results.xml
콘텐츠는 HKLM\Software\Policies의 레지스트리 내보내기가 성공했으며 폴더 1
에서 데이터를 찾을 수 있음을 나타냅니다. 또한 명령이 실패했음을 netsh.exe wlan show profiles
나타냅니다.
<Collection HRESULT="0">
<ID>268b3056-8c15-47c6-a1bd-4bc257aef7b2</ID>
<RegistryKey HRESULT="0">HKLM\Software\Policies</RegistryKey>
<Command HRESULT="-2147024895">%windir%\system32\netsh.exe wlan show profiles</Command>
</Collection>
관리자는 'results.xml'에 자동화를 적용하여 데이터에 대한 고유한 기본 보기를 만들 수 있습니다. 예를 들어 다음 PowerShell 한 라이너는 XML에서 상태 코드 및 세부 정보가 포함된 지시문의 정렬된 목록을 추출합니다.
Select-XML -Path results.xml -XPath '//RegistryKey | //Command | //Events | //FoldersFiles' | Foreach-Object -Begin {$i=1} -Process { [pscustomobject]@{DirectiveNumber=$i; DirectiveHRESULT=$_.Node.HRESULT; DirectiveInput=$_.Node.('#text')} ; $i++}
이 예제에서는 다음 출력과 유사한 출력을 생성합니다.
DirectiveNumber DirectiveHRESULT DirectiveInput
--------------- ---------------- --------------
1 0 HKLM\Software\Policies
2 0 HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall
3 0 HKLM\Software\Microsoft\IntuneManagementExtension
4 0 HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
5 0 %windir%\system32\ipconfig.exe /all
6 0 %windir%\system32\netsh.exe advfirewall show allprofiles
7 0 %windir%\system32\netsh.exe advfirewall show global
8 -2147024895 %windir%\system32\netsh.exe wlan show profiles
다음 예제에서는 zip 보관 파일을 사용자 지정된 평면화된 파일 구조로 추출합니다. 각 파일 이름에는 지시문 번호, HRESULT 등이 포함됩니다. 이 예제는 파일 이름에 포함할 정보와 특수 문자에 대해 선택할 서식 선택에 대해 다양한 선택을 할 수 있도록 사용자 지정할 수 있습니다.
param( $DiagnosticArchiveZipPath = "C:\DiagArchiveExamples\DiagLogs-MYDEVICE-20201202T182748Z.zip" )
#region Formatting Choices
$flatFileNameTemplate = '({0:D2}) ({3}) (0x{2:X8})'
$maxLengthForInputTextPassedToOutput = 80
#endregion
#region Create Output Folders and Expand Zip
$diagnosticArchiveTempUnzippedPath = $DiagnosticArchiveZipPath + "_expanded"
if(-not (Test-Path $diagnosticArchiveTempUnzippedPath)){mkdir $diagnosticArchiveTempUnzippedPath}
$reformattedArchivePath = $DiagnosticArchiveZipPath + "_formatted"
if(-not (Test-Path $reformattedArchivePath)){mkdir $reformattedArchivePath}
Expand-Archive -Path $DiagnosticArchiveZipPath -DestinationPath $diagnosticArchiveTempUnzippedPath
#endregion
#region Discover and Move/rename Files
$resultElements = ([xml](Get-Content -Path (Join-Path -Path $diagnosticArchiveTempUnzippedPath -ChildPath "results.xml"))).Collection.ChildNodes | Foreach-Object{ $_ }
$n = 0
foreach( $element in $resultElements )
{
$directiveNumber = $n
$n++
if($element.Name -eq 'ID'){ continue }
$directiveType = $element.Name
$directiveStatus = [int]$element.Attributes.ItemOf('HRESULT').psbase.Value
$directiveUserInputRaw = $element.InnerText
$directiveUserInputFileNameCompatible = $directiveUserInputRaw -replace '[\\|/\[\]<>\:"\?\*%\.\s]','_'
$directiveUserInputTrimmed = $directiveUserInputFileNameCompatible.substring(0, [System.Math]::Min($maxLengthForInputTextPassedToOutput, $directiveUserInputFileNameCompatible.Length))
$directiveSummaryString = $flatFileNameTemplate -f $directiveNumber,$directiveType,$directiveStatus,$directiveUserInputTrimmed
$directiveOutputFolder = Join-Path -Path $diagnosticArchiveTempUnzippedPath -ChildPath $directiveNumber
$directiveOutputFiles = Get-ChildItem -Path $directiveOutputFolder -File
foreach( $file in $directiveOutputFiles)
{
$leafSummaryString = $directiveSummaryString,$file.Name -join ' '
Copy-Item $file.FullName -Destination (Join-Path -Path $reformattedArchivePath -ChildPath $leafSummaryString)
}
}
#endregion
Remove-Item -Path $diagnosticArchiveTempUnzippedPath -Force -Recurse
이 예제 스크립트는 다음 파일 집합과 유사한 파일 집합을 생성합니다. 이는 관리자가 하위 폴더를 탐색하거나 반복적으로 참조할 필요 없이 결과를 대화형으로 검색하는 데 유용한 보기일 results.xml
수 있습니다.
PS C:\> dir C:\DiagArchiveExamples\DiagLogs-MYDEVICE-20201202T182748Z.zip_formatted | format-table Length,Name
Length Name
------ ----
46640 (01) (HKLM_Software_Policies) (0x00000000) export.reg
203792 (02) (HKLM_Software_Microsoft_Windows_CurrentVersion_Uninstall) (0x00000000) export.reg
214902 (03) (HKLM_Software_Microsoft_IntuneManagementExtension) (0x00000000) export.reg
212278 (04) (HKLM_SOFTWARE_WOW6432Node_Microsoft_Windows_CurrentVersion_Uninstall) (0x00000000) export.reg
2400 (05) (_windir__system32_ipconfig_exe__all) (0x00000000) output.log
2147 (06) (_windir__system32_netsh_exe_advfirewall_show_allprofiles) (0x00000000) output.log
1043 (07) (_windir__system32_netsh_exe_advfirewall_show_global) (0x00000000) output.log
59 (08) (_windir__system32_netsh_exe_wlan_show_profiles) (0x80070001) output.log
1591 (09) (_windir__system32_ping_exe_-n_50_localhost) (0x00000000) output.log
5192 (10) (_windir__system32_Dsregcmd_exe__status) (0x00000000) output.log