DiagnosticLog CSP
次の一覧は、DiagnosticLog 構成サービス プロバイダー ノードを示しています。
- ./Vendor/MSFT/DiagnosticLog
DeviceStateData
適用範囲 | エディション | 対象となる OS |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise / IoT Enterprise LTSC |
✅Windows 10バージョン 1607 [10.0.14393] 以降 |
./Vendor/MSFT/DiagnosticLog/DeviceStateData/MdmConfiguration
このノードは、"SNAP" を使用してデバイス管理状態データのスナップをトリガーします。
説明フレームワークのプロパティ:
プロパティ名 | プロパティ値 |
---|---|
形式 |
chr (string) |
アクセスの種類 | 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 を呼び出す管理サーバーは、データ収集の頻度とスコープを最小限に抑えるように注意する必要があります。
説明フレームワークのプロパティ:
プロパティ名 | プロパティ値 |
---|---|
形式 | node |
アクセスの種類 | [ゲームをゲット] を選びます |
DiagnosticArchive/ArchiveDefinition
適用範囲 | エディション | 対象となる OS |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise / IoT Enterprise LTSC |
✅Windows 10、バージョン 1903 [10.0.18362] 以降 |
./Vendor/MSFT/DiagnosticLog/DiagnosticArchive/ArchiveDefinition
このノードの実行アクションは、 Collection
収集するデータとアップロードする場所を記述する XML スニペット (文字列として) を受け入れます。 結果は圧縮され、指定された SasUrl にアップロードされます。 zip 形式のファイル名は です DiagLogs-{ComputerName}-YYYYMMDDTHHMMSSZ.zip
。
Windows 10 KB5011543とWindows 11 KB5011563では、CSP によって生成される出力ファイルが XML 内のディレクティブごとに個別のフォルダーを持つのではなく、フラット化されたフォルダー構造であるかどうかを判断する追加の要素の追加サポートがあります。 次の例は、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 です。 ストレージ サーバーがデバイスの HTTP PUT をこの URL に受け入れるようにストレージをプロビジョニングするのは、管理サーバーの責任です。 たとえば、デバイス管理サービスでは次の場合があります。
- ターゲット デバイスによって到達可能なクラウド ストレージ (Microsoft Azure BLOB ストレージ コンテナーなど) をプロビジョニングする
- ストレージ コンテナーへの所有 (ターゲット デバイス) 時間制限付き書き込みアクセス権を付与する Shared Access Signature URL を生成する
- この値を、値として XML を介してターゲット デバイス上の
Collection
CSP にSasUrl
渡します。
さらに、XML には 1 つ以上のデータ収集ディレクティブを含めることができます。これには、次のいずれかを含めることができます。
RegistryKey: 特定のパスの下にあるすべてのキー名と値をエクスポートします (再帰的)。
- 予期される入力値: "HKLM\Software\Policies" などのレジストリ パス。
- 出力形式: EXPORT コマンドの出力と同様に、.reg ファイル reg.exe 作成します。
- プライバシー ガードレール: IT 管理者が誤ってユーザーが生成したドキュメントをキャプチャするリスクを軽減しながら診断ログキャプチャを有効にするには、レジストリ パスは HKLM と HKCR の下にあるパスに制限されます。
イベント: 名前付き Windows イベント ログからすべてのイベントをエクスポートします。
- 予期される入力値: "Application" や "Microsoft-Windows-DeviceGuard/Operational" などの名前付きイベント ログ チャネル。
- 出力形式: .evtx ファイルを作成します。
コマンド: このディレクティブ型を使用すると、ipconfig.exe などの特定のコマンドを実行できます。 DiagnosticArchive ディレクティブと Commands ディレクティブは汎用スクリプト プラットフォームではないことに注意してください。 これらのコマンドは、DiagnosticArchive コンテキストで、重要なデバイス情報が既存のログ ファイルで使用できない場合に処理できます。
- 予期される入力値: path や 引数 (など
%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
- 予期される入力値: path や 引数 (など
FoldersFiles: 特定のパスから (再帰なしで) ログ ファイルをキャプチャします。
- 想定される入力値: "%windir%\System32" や "%programfiles%\*.log" など、ワイルドカードの有無にかかわらずファイル パス。
- プライバシー ガードレール: 診断ログキャプチャを有効にしながら、IT 管理者が誤ってユーザーが生成したドキュメントをキャプチャするリスクを軽減するには、次のルートの下のパスのみが許可されます。
- %PROGRAMFILES%
- %PROGRAMDATA%
- %PUBLIC%
- %WINDIR%
- %TEMP%
- %TMP%
- さらに、次の拡張子を持つファイルのみがキャプチャされます。
- 。ログ
- .txt
- 。Dmp
- .cab
- .zip
- .xml
- .html
- .evtx
- 。Etl
OutputFileFormat: XML 内のディレクティブごとに個別のフォルダーを持つ代わりに、フォルダー構造をフラット化します。
- 値 "Flattened" は、OutputFileFormat でサポートされている唯一の値です。 XML に OutputFileFormat が存在しない場合、またはフラット化以外のものに明示的に設定されている場合、ファイル構造は古い構造のままになります。
説明フレームワークのプロパティ:
プロパティ名 | プロパティ値 |
---|---|
形式 |
chr (string) |
アクセスの種類 | Exec、Get、Replace |
DiagnosticArchive/ArchiveResults
適用範囲 | エディション | 対象となる OS |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise / IoT Enterprise LTSC |
✅Windows 10、バージョン 1903 [10.0.18362] 以降 |
./Vendor/MSFT/DiagnosticLog/DiagnosticArchive/ArchiveResults
最後のアーカイブ実行の結果をプルします。
説明フレームワークのプロパティ:
プロパティ名 | プロパティ値 |
---|---|
形式 |
chr (string) |
アクセスの種類 | [ゲームをゲット] を選びます |
例:
上記の 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise / IoT Enterprise LTSC |
✅Windows 10バージョン 1511 [10.0.10586] 以降 |
./Vendor/MSFT/DiagnosticLog/EtwLog
CSP が管理するすべての種類のイベント ログ ノードのルート ノード。
DiagnosticLog CSP の Windows イベント トレース (ETW) ログ機能は、次の種類のイベント トレースを制御するために使用されます。
ETW ログ機能は高度な使用のために設計されており、開発者が ETW に精通していることを前提としています。 詳細については、「 イベント トレースについて」を参照してください。
説明フレームワークのプロパティ:
プロパティ名 | プロパティ値 |
---|---|
形式 | node |
アクセスの種類 | [ゲームをゲット] を選びます |
EtwLog/Channels
適用範囲 | エディション | 対象となる OS |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise / IoT Enterprise LTSC |
✅Windows 10バージョン 1511 [10.0.10586] 以降 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Channels/{ChannelName}
各動的ノードは、登録済みの "チャネル" ノードを表します。 ノード名は、"Microsoft-Client-Licensing-Platform%2FAdmin" など、有効な Windows イベント ログ チャネル名である必要があります。 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise / IoT Enterprise LTSC |
✅Windows 10バージョン 1511 [10.0.10586] 以降 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Channels/{ChannelName}/Export
このノードは、このノードに関連付けられている Windows イベント チャネルからログ ファイルへのイベントのエクスポートをトリガーします。 ログ ファイルの拡張子は .evtx で、これは Windows イベント チャネル ログの標準拡張機能です。 "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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise / IoT Enterprise LTSC |
✅Windows 10バージョン 1511 [10.0.10586] 以降 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Channels/{ChannelName}/Filter
このノードは、チャネルからログ ファイルをエクスポートするときにイベントをフィルター処理するために xpath クエリ文字列を設定または取得するために使用されます。 既定値は空の文字列です。
説明フレームワークのプロパティ:
プロパティ名 | プロパティ値 |
---|---|
形式 |
chr (string) |
アクセスの種類 | 取得、置換 |
既定値 | "" |
例:
<?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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise / IoT Enterprise LTSC |
✅Windows 10バージョン 1511 [10.0.10586] 以降 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Channels/{ChannelName}/State
このノードは、システムでこのノードに関連付けられている Windows イベント チャネルの 'Enabled' 状態を設定または取得するために使用されます。 "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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise / IoT Enterprise LTSC |
✅Windows 10バージョン 1511 [10.0.10586] 以降 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors
登録済みの "Collector" ノードのルート ノード。
この種類のイベント トレースは、登録されている ETW プロバイダーのコレクションからイベント データを収集します。 イベント コレクターは、登録済みの ETW プロバイダーのコンテナーです。 ユーザーはコレクター ノードを追加または削除し、このコレクターで複数のプロバイダーを登録または登録解除できます。
は {CollectorName}
CSP 内で一意である必要があり、有効なイベント チャネル名またはプロバイダー GUID にすることはできません。
DiagnosticLog CSP は、コレクター ノードごとにログ ファイルを保持し、開始コマンドが同じコレクター ノードで再度トリガーされると、ログ ファイルが上書きされます。
コレクター ノードごとに、ユーザーは次のことができます。
- 登録済みおよび有効なすべてのプロバイダーでセッションを開始または停止します。
- クエリ セッションの状態。
- トレース ログ ファイル モードを変更します。
- トレース ログ ファイルのサイズ制限を変更します。
構成ログ ファイル モードとログ ファイル サイズの制限は、トレース セッションの進行中は有効になりません。 これらの属性は、ユーザーが現在のセッションを停止した後、このコレクターに対して再度開始するときに適用されます。
このコレクターに登録されているプロバイダーごとに、ユーザーは次のことができます。
- このプロバイダーからのイベントをフィルター処理するキーワードを指定します。
- トレース レベルを変更して、このプロバイダーからのイベントをフィルター処理します。
- トレース セッションでプロバイダーを有効または無効にします。
状態、キーワード、および TraceLevel の変更は、トレース セッションの進行中にすぐに有効になります。
注
Microsoft-WindowsPhone-Enterprise-Diagnostics-Provider (GUID - 3da494e4-0fe2-415C-b895-fb5265c5c5c83b) には、Windows に組み込まれている必要なデバッグ リソース ファイルがあり、これによりログ ファイルをリモート コンピューターでデコードできます。 その他のログには、デコードに必要なデバッグ リソースがない可能性があります。
説明フレームワークのプロパティ:
プロパティ名 | プロパティ値 |
---|---|
形式 | node |
アクセスの種類 | [ゲームをゲット] を選びます |
例:
この CSP を使用して診断を収集するには:
- ターゲット ETW プロバイダーのコンテナーに CollectorName を 指定します。
- (省略可能)次のオプションを使用して、ログとログ ファイルのパラメーターを設定します。
- EtwLog/Collectors/CollectorName/Providers/ProviderGUID の追加操作に ProviderGUID を指定して、1 つ以上のターゲット ETW プロバイダーを示します。
- (省略可能)次のオプションを使用して、ログとログ ファイルのパラメーターを設定します。
- TraceControl EXECUTE コマンド "START" を使用してログ記録を開始します。
- ログ ファイルでアクティビティを生成するアクションをターゲット デバイスで実行します。
- TraceControl EXECUTE コマンド "STOP" を使用してログ記録を停止します。
- FileDownload で
%temp%
説明されているログ ファイルの 読み取り 方法を使用して、フォルダーにあるログ ファイル を収集します。
EtwLog/Collectors/{CollectorName}
適用範囲 | エディション | 対象となる OS |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 イベント チャネル名にすることはできません。 既に登録されている 'Provider' ノード名と等しくない限り、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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 桁の数字で、幅は 16 文字です。 CSP では、内部的に ULONGLONG データ型に変換されます。 既定値は "0" です。これは、このプロバイダーのすべてのイベントが含まれていることを意味します。 関連付けられているトレース セッションが進行中の場合は、新しいキーワード設定がすぐに適用されます。そうでない場合は、そのセッションが次回開始されるときに適用されます。
説明フレームワークのプロパティ:
プロパティ名 | プロパティ値 |
---|---|
形式 |
chr (string) |
アクセスの種類 | 取得、置換 |
既定値 | "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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise / IoT Enterprise LTSC |
✅Windows 10バージョン 1511 [10.0.10586] 以降 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/{CollectorName}/TraceControl
このノードは、このコレクター ノードの関連付けられたトレース セッションの "開始" と "停止" をトリガーします。 "Get" は、このノードの名前を返します。
説明フレームワークのプロパティ:
プロパティ名 | プロパティ値 |
---|---|
形式 |
chr (string) |
アクセスの種類 | Exec、Get |
指定可能な値
値 | 説明 |
---|---|
スタート | ログ トレースを開始します。 |
STOP | ログ トレースを停止します。 |
例:
ログ 記録タスクを追加したら、このノードで Execute コマンドを実行してトレースを開始/停止できます。
コレクター トレース ログを開始します。
<?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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise / IoT Enterprise LTSC |
✅Windows 10バージョン 1511 [10.0.10586] 以降 |
./Vendor/MSFT/DiagnosticLog/EtwLog/Collectors/{CollectorName}/TraceLogFileMode
このノードは、このコレクター ノードの関連トレース セッションのトレース ログ ファイル モードを設定または取得するために使用されます。 使用できる値は 1 と 2 の 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise / IoT Enterprise LTSC |
✅Windows 10バージョン 1511 [10.0.10586] 以降 |
./Vendor/MSFT/DiagnosticLog/FileDownload/DMChannel/{FileContext}
各動的ノードは、ログ記録 CSP ノードの 1 つ ("EtwLog" ノードの下) によって生成されたログ ファイルに対応する 'FileContext' ノードを表します。 ノード名は、登録済みの 'Provider'、'Collector'、または 'Channel' ノードの名前である必要があります。 ログ ファイルとその場所は、ノード名に基づいて CSP によって決定されます。 ファイルのダウンロードは、ログ ファイルを構成されたブロック サイズの複数のブロックに分割し、MDM サーバーによって要求されたブロックを送信することによって行われます。
説明フレームワークのプロパティ:
プロパティ名 | プロパティ値 |
---|---|
形式 | node |
アクセスの種類 | [ゲームをゲット] を選びます |
動的ノードの名前付け | UniqueName: ノード名は、登録済みの 'Provider'、'Collector' または 'Channel' ノードの名前である必要があります。 |
FileDownload/DMChannel/{FileContext}/BlockCount
適用範囲 | エディション | 対象となる OS |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise / IoT Enterprise LTSC |
✅Windows 10、バージョン 1903 [10.0.18362] 以降 |
./Vendor/MSFT/DiagnosticLog/Policy
診断設定のポリシーが含まれています。
これは、最大ログ サイズなどの Windows イベント ログ ポリシーを構成するために使用できます。
説明フレームワークのプロパティ:
プロパティ名 | プロパティ値 |
---|---|
形式 | node |
アクセスの種類 | [ゲームをゲット] を選びます |
ポリシー/チャネル
適用範囲 | エディション | 対象となる OS |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise / IoT Enterprise LTSC |
✅Windows 10、バージョン 1903 [10.0.18362] 以降 |
./Vendor/MSFT/DiagnosticLog/Policy/Channels/{ChannelName}
各動的ノードは、登録済みの "チャネル" ノードを表します。 ノード名は、"Microsoft-Client-Licensing-Platform%2FAdmin" など、有効な Windows イベント ログ チャネル名である必要があります。 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise / IoT Enterprise LTSC |
✅Windows 10、バージョン 1903 [10.0.18362] 以降 |
./Vendor/MSFT/DiagnosticLog/Policy/Channels/{ChannelName}/ActionWhenFull
ログ ファイルが最大サイズに達したときに実行するアクション。 "Truncate"、"Overwrite"、"Archive"。
このポリシー設定を無効にするか、構成しない場合、ローカルに構成された値が既定値として使用されます。 受信トレイまたは ISV によってインストールされるすべてのチャネルは、独自のローカル構成の定義を担当し、その構成は任意の管理者が変更できます。 このポリシーによって設定された値はオーバーライドされますが、ローカル構成は置き換えられません。
説明フレームワークのプロパティ:
プロパティ名 | プロパティ値 |
---|---|
形式 |
chr (string) |
アクセスの種類 | 追加、削除、取得、置換 |
指定可能な値
値 | 説明 |
---|---|
切り捨て | ログ ファイルが最大ファイル サイズに達すると、新しいイベントはログに書き込まれず、失われます。 |
上書き | ログ ファイルの最大ファイル サイズに達すると、新しいイベントによって古いイベントが上書きされます。 |
アーカイブ | ログ ファイルが最大サイズに達すると、ログ ファイルは "アーカイブ場所" ポリシー設定で指定された場所に保存されます。 アーカイブの場所の値が設定されていない場合、新しいファイルは現在のログ ファイルと同じディレクトリに保存されます。 |
例:
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>
Delete ActionWhenFull
<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>
Get 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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>
[置換の有効化]
<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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ Enterprise ✅ Education ✅ Windows SE ✅ IoT Enterprise / IoT Enterprise LTSC |
✅Windows 10、バージョン 1903 [10.0.18362] 以降 |
./Vendor/MSFT/DiagnosticLog/Policy/Channels/{ChannelName}/MaximumFileSize
チャネル ログ ファイルの最大サイズ (MB)。
- このポリシー設定を有効にした場合は、最大ログ ファイル サイズを 1 MB から 2 テラバイト単位で構成できます。
- このポリシー設定を無効にするか、構成しない場合、ログ ファイルの最大サイズはローカルに構成された値に設定されます。 この値は、ローカル管理者が [ログのプロパティ] ダイアログを使用して変更でき、既定値は 1 MB です。
説明フレームワークのプロパティ:
プロパティ名 | プロパティ値 |
---|---|
形式 | 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 |
---|---|---|
✅ デバイス ❌ ユーザー |
✅ Pro ✅ 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 (string) |
アクセスの種類 | 追加、削除、取得、置換 |
大文字と小文字の区別 | 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 に一連の命令を 1 つのコマンドとして提供できます。 これらの手順に基づいて、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