From 256f328b573622b40e3c2a5f1a60ece244973c89 Mon Sep 17 00:00:00 2001 From: ManikaDhiman Date: Tue, 19 Nov 2019 10:19:24 -0800 Subject: [PATCH 01/24] Updated the doc with additional content --- .../mdm/diagnosticlog-csp.md | 1281 +++++++++-------- .../images/provisioning-csp-diagnosticlog.png | Bin 87543 -> 92295 bytes 2 files changed, 688 insertions(+), 593 deletions(-) diff --git a/windows/client-management/mdm/diagnosticlog-csp.md b/windows/client-management/mdm/diagnosticlog-csp.md index d0a24d5007..5e0ad6cc32 100644 --- a/windows/client-management/mdm/diagnosticlog-csp.md +++ b/windows/client-management/mdm/diagnosticlog-csp.md @@ -9,26 +9,687 @@ ms.topic: article ms.prod: w10 ms.technology: windows author: manikadhiman -ms.date: 08/05/2019 +ms.date: 11/19/2019 --- # DiagnosticLog CSP +The DiagnosticLog configuration service provider (CSP) provides the following feature areas: -The DiagnosticLog configuration service provider (CSP) is used in the following scenarios: -- [Controlling ETW trace sessions](#diagnosticlog-csp-for-controlling-etw-trace-sessions) -- [Triggering devices to upload existing event logs, log files, and registry values to cloud storage](#diagnosticlog-csp-for-triggering-devices-to-upload-files-to-cloud) +- [DiagnosticArchive area: Capture and upload event logs, log files and registry values for troubleshooting](#DiagnosticArchive-area:-Capture-and-upload-event-logs,-log-files-and-registry-values-for-troubleshooting) +- [Policy area: Configure Windows event log policies such as maximum log size](#Policy-area:-Configure-Windows-event-log-policies-such-as-maximum-log-size) +- [EtwLog area: Control ETW trace sessions](#EtwLog-area:-control-etw-trace-sessions) +- [DeviceStateData area: Additional device information](#DeviceStateData-area:-Additional-device-information) +- [FileDownload area: Pull trace and state data directly from the device](#FileDownload-area:-Pull-trace-and-state-data-directly-from-the-device) -## DiagnosticLog CSP for controlling ETW trace sessions -The DiagnosticLog CSP is used for generating and collecting diagnostic information from the device: Event Tracing for Windows (ETW) log files and current MDM configured state of the device. +Here are the links to the DDFs: +- [DiagnosticLog CSP version 1.4](diagnosticlog-ddf.md#version-1-4) +- [DiagnosticLog CSP version 1.3](diagnosticlog-ddf.md#version-1-3) +- [DiagnosticLog CSP version 1.2](diagnosticlog-ddf.md#version-1-2) -DiagnosticLog CSP supports the following type of event tracing: +The following diagram shows the DiagnosticLog CSP in tree format. +![diagnosticlog csp diagram](images/provisioning-csp-diagnosticlog.png) + +**./Vendor/MSFT/DiagnosticLog** +The root node for the DiagnosticLog CSP. + +Rest of the nodes in this CSP are described within their respective feature area sections. + +## DiagnosticArchive area: Capture and upload event logs, log files and registry values for troubleshooting +The DiagnosticArchive functionality within the DiagnosticLog CSP is used to trigger devices to gather troubleshooting data into a zip archive file and upload that archive to cloud storage. DiagnosticArchive is designed for ad-hoc troubleshooting scenarios, such as an IT admin investigating an app installation failure using a collection of event log events, registry values, and app or OS log files. + +> [!Note] +> DiagnosticArchive is a "break glass" backstop option for device troubleshooting. Diagnostic data such as log files can grow to many gigabytes. Gathering, transferring, and storing large amounts of data may burden the user's device, the network and cloud storage. Management servers invoking DiagnosticArchive must take care to minimize data gathering frequency and scope. + +The following section describes the nodes for the DiagnosticArchive functionality. + +**DiagnosticArchive** +Added in version 1.4 of the CSP in Windows 10, version 1903. Root node for the DiagnosticArchive functionality. + +The supported operation is Get. + +**DiagnosticArchive/ArchiveDefinition** +Added in version 1.4 of the CSP in Windows 10, version 1903. + +The supported operations are Add and Execute. + +The data type is string. + +Expected value: +Set and Execute are functionality equivalent, and each accepts an XML snippet (as a string) describing what data to gather and where to upload it. + +The following is an example of the XML. This example instructs the CSP to gather: +- All the keys and values under a registry path +- All the *.etl files in a folder +- The output of two commands +- Additional files created by one of the commands +- All the Application event log events. + +The results are zipped and uploaded to the specified SasUrl. The filename format is "DiagLogs-{ComputerName}-YYYYMMDDTHHMMSSZ.zip". + +``` xml + + server generated guid value such as f1e20cb4-9789-4f6b-8f6a-766989764c6d + server generated url where the HTTP PUT will be accepted + HKLM\Software\Policies + %ProgramData%\Microsoft\DiagnosticLogCSP\Collectors\*.etl + %windir%\system32\ipconfig.exe /all + %windir%\system32\mdmdiagnosticstool.exe -out %ProgramData%\temp\ + %ProgramData%\temp\*.* + Application + + +``` +The XML should include the following elements within the `Collection` element: + +**ID** +The ID value is a server-generated GUID string that identifies this data-gathering request. To avoid accidental repetition of data gathering, the CSP ignores subsequent Set or Execute invocations with the same ID value. + +**SasUrl** +The SasUrl value is the target URI to which the CSP uploads the results zip file. It is the responsibility of the management server to provision storage in such a way that the server accepts the HTTP PUT to this URL. For example, the device management service could: +- Provision cloud storage, such as an Azure blob storage container or other storage managed by the device management server +- Generate a dynamic https SAS token URL representing the storage location (and which is understood by the server to allow a one-time upload or time-limited uploads) +- Pass this value to the CSP as the SasUrl value. + +Assuming a case where the management server's customer (such as an IT admin) is meant to access the data, the management server would also expose the stored data through its user interface or APIs. + +**One or more data gathering directives, which may include any of the following:** + +- **RegistryKey** + - Exports all of the key names and values under a given path (recursive). + - Expected input value: Registry path such as "HKLM\Software\Policies". + - Output format: Creates a .reg file, similar to the output of reg.exe EXPORT command. + - Privacy guardrails: To enable diagnostic log capture while reducing the risk of an IT admin inadvertently capturing user-generated documents, registry paths are restricted to those under HKLM and HKCU. + +- **Events** + - Exports all events from the named Windows event log. + - Expected input value: A named event log channel such as "Application" or "Microsoft-Windows-DeviceGuard/Operational". + - Output format: Creates a .evtx file. + +- **Commands** + - This directive type allows the execution of specific commands such as ipconfig.exe. Note that DiagnosticArchive and the Commands directives are not a general-purpose scripting platform. These commands are allowed in the DiagnosticArchive context to handle cases where critical device information may not be available through existing log files. + - Expected input value: The full command line including path and any arguments, such as `%windir%\\system32\\ipconfig.exe /all`. + - Output format: Console text output from the command is captured in a text file and included in the overall output archive. For commands which may generate file output rather than console output, a subsequent FolderFiles directive would be used to capture that output. The example XML above demonstrates this pattern with mdmdiagnosticstool.exe's -out parameter. + - Privacy guardrails: To enable diagnostic data capture while reducing the risk of an IT admin inadventantly capturing user-generated documents, only the following commands are allowed: + - %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** + - Captures log files from a given path (without recursion). + - Expected input value: File path with or without wildcards, such as "%windir%\\System32", or "%programfiles%\\*.log". + - Privacy guardrails: To enable diagnostic log capture while reducing the risk of an IT admin inadventently capturing user-generated documents, only paths under the following roots are allowed: + - %PROGRAMFILES% + - %PROGRAMDATA% + - %PUBLIC% + - %WINDIR% + - %TEMP% + - %TMP% + - Additionally, only files with the following extensions are captured: + - .log + - .txt + - .dmp + - .cab + - .zip + - .xml + - .html + - .evtx + - .etl + +**DiagnosticArchive/ArchiveResults** +Added in version 1.4 of the CSP in Windows 10, version 1903. This policy setting displays the results of the last archive run. + +The supported operation is Get. + +The data type is string. + +A Get to the above URI will return the results of the data gathering for the last diagnostics request. For the example above it returns: + +``` xml + + + + + 1 + 1 + 0 + SyncHdr + 200 + + + 2 + 1 + 1 + Get + 200 + + + 3 + 1 + 1 + + + ./Vendor/MSFT/DiagnosticLog/DiagnosticArchive/ArchiveResults + + + + f1e20cb4-9789-4f6b-8f6a-766989764c6d + HKLM\Software\Policies + C:\ProgramData\Microsoft\DiagnosticLogCSP\Collectors\*.etl + %windir%\system32\ipconfig.exe /all + %windir%\system32\mdmdiagnosticstool.exe -out c:\ProgramData\temp\ + c:\ProgramData\temp\*.* + Application + + + + + + + +``` + +Each data gathering node is annotated with the HRESULT of the action and the collection is also annotated with an overall HRESULT. In this example, note that the mdmdiagnosticstool.exe command failed. + +The zip file which is created also contains a results.xml file whose contents align to the Data section in the SyncML for ArchiveResults. Accordingly, an IT admin using the zip file for troubleshooting can determine the order and success of each directive without needing a permanent record of the SyncML value for DiagnosticArchive/ArchiveResults. + + +## Policy area: Configure Windows event log policies such as maximum log size + +The following section describes the nodes for the Policy functionality. + +**Policy** +Added in version 1.4 of the CSP in Windows 10, version 1903. Root node to control settings for channels in Event Log. + +The supported operation is Get. + +**Policy/Channels** +Added in version 1.4 of the CSP in Windows 10, version 1903. Node that contains Event Log channel settings. + +The supported operation is Get. + +**Policy/Channels/_ChannelName_** +Added in version 1.4 of the CSP in Windows 10, version 1903. Dynamic node to represent a registered channel. The node name must be a valid Windows event log channel name, such as ``Microsoft-Client-Licensing-Platform%2FAdmin``. When specifying the name in the LocURI, it must be URL encoded, otherwise it may unexpectedly translate into a different URI. + +Supported operations are Add, Delete, and Get. + +Add **Channel** +``` xml + + ​ + ​ + 2​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName​ + ​ + ​ + ​ + node​ + ​ + ​ + ​ + ​ + ​ + ​ + +``` +Delete **Channel** +``` xml + + ​ + ​ + 3​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName​ + ​ + ​ + ​ + ​ + ​ + ​ + +``` +Get **Channel** +``` xml + + ​ + ​ + 4​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName​ + ​ + ​ + ​ + ​ + ​ + ​ + +``` +**Policy/Channels/_ChannelName_/MaximumFileSize** +Added in version 1.4 of the CSP in Windows 10, version 1903. This policy setting specifies the maximum size of the log file in megabytes. + +If you enable this policy setting, you can configure the maximum log file size to be between 1 megabyte and 2 terabytes in megabyte increments. + +If you disable or do not configure this policy setting, the maximum size of the log file will be set to the locally configured value. This value can be changed by the local administrator using the Log Properties dialog, and it defaults to 1 megabyte. + +Supported operations are Add, Delete, Get, and Replace. + +The data type is integer. + +Add **MaximumFileSize** +``` xml + + ​ + ​ + 6​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/MaximumFileSize​ + ​ + ​ + ​ + int​ + text/plain​ + ​ + 3​ + ​ + ​ + ​ + ​ + +``` + +Delete **MaximumFileSize** +``` xml + + ​ + ​ + 7​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/MaximumFileSize​ + ​ + ​ + ​ + ​ + ​ + ​ + +``` +Get **MaximumFileSize** +``` xml + + ​ + ​ + 5​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/MaximumFileSize​ + ​ + ​ + ​ + ​ + ​ + ​ + +``` + +Replace **MaximumFileSize** +``` xml + + ​ + ​ + 8​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/MaximumFileSize​ + ​ + ​ + ​ + int​ + text/plain​ + ​ + 5​ + ​ + ​ + ​ + ​ + +``` + +**Policy/Channels/_ChannelName_/SDDL** +Added in version 1.4 of the CSP in Windows 10, version 1903. This policy setting represents SDDL string controlling access to the channel. + +Supported operations are Add, Delete, Get, and Replace. + +The data type is string. + +Default string is as follows: + +https://docs.microsoft.com/windows/desktop/WES/eventmanifestschema-channeltype-complextype. + +Add **SDDL** +``` xml + + ​ + ​ + 10​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/SDDL​ + ​ + ​ + ​ + chr​ + text/plain​ + ​ + YourSDDL​ + ​ + ​ + ​ + ​ + +``` + +Delete **SDDL** +``` xml + + + ​ + ​ + 11​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/SDDL​ + ​ + ​ + ​ + ​ + ​ + ​ + +``` + +Get **SDDL** +``` xml + + ​ + ​ + 9​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/SDDL​ + ​ + ​ + ​ + ​ + ​ + ​ + +``` + +Replace **SDDL** +``` xml + + ​ + ​ + 12​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/SDDL​ + ​ + ​ + ​ + chr​ + text/plain​ + ​ + YourNewSDDL​ + ​ + ​ + ​ + ​ + +``` + +**Policy/Channels/_ChannelName_/ActionWhenFull** +Added in version 1.4 of the CSP in Windows 10, version 1903. This policy setting controls Event Log behavior when the log file reaches its maximum size. + +Supported operations are Add, Delete, Get, and Replace. + +The data type is string. + +The following are the possible values: +- Truncate — When the log file reaches its maximum file size, new events are not written to the log and are lost. +- Overwrite — When the log file reaches its maximum file size, new events overwrite old events. +- Archive — When the log file reaches its maximum size, the log file is saved to the location specified by the "Archive Location" policy setting. If archive location value is not set, the new file is saved in the same directory as current log file. + +If you disable or do not configure this policy setting, the locally configured value will be used as default. Every channel that is installed, whether inbox or by ISVs, is responsible for defining its own local configuration, and that configuration can be changed by any administrator. Values set via this policy override but do not replace local configuration. + + +Add **ActionWhenFull** +``` xml + + ​ + ​ + 14​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/ActionWhenFull​ + ​ + ​ + ​ + chr​ + text/plain​ + ​ + Archive​ + ​ + ​ + ​ + ​ + +``` + +Delete **ActionWhenFull** +``` xml + + ​ + ​ + 15​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/ActionWhenFull​ + ​ + ​ + ​ + ​ + ​ + ​ + +``` + +Get **ActionWhenFull** +``` xml + + ​ + ​ + 13​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/ActionWhenFull​ + ​ + ​ + ​ + ​ + ​ + ​ + +``` + +Replace **ActionWhenFull** +``` xml + + ​ + ​ + 16​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/ActionWhenFull​ + ​ + ​ + ​ + chr​ + text/plain​ + ​ + Truncate​ + ​ + ​ + ​ + ​ + +``` + +**Policy/Channels/_ChannelName_/Enabled** +Added in version 1.4 of the CSP in Windows 10, version 1903. This policy setting specifies whether the channel should be enabled or disabled. + +Supported operations are Add, Delete, Get, and Replace. + +The data type is boolean. + +The following are the possible values: +- TRUE — Enables the channel. +- FALSE — Disables the channel. + +If you disable or do not configure this policy setting, the locally configured value is used as default. + +Get **Enabled** +``` xml + + ​ + ​ + 17​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/Enabled​ + ​ + ​ + ​ + ​ + ​ + ​ + +``` + +Add **Enabled** +``` xml + + ​ + ​ + 18​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/Enabled​ + ​ + ​ + ​ + bool​ + text/plain​ + ​ + TRUE​ + ​ + ​ + ​ + ​ + +``` + +Delete **Enabled** +``` xml + + ​ + ​ + 19​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/Enabled​ + ​ + ​ + ​ + ​ + ​ + ​ + +``` + +Replace **Enabled** +``` xml + + ​ + ​ + 20​ + ​ + ​ + ​ + ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/Enabled​ + ​ + ​ + ​ + bool​ + text/plain​ + ​ + FALSE​ + ​ + ​ + ​ + ​ + +``` + +## EtwLog area: Control ETW trace sessions +The Event Tracing for Windows (ETW) log feature of the DiagnosticLog CSP is used to control the following types of event tracing: - Collector-based tracing - Channel-based tracing +The ETW log feature is designed for advanced usage, and assumes developers' familiarity with ETW. For more information, see [About Event Tracing](https://docs.microsoft.com/windows/win32/etw/about-event-tracing). + ### Collector-based tracing -This type of event tracing simultaneously collects event data from a collection of registered ETW providers. +This type of event tracing collects event data from a collection of registered ETW providers. An event collector is a container of registered ETW providers. Users can add or delete a collector node and register or unregister multiple providers in this collector. @@ -51,7 +712,7 @@ For each registered provider in this collector, the user can: - Change trace level to filter events from this provider - Enable or disable the provider in the trace session -The changes on **State**, **Keywords** and **TraceLevel** takes effect immediately while trace session is in progress. +The changes on **State**, **Keywords**, and **TraceLevel** takes effect immediately while trace session is in progress. > [!Note] > Microsoft-WindowsPhone-Enterprise-Diagnostics-Provider (GUID - 3da494e4-0fe2-415C-b895-fb5265c5c83b) has the required debug resource files built into Windows OS, which will allow the logs files to be decoded on the remote machine. Any other logs may not have the debug resources required to decode. @@ -72,19 +733,6 @@ For each channel node, the user can: For more information about using DiagnosticLog to collect logs remotely from a PC or mobile device, see [Diagnose MDM failures in Windows 10](diagnose-mdm-failures-in-windows-10.md). -Here are the links to the DDFs: - -- [DiagnosticLog CSP version 1.2](diagnosticlog-ddf.md#version-1-2) -- [DiagnosticLog CSP version 1.3](diagnosticlog-ddf.md#version-1-3) -- [DiagnosticLog CSP version 1.4](diagnosticlog-ddf.md#version-1-4) - -The following diagram shows the DiagnosticLog CSP in tree format. - -![diagnosticlog csp diagram](images/provisioning-csp-diagnosticlog.png) - -**./Vendor/MSFT/DiagnosticLog** -The root node for the DiagnosticLog CSP. - To gather diagnostics using this CSP: 1. Specify a *CollectorName* for the container of the target ETW providers. @@ -102,6 +750,8 @@ To gather diagnostics using this CSP: 7. Stop logging using **TraceControl** EXECUTE command “STOP”. 8. Collect the log file located in the `%temp%` folder using the method described in [Reading a log file](#reading-a-log-file). +The following section describes the nodes for EtwLog functionality. + **EtwLog** Node to contain the Error Tracing for Windows log. @@ -601,6 +1251,10 @@ Set channel **State** ``` +## DeviceStateData area: Additional device information + +The following section describes the nodes for the DeviceStateData functionality. + **DeviceStateData** Added in version 1.3 of the CSP in Windows 10, version 1607. Node for all types of device state data that are exposed. @@ -630,6 +1284,17 @@ The supported value is Execute. ``` +## FileDownload area: Pull trace and state data directly from the device +The FileDownload feature of the DiagnosticLog CSP enables a management server to pull data directly from the device. In the FileDownload context the client and server roles are conceptually reversed, with the management server acting as a client to download the data from the managed device. + +### Comparing FileDownload and DiagnosticArchive +Both the FileDownload and DiagnosticArchive features can be used to get data from the device to the management server, but they are optimized for different workflows. + +- FileDownload enables the management server to directly pull byte-level trace data from the managed device. The data transfer takes place through the existing OMA-DM/SyncML context. It is typically used together with the EtwLogs feature as part of an advanced monitoring or diagnostic flow. FileDownlod requires granular orchestration by the management server, but avoids the need for dedicated cloud storage. +- DiagnosticArchive allows the management server to give the CSP a full set of instructions as single command. Based on those instructions the CSP orchestrates the work client-side to package the requested diagnostic files into a zip archive and upload that archive to cloud storage. The data transfer happens outsite of the OMA-DM session, via an HTTP PUT. + +The following section describes the nodes for the FileDownload functionality. + **FileDownload** Node to contain child nodes for log file transportation protocols and corresponding actions. @@ -801,577 +1466,7 @@ The data type is Base64. The supported operation is Get. -**Policy** -Added in version 1.4 of the CSP in Windows 10, version 1903. Root node to control settings for channels in Event Log. - -The supported operation is Get. - -**Policy/Channels** -Added in version 1.4 of the CSP in Windows 10, version 1903. Node that contains Event Log channel settings. - -The supported operation is Get. - -**Policy/Channels/_ChannelName_** -Added in version 1.4 of the CSP in Windows 10, version 1903. Dynamic node to represent a registered channel. The node name must be a valid Windows event log channel name, such as ``Microsoft-Client-Licensing-Platform%2FAdmin``. When specifying the name in the LocURI, it must be URL encoded, otherwise it may unexpectedly translate into a different URI. - -Supported operations are Add, Delete, and Get. - -Add **Channel** -``` xml - - ​ - ​ - 2​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName​ - ​ - ​ - ​ - node​ - ​ - ​ - ​ - ​ - ​ - ​ - -``` -Delete **Channel** -``` xml - - ​ - ​ - 3​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName​ - ​ - ​ - ​ - ​ - ​ - ​ - -``` -Get **Channel** -``` xml - - ​ - ​ - 4​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName​ - ​ - ​ - ​ - ​ - ​ - ​ - -``` -**Policy/Channels/_ChannelName_/MaximumFileSize** -Added in version 1.4 of the CSP in Windows 10, version 1903. This policy setting specifies the maximum size of the log file in megabytes. - -If you enable this policy setting, you can configure the maximum log file size to be between 1 megabyte and 2 terabytes in megabyte increments. - -If you disable or do not configure this policy setting, the maximum size of the log file will be set to the locally configured value. This value can be changed by the local administrator using the Log Properties dialog, and it defaults to 1 megabyte. - -Supported operations are Add, Delete, Get, and Replace. - -The data type is integer. - -Add **MaximumFileSize** -``` xml - - ​ - ​ - 6​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/MaximumFileSize​ - ​ - ​ - ​ - int​ - text/plain​ - ​ - 3​ - ​ - ​ - ​ - ​ - -``` - -Delete **MaximumFileSize** -``` xml - - ​ - ​ - 7​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/MaximumFileSize​ - ​ - ​ - ​ - ​ - ​ - ​ - -``` -Get **MaximumFileSize** -``` xml - - ​ - ​ - 5​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/MaximumFileSize​ - ​ - ​ - ​ - ​ - ​ - ​ - -``` - -Replace **MaximumFileSize** -``` xml - - ​ - ​ - 8​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/MaximumFileSize​ - ​ - ​ - ​ - int​ - text/plain​ - ​ - 5​ - ​ - ​ - ​ - ​ - -``` - -**Policy/Channels/_ChannelName_/SDDL** -Added in version 1.4 of the CSP in Windows 10, version 1903. This policy setting represents SDDL string controlling access to the channel. - -Supported operations are Add, Delete, Get, and Replace. - -The data type is string. - -Default string is as follows: - -https://docs.microsoft.com/windows/desktop/WES/eventmanifestschema-channeltype-complextype. - -Add **SDDL** -``` xml - - ​ - ​ - 10​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/SDDL​ - ​ - ​ - ​ - chr​ - text/plain​ - ​ - YourSDDL​ - ​ - ​ - ​ - ​ - -``` - -Delete **SDDL** -``` xml - - - ​ - ​ - 11​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/SDDL​ - ​ - ​ - ​ - ​ - ​ - ​ - -``` - -Get **SDDL** -``` xml - - ​ - ​ - 9​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/SDDL​ - ​ - ​ - ​ - ​ - ​ - ​ - -``` - -Replace **SDDL** -``` xml - - ​ - ​ - 12​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/SDDL​ - ​ - ​ - ​ - chr​ - text/plain​ - ​ - YourNewSDDL​ - ​ - ​ - ​ - ​ - -``` - -**Policy/Channels/_ChannelName_/ActionWhenFull** -Added in version 1.4 of the CSP in Windows 10, version 1903. This policy setting controls Event Log behavior when the log file reaches its maximum size. - -Supported operations are Add, Delete, Get, and Replace. - -The data type is string. - -The following are the possible values: -- Truncate — When the log file reaches its maximum file size, new events are not written to the log and are lost. -- Overwrite — When the log file reaches its maximum file size, new events overwrite old events. -- Archive — When the log file reaches its maximum size, the log file is saved to the location specified by the "Archive Location" policy setting. If archive location value is not set, the new file is saved in the same directory as current log file. - -If you disable or do not configure this policy setting, the locally configured value will be used as default. Every channel that is installed, whether inbox or by ISVs, is responsible for defining its own local configuration, and that configuration can be changed by any administrator. Values set via this policy override but do not replace local configuration. - - -Add **ActionWhenFull** -``` xml - - ​ - ​ - 14​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/ActionWhenFull​ - ​ - ​ - ​ - chr​ - text/plain​ - ​ - Archive​ - ​ - ​ - ​ - ​ - -``` - -Delete **ActionWhenFull** -``` xml - - ​ - ​ - 15​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/ActionWhenFull​ - ​ - ​ - ​ - ​ - ​ - ​ - -``` - -Get **ActionWhenFull** -``` xml - - ​ - ​ - 13​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/ActionWhenFull​ - ​ - ​ - ​ - ​ - ​ - ​ - -``` - -Replace **ActionWhenFull** -``` xml - - ​ - ​ - 16​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/ActionWhenFull​ - ​ - ​ - ​ - chr​ - text/plain​ - ​ - Truncate​ - ​ - ​ - ​ - ​ - -``` - -**Policy/Channels/_ChannelName_/Enabled** -Added in version 1.4 of the CSP in Windows 10, version 1903. This policy setting specifies whether the channel should be enabled or disabled. - -Supported operations are Add, Delete, Get, and Replace. - -The data type is boolean. - -The following are the possible values: -- TRUE — Enables the channel. -- FALSE — Disables the channel. - -If you disable or do not configure this policy setting, the locally configured value is used as default. - -Get **Enabled** -``` xml - - ​ - ​ - 17​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/Enabled​ - ​ - ​ - ​ - ​ - ​ - ​ - -``` - -Add **Enabled** -``` xml - - ​ - ​ - 18​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/Enabled​ - ​ - ​ - ​ - bool​ - text/plain​ - ​ - TRUE​ - ​ - ​ - ​ - ​ - -``` - -Delete **Enabled** -``` xml - - ​ - ​ - 19​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/Enabled​ - ​ - ​ - ​ - ​ - ​ - ​ - -``` - -Replace **Enabled** -``` xml - - ​ - ​ - 20​ - ​ - ​ - ​ - ./Vendor/MSFT/DiagnosticLog/Policy/Channels/ChannelName/Enabled​ - ​ - ​ - ​ - bool​ - text/plain​ - ​ - FALSE​ - ​ - ​ - ​ - ​ - -``` - -## DiagnosticLog CSP for triggering devices to upload files to cloud -The DiagnosticLog CSP is used for triggering devices to upload existing event logs, log files, and registry values to cloud storage. The following section describes the nodes for the DiagnosticArchive functionality. - -**DiagnosticArchive** -Added in version 1.4 of the CSP in Windows 10, version 1903. Root note for the DiagnosticArchive functionality. - -The supported operation is Get. - -**DiagnosticArchive/ArchiveDefinition** -Added in version 1.4 of the CSP in Windows 10, version 1903. - -The supported operations are Add and Execute. - -The data type is string. - -Expected value: -Set and Execute are functionality equivalent, and each accepts an XML snippet (as a string) describing what data to gather and where to upload it when done. This XML defines what should be collected and compressed into a zip file to be uploaded to Azure blog storage. - -The following is an example of the XML. This example instructs that a zip file be created containing the output from a dump of the specified registry key, all the files in a folder, the output of two commands, all the files in another folder, the output of a command, all the Application events, two sets of files, and another command output. All of this will be uploaded to the blob storage URL as specified in the tags and must be in the noted format with the container and the key in the URL. The administrator can retrieve this URL from Azure. The file uploaded will be in the format DiagLogs-{ComputerName}-YYYYMMDDTHHMMSSZ.zip. - -``` xml - - f1e20cb4-9789-4f6b-8f6a-766989764c6d - {web address}/{container}{key} - HKLM\Software\Policies - C:\ProgramData\Microsoft\DiagnosticLogCSP\Collectors\*.etl - %windir%\system32\ipconfig.exe /all - %windir%\system32\mdmdiagnosticstool.exe -out c:\ProgramData\temp\ - c:\ProgramData\temp\*.* - %windir%\system32\ping.exe -n 50 localhost - Application - %ProgramData%\Microsoft\DiagnosticLogCSP\Collectors\*.etl - %SystemRoot%\System32\LogFiles\wmi\*.etl.* - - %windir%\system32\pnputil.exe /enum-drivers - - -``` -Where: - -- ID is a unique GUID value that defines this particular run of the DiagnosticLog CSP. -- There can be multiple RegistryKey, FolderFiles, Command, and Events elements, which extract or execute and collect the output from the action specified. -- SasUrl is generated from the Azure Blob Storage UX in Azure such that it will allow write access to the blob to upload the zip file created by all the actions specified. - -**DiagnosticArchive/ArchiveResults** -Added in version 1.4 of the CSP in Windows 10, version 1903. This policy setting displays the results of the last archive run. - -The supported operation is Get. - -The data type is string. - -A Get to the above URI will return the results of the gathering of data for the last diagnostics request. For the example above it returns: - -``` xml - - - - - 1 - 1 - 0 - SyncHdr - 200 - - - 2 - 1 - 1 - Get - 200 - - - 3 - 1 - 1 - - - ./Vendor/MSFT/DiagnosticLog/DiagnosticArchive/ArchiveResults - - - - f1e20cb4-9789-4f6b-8f6a-766989764c6d - HKLM\Software\Policies - C:\ProgramData\Microsoft\DiagnosticLogCSP\Collectors\*.etl - %windir%\system32\ipconfig.exe /all - %windir%\system32\mdmdiagnosticstool.exe -out c:\ProgramData\temp\ - c:\ProgramData\temp\*.* - %windir%\system32\ping.exe -n 50 localhost - Application - %ProgramData%\Microsoft\DiagnosticLogCSP\Collectors\*.etl - %SystemRoot%\System32\LogFiles\wmi\*.etl.* - %windir%\system32\pnputil.exe /enum-drivers - - - - - - - -``` -> [!Note] -> Each data gathering node is annotated with the HRESULT of the option and the collection is also annotated with an HRESULT. In this example, note that the mdmdiagnosticstool.exe command failed. - -## Reading a log file +### Reading a log file To read a log file: 1. Enumerate log file under **./Vendor/MSFT/DiagnosticLog/FileDownload/DMChannel**. 2. Select a log file in the Enumeration result. diff --git a/windows/client-management/mdm/images/provisioning-csp-diagnosticlog.png b/windows/client-management/mdm/images/provisioning-csp-diagnosticlog.png index 9829586338e5ad0a9f67b855097cb52b1c3ddb32..a12415ae843978b1b0cdb1c91f63a8bc832f6e5f 100644 GIT binary patch literal 92295 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 From e118e6e8f49dfc065de79ff1e8c9600cb89ae768 Mon Sep 17 00:00:00 2001 From: ManikaDhiman Date: Tue, 19 Nov 2019 11:26:10 -0800 Subject: [PATCH 02/24] More formatting updates --- .../mdm/diagnosticlog-csp.md | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/windows/client-management/mdm/diagnosticlog-csp.md b/windows/client-management/mdm/diagnosticlog-csp.md index 5e0ad6cc32..3e422aa298 100644 --- a/windows/client-management/mdm/diagnosticlog-csp.md +++ b/windows/client-management/mdm/diagnosticlog-csp.md @@ -15,11 +15,11 @@ ms.date: 11/19/2019 # DiagnosticLog CSP The DiagnosticLog configuration service provider (CSP) provides the following feature areas: -- [DiagnosticArchive area: Capture and upload event logs, log files and registry values for troubleshooting](#DiagnosticArchive-area:-Capture-and-upload-event-logs,-log-files-and-registry-values-for-troubleshooting) -- [Policy area: Configure Windows event log policies such as maximum log size](#Policy-area:-Configure-Windows-event-log-policies-such-as-maximum-log-size) -- [EtwLog area: Control ETW trace sessions](#EtwLog-area:-control-etw-trace-sessions) -- [DeviceStateData area: Additional device information](#DeviceStateData-area:-Additional-device-information) -- [FileDownload area: Pull trace and state data directly from the device](#FileDownload-area:-Pull-trace-and-state-data-directly-from-the-device) +- [DiagnosticArchive area](#diagnosticarchive-area). Capture and upload event logs, log files, and registry values for troubleshooting. +- [Policy area](#policy-area). Configure Windows event log policies, such as maximum log size. +- [EtwLog area](#etwlog-area). Control ETW trace sessions. +- [DeviceStateData area](#devicestatedata-area). Provide additional device information. +- [FileDownload area](#filedownload-area). Pull trace and state data directly from the device. Here are the links to the DDFs: - [DiagnosticLog CSP version 1.4](diagnosticlog-ddf.md#version-1-4) @@ -35,7 +35,8 @@ The root node for the DiagnosticLog CSP. Rest of the nodes in this CSP are described within their respective feature area sections. -## DiagnosticArchive area: Capture and upload event logs, log files and registry values for troubleshooting +## DiagnosticArchive area + The DiagnosticArchive functionality within the DiagnosticLog CSP is used to trigger devices to gather troubleshooting data into a zip archive file and upload that archive to cloud storage. DiagnosticArchive is designed for ad-hoc troubleshooting scenarios, such as an IT admin investigating an app installation failure using a collection of event log events, registry values, and app or OS log files. > [!Note] @@ -110,7 +111,7 @@ Assuming a case where the management server's customer (such as an IT admin) is - This directive type allows the execution of specific commands such as ipconfig.exe. Note that DiagnosticArchive and the Commands directives are not a general-purpose scripting platform. These commands are allowed in the DiagnosticArchive context to handle cases where critical device information may not be available through existing log files. - Expected input value: The full command line including path and any arguments, such as `%windir%\\system32\\ipconfig.exe /all`. - Output format: Console text output from the command is captured in a text file and included in the overall output archive. For commands which may generate file output rather than console output, a subsequent FolderFiles directive would be used to capture that output. The example XML above demonstrates this pattern with mdmdiagnosticstool.exe's -out parameter. - - Privacy guardrails: To enable diagnostic data capture while reducing the risk of an IT admin inadventantly capturing user-generated documents, only the following commands are allowed: + - Privacy guardrails: To enable diagnostic data capture while reducing the risk of an IT admin inadventantly capturing user-generated documents, only the following commands are allowed: - %windir%\\system32\\certutil.exe - %windir%\\system32\\dxdiag.exe - %windir%\\system32\\gpresult.exe @@ -140,7 +141,7 @@ Assuming a case where the management server's customer (such as an IT admin) is - %WINDIR% - %TEMP% - %TMP% - - Additionally, only files with the following extensions are captured: + - Additionally, only files with the following extensions are captured: - .log - .txt - .dmp @@ -209,7 +210,9 @@ Each data gathering node is annotated with the HRESULT of the action and the col The zip file which is created also contains a results.xml file whose contents align to the Data section in the SyncML for ArchiveResults. Accordingly, an IT admin using the zip file for troubleshooting can determine the order and success of each directive without needing a permanent record of the SyncML value for DiagnosticArchive/ArchiveResults. -## Policy area: Configure Windows event log policies such as maximum log size +## Policy area + +The Policy functionality within the DiagnosticLog CSP configures Windows event log policies, such as maximum log size. The following section describes the nodes for the Policy functionality. @@ -680,10 +683,11 @@ Replace **Enabled** ``` -## EtwLog area: Control ETW trace sessions +## EtwLog area + The Event Tracing for Windows (ETW) log feature of the DiagnosticLog CSP is used to control the following types of event tracing: -- Collector-based tracing -- Channel-based tracing +- [Collector-based tracing](#collector-based-tracing) +- [Channel-based tracing](#channel-based-tracing) The ETW log feature is designed for advanced usage, and assumes developers' familiarity with ETW. For more information, see [About Event Tracing](https://docs.microsoft.com/windows/win32/etw/about-event-tracing). @@ -1251,7 +1255,9 @@ Set channel **State** ``` -## DeviceStateData area: Additional device information +## DeviceStateData area + +The DeviceStateData functionality within the DiagnosticLog CSP provides additional device information. The following section describes the nodes for the DeviceStateData functionality. @@ -1284,7 +1290,7 @@ The supported value is Execute. ``` -## FileDownload area: Pull trace and state data directly from the device +## FileDownload area The FileDownload feature of the DiagnosticLog CSP enables a management server to pull data directly from the device. In the FileDownload context the client and server roles are conceptually reversed, with the management server acting as a client to download the data from the managed device. ### Comparing FileDownload and DiagnosticArchive From ebe07ee30520ea3577040b3f01b05df777c99a6d Mon Sep 17 00:00:00 2001 From: ManikaDhiman Date: Tue, 19 Nov 2019 11:49:13 -0800 Subject: [PATCH 03/24] Updated bulleted list format --- .../mdm/diagnosticlog-csp.md | 73 +++++++++---------- 1 file changed, 36 insertions(+), 37 deletions(-) diff --git a/windows/client-management/mdm/diagnosticlog-csp.md b/windows/client-management/mdm/diagnosticlog-csp.md index 3e422aa298..41c60a43a2 100644 --- a/windows/client-management/mdm/diagnosticlog-csp.md +++ b/windows/client-management/mdm/diagnosticlog-csp.md @@ -13,15 +13,14 @@ ms.date: 11/19/2019 --- # DiagnosticLog CSP -The DiagnosticLog configuration service provider (CSP) provides the following feature areas: - +The DiagnosticLog configuration service provider (CSP) provides the following feature areas: - [DiagnosticArchive area](#diagnosticarchive-area). Capture and upload event logs, log files, and registry values for troubleshooting. - [Policy area](#policy-area). Configure Windows event log policies, such as maximum log size. - [EtwLog area](#etwlog-area). Control ETW trace sessions. - [DeviceStateData area](#devicestatedata-area). Provide additional device information. - [FileDownload area](#filedownload-area). Pull trace and state data directly from the device. -Here are the links to the DDFs: +The following are the links to the DDFs of the DiagnosticLog CSP: - [DiagnosticLog CSP version 1.4](diagnosticlog-ddf.md#version-1-4) - [DiagnosticLog CSP version 1.3](diagnosticlog-ddf.md#version-1-3) - [DiagnosticLog CSP version 1.2](diagnosticlog-ddf.md#version-1-2) @@ -33,7 +32,7 @@ The following diagram shows the DiagnosticLog CSP in tree format. **./Vendor/MSFT/DiagnosticLog** The root node for the DiagnosticLog CSP. -Rest of the nodes in this CSP are described within their respective feature area sections. +Rest of the nodes in the DiagnosticLog CSP are described within their respective feature area sections. ## DiagnosticArchive area @@ -112,45 +111,45 @@ Assuming a case where the management server's customer (such as an IT admin) is - Expected input value: The full command line including path and any arguments, such as `%windir%\\system32\\ipconfig.exe /all`. - Output format: Console text output from the command is captured in a text file and included in the overall output archive. For commands which may generate file output rather than console output, a subsequent FolderFiles directive would be used to capture that output. The example XML above demonstrates this pattern with mdmdiagnosticstool.exe's -out parameter. - Privacy guardrails: To enable diagnostic data capture while reducing the risk of an IT admin inadventantly capturing user-generated documents, only the following commands are allowed: - - %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 + - %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** - Captures log files from a given path (without recursion). - Expected input value: File path with or without wildcards, such as "%windir%\\System32", or "%programfiles%\\*.log". - Privacy guardrails: To enable diagnostic log capture while reducing the risk of an IT admin inadventently capturing user-generated documents, only paths under the following roots are allowed: - - %PROGRAMFILES% - - %PROGRAMDATA% - - %PUBLIC% - - %WINDIR% - - %TEMP% - - %TMP% + - %PROGRAMFILES% + - %PROGRAMDATA% + - %PUBLIC% + - %WINDIR% + - %TEMP% + - %TMP% - Additionally, only files with the following extensions are captured: - - .log - - .txt - - .dmp - - .cab - - .zip - - .xml - - .html - - .evtx - - .etl + - .log + - .txt + - .dmp + - .cab + - .zip + - .xml + - .html + - .evtx + - .etl **DiagnosticArchive/ArchiveResults** Added in version 1.4 of the CSP in Windows 10, version 1903. This policy setting displays the results of the last archive run. From eb31b468d1e829d7333e3b0f02d8596d8a383e89 Mon Sep 17 00:00:00 2001 From: ManikaDhiman Date: Tue, 19 Nov 2019 12:08:14 -0800 Subject: [PATCH 04/24] Minor formatting updates --- windows/client-management/mdm/diagnosticlog-csp.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/windows/client-management/mdm/diagnosticlog-csp.md b/windows/client-management/mdm/diagnosticlog-csp.md index 41c60a43a2..e399411ba9 100644 --- a/windows/client-management/mdm/diagnosticlog-csp.md +++ b/windows/client-management/mdm/diagnosticlog-csp.md @@ -20,7 +20,7 @@ The DiagnosticLog configuration service provider (CSP) provides the following fe - [DeviceStateData area](#devicestatedata-area). Provide additional device information. - [FileDownload area](#filedownload-area). Pull trace and state data directly from the device. -The following are the links to the DDFs of the DiagnosticLog CSP: +The following are the links to different versions of the DiagnosticLog CSP DDF files: - [DiagnosticLog CSP version 1.4](diagnosticlog-ddf.md#version-1-4) - [DiagnosticLog CSP version 1.3](diagnosticlog-ddf.md#version-1-3) - [DiagnosticLog CSP version 1.2](diagnosticlog-ddf.md#version-1-2) @@ -747,7 +747,7 @@ To gather diagnostics using this CSP: 3. Indicate one or more target ETW providers by supplying its *ProviderGUID* to the Add operation of EtwLog/Collectors/*CollectorName*/Providers/*ProviderGUID*. 4. (Optional) Set logging and log file parameters using the following options: - TraceLevel - - Keywords + - Keywords 5. Start logging using **TraceControl** EXECUTE command “START”. 6. Perform actions on the target device that will generate activity in the log files. 7. Stop logging using **TraceControl** EXECUTE command “STOP”. @@ -1066,7 +1066,8 @@ The data type is a boolean. Supported operations are Get and Replace. This change will be effective during active trace session. -The following table lists the possible values: +The following table lists the possible values: + | Value | Description | |-------|--------------------| | TRUE | Provider is enabled in the trace session. This is the default. | From 45e4ccca970a84ae0879e4b5eaaa742600f85a6e Mon Sep 17 00:00:00 2001 From: ManikaDhiman Date: Tue, 19 Nov 2019 12:20:12 -0800 Subject: [PATCH 05/24] More updates --- windows/client-management/mdm/diagnosticlog-csp.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/windows/client-management/mdm/diagnosticlog-csp.md b/windows/client-management/mdm/diagnosticlog-csp.md index e399411ba9..f88699d768 100644 --- a/windows/client-management/mdm/diagnosticlog-csp.md +++ b/windows/client-management/mdm/diagnosticlog-csp.md @@ -920,7 +920,8 @@ The supported operation is Get. **EtwLog/Collectors/*CollectorName*/Providers/***ProviderGUID* Dynamic nodes to represent active provider configuration per provider GUID. -> **Note**  Microsoft-WindowsPhone-Enterprise-Diagnostics-Provider (GUID - 3da494e4-0fe2-415C-b895-fb5265c5c83b) has the required debug resource files built into Windows OS, which will allow the logs files to be decoded on the remote machine. Any other logs may not have the debug resources required to decode. +> [!Note] +> Microsoft-WindowsPhone-Enterprise-Diagnostics-Provider (GUID - 3da494e4-0fe2-415C-b895-fb5265c5c83b) has the required debug resource files built into Windows OS, which will allow the logs files to be decoded on the remote machine. Any other logs may not have the debug resources required to decode. Supported operations are Add, Delete, and Get. From 829a0ff04d3055ea68ac3634bd7cdc1080fa13dc Mon Sep 17 00:00:00 2001 From: ManikaDhiman Date: Tue, 19 Nov 2019 12:31:20 -0800 Subject: [PATCH 06/24] Fixed typos --- windows/client-management/mdm/diagnosticlog-csp.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/client-management/mdm/diagnosticlog-csp.md b/windows/client-management/mdm/diagnosticlog-csp.md index f88699d768..ad98907329 100644 --- a/windows/client-management/mdm/diagnosticlog-csp.md +++ b/windows/client-management/mdm/diagnosticlog-csp.md @@ -110,7 +110,7 @@ Assuming a case where the management server's customer (such as an IT admin) is - This directive type allows the execution of specific commands such as ipconfig.exe. Note that DiagnosticArchive and the Commands directives are not a general-purpose scripting platform. These commands are allowed in the DiagnosticArchive context to handle cases where critical device information may not be available through existing log files. - Expected input value: The full command line including path and any arguments, such as `%windir%\\system32\\ipconfig.exe /all`. - Output format: Console text output from the command is captured in a text file and included in the overall output archive. For commands which may generate file output rather than console output, a subsequent FolderFiles directive would be used to capture that output. The example XML above demonstrates this pattern with mdmdiagnosticstool.exe's -out parameter. - - Privacy guardrails: To enable diagnostic data capture while reducing the risk of an IT admin inadventantly capturing user-generated documents, only the following commands are allowed: + - Privacy guardrails: To enable diagnostic data capture while reducing the risk of an IT admin inadvertently capturing user-generated documents, only the following commands are allowed: - %windir%\\system32\\certutil.exe - %windir%\\system32\\dxdiag.exe - %windir%\\system32\\gpresult.exe @@ -133,7 +133,7 @@ Assuming a case where the management server's customer (such as an IT admin) is - **FoldersFiles** - Captures log files from a given path (without recursion). - Expected input value: File path with or without wildcards, such as "%windir%\\System32", or "%programfiles%\\*.log". - - Privacy guardrails: To enable diagnostic log capture while reducing the risk of an IT admin inadventently capturing user-generated documents, only paths under the following roots are allowed: + - Privacy guardrails: To enable diagnostic log capture while reducing the risk of an IT admin inadvertently capturing user-generated documents, only paths under the following roots are allowed: - %PROGRAMFILES% - %PROGRAMDATA% - %PUBLIC% @@ -1298,7 +1298,7 @@ The FileDownload feature of the DiagnosticLog CSP enables a management server to Both the FileDownload and DiagnosticArchive features can be used to get data from the device to the management server, but they are optimized for different workflows. - FileDownload enables the management server to directly pull byte-level trace data from the managed device. The data transfer takes place through the existing OMA-DM/SyncML context. It is typically used together with the EtwLogs feature as part of an advanced monitoring or diagnostic flow. FileDownlod requires granular orchestration by the management server, but avoids the need for dedicated cloud storage. -- DiagnosticArchive allows the management server to give the CSP a full set of instructions as single command. Based on those instructions the CSP orchestrates the work client-side to package the requested diagnostic files into a zip archive and upload that archive to cloud storage. The data transfer happens outsite of the OMA-DM session, via an HTTP PUT. +- DiagnosticArchive allows the management server to give the CSP a full set of instructions as single command. Based on those instructions the CSP orchestrates the work client-side to package the requested diagnostic files into a zip archive and upload that archive to cloud storage. The data transfer happens outside of the OMA-DM session, via an HTTP PUT. The following section describes the nodes for the FileDownload functionality. From 0102f780ac17ca4696df73f5595615748aa9d687 Mon Sep 17 00:00:00 2001 From: ManikaDhiman Date: Tue, 19 Nov 2019 13:06:51 -0800 Subject: [PATCH 07/24] Incorporated dev feedback --- windows/client-management/mdm/diagnosticlog-csp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/client-management/mdm/diagnosticlog-csp.md b/windows/client-management/mdm/diagnosticlog-csp.md index ad98907329..2e5300fe0d 100644 --- a/windows/client-management/mdm/diagnosticlog-csp.md +++ b/windows/client-management/mdm/diagnosticlog-csp.md @@ -99,7 +99,7 @@ Assuming a case where the management server's customer (such as an IT admin) is - Exports all of the key names and values under a given path (recursive). - Expected input value: Registry path such as "HKLM\Software\Policies". - Output format: Creates a .reg file, similar to the output of reg.exe EXPORT command. - - Privacy guardrails: To enable diagnostic log capture while reducing the risk of an IT admin inadvertently capturing user-generated documents, registry paths are restricted to those under HKLM and HKCU. + - Privacy guardrails: To enable diagnostic log capture while reducing the risk of an IT admin inadvertently capturing user-generated documents, registry paths are restricted to those under HKLM and HKCR. - **Events** - Exports all events from the named Windows event log. From 94425698bb671b15454400b455e63722ce8353d5 Mon Sep 17 00:00:00 2001 From: ManikaDhiman Date: Tue, 19 Nov 2019 13:15:46 -0800 Subject: [PATCH 08/24] Updated documentation history --- .../mdm/new-in-windows-mdm-enrollment-management.md | 1 + 1 file changed, 1 insertion(+) diff --git a/windows/client-management/mdm/new-in-windows-mdm-enrollment-management.md b/windows/client-management/mdm/new-in-windows-mdm-enrollment-management.md index eacb043303..15f103ba47 100644 --- a/windows/client-management/mdm/new-in-windows-mdm-enrollment-management.md +++ b/windows/client-management/mdm/new-in-windows-mdm-enrollment-management.md @@ -1940,6 +1940,7 @@ How do I turn if off? | The service can be stopped from the "Services" console o |New or updated topic | Description| |--- | ---| |[Policy CSP - DeliveryOptimization](policy-csp-deliveryoptimization.md)|Added option 5 in the supported values list for DeliveryOptimization/DOGroupIdSource.| +|[DiagnosticLog CSP](diagnosticlog-csp.md)|Added substantial updates to this CSP doc.| ### October 2019 From 1930d2025307316edef82b6db56ceb1ba8e36753 Mon Sep 17 00:00:00 2001 From: John Kaiser <35939694+CoveMiner@users.noreply.github.com> Date: Tue, 19 Nov 2019 14:49:53 -0800 Subject: [PATCH 09/24] Update surface-hub-2s-techspecs.md --- devices/surface-hub/surface-hub-2s-techspecs.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/devices/surface-hub/surface-hub-2s-techspecs.md b/devices/surface-hub/surface-hub-2s-techspecs.md index 5f898a3fb6..60718ec709 100644 --- a/devices/surface-hub/surface-hub-2s-techspecs.md +++ b/devices/surface-hub/surface-hub-2s-techspecs.md @@ -9,7 +9,7 @@ manager: laurawi ms.author: greglin audience: Admin ms.topic: article -ms.date: 06/20/2019 +ms.date: 11/19/2019 ms.localizationpriority: Medium --- @@ -27,10 +27,10 @@ ms.localizationpriority: Medium |**Graphics**| Intel UHD Graphics 620 | |**Wireless**| Wi-Fi 5 (IEEE 802.11 a/b/g/n/ac compatible) Bluetooth Wireless 4.1 technology
Miracast display | |**Connections**| USB-A
Mini-DisplayPort 1.2 video output
RJ45 gigabit Ethernet (1000/100/10 BaseT)
HDMI video input (HDMI 2.0, HDCP 2.2 /1.4)
USB-C with DisplayPort input
Four USB-C (on display) | -|**Sensors**| Doppler occupancy sensor
Accelerometer
Gyroscope | +|**Sensors**| Doppler occupancy 2
Accelerometer
Gyroscope | |**Audio/Video**| Full-range, front facing 3-way stereo speakers
Full band 8-element MEMS microphone array
Microsoft Surface Hub 2 Camera, 4K, USB-C connection, 90-degree HFOV | |**Pen**| Microsoft Surface Hub 2 Pen (active) | -|**Software**| Windows 10
Microsoft Teams for Surface Hub 2
Skype for Business
Microsoft Whiteboard
Microsoft Office (Mobile)
Microsoft Power BI 2 | +|**Software**| Windows 10
Microsoft Teams for Surface Hub 3
Skype for Business
Microsoft Whiteboard
Microsoft Office (Mobile)
Microsoft Power BI 2 | |**Exterior**| Casing: Precision machined aluminum with mineral-composite resin
Color: Platinum
Physical Buttons: Power, Volume, Source | |**What’s in the box**| One Surface Hub 2S
One Surface Hub 2 Pen
One Surface Hub 2 Camera
2.5 m AC Power Cable
Quick Start Guide | |**Warranty**| 1-year limited hardware warranty | @@ -41,4 +41,5 @@ ms.localizationpriority: Medium |**Input Power, standby**| 5 W max | > [!NOTE] -> 1 System software uses significant storage space. Available storage is subject to change based on system software updates and apps usage. 1 GB= 1 billion bytes. See Surface.com/Storage for more details.
2 Software license required for some features. Sold separately.
+> 1 System software uses significant storage space. Available storage is subject to change based on system software updates and apps usage. 1 GB= 1 billion bytes. See Surface.com/Storage for more details.
2 Doppler sensor not available in Hong Kong due to local federal government restrictions. +
3 Software license required for some features. Sold separately.
From 011d1d36b516932c4eb41eb3121972e7de0c959a Mon Sep 17 00:00:00 2001 From: Dulce Montemayor Date: Tue, 19 Nov 2019 16:23:43 -0800 Subject: [PATCH 10/24] Added RBAC ref --- .../microsoft-defender-atp/next-gen-threat-and-vuln-mgt.md | 1 + 1 file changed, 1 insertion(+) diff --git a/windows/security/threat-protection/microsoft-defender-atp/next-gen-threat-and-vuln-mgt.md b/windows/security/threat-protection/microsoft-defender-atp/next-gen-threat-and-vuln-mgt.md index eecae45f38..4570897836 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/next-gen-threat-and-vuln-mgt.md +++ b/windows/security/threat-protection/microsoft-defender-atp/next-gen-threat-and-vuln-mgt.md @@ -66,3 +66,4 @@ Microsoft Defender ATP’s Threat & Vulnerability Management allows security adm - [Software inventory](tvm-software-inventory.md) - [Weaknesses](tvm-weaknesses.md) - [Scenarios](threat-and-vuln-mgt-scenarios.md) +- [Configure data access for Threat & Vulnerability Management roles](https://docs.microsoft.com/windows/security/threat-protection/microsoft-defender-atp/user-roles#create-roles-and-assign-the-role-to-an-azure-active-directory-group) From 35c3e03321870560ddbdabff4122f357666f061c Mon Sep 17 00:00:00 2001 From: Dulce Montemayor Date: Tue, 19 Nov 2019 16:25:05 -0800 Subject: [PATCH 11/24] Added CTA --- .../microsoft-defender-atp/next-gen-threat-and-vuln-mgt.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/windows/security/threat-protection/microsoft-defender-atp/next-gen-threat-and-vuln-mgt.md b/windows/security/threat-protection/microsoft-defender-atp/next-gen-threat-and-vuln-mgt.md index 4570897836..f71eb57ada 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/next-gen-threat-and-vuln-mgt.md +++ b/windows/security/threat-protection/microsoft-defender-atp/next-gen-threat-and-vuln-mgt.md @@ -21,6 +21,8 @@ ms.topic: conceptual **Applies to:** - [Microsoft Defender Advanced Threat Protection (Microsoft Defender ATP)](https://go.microsoft.com/fwlink/p/?linkid=2069559) +>Want to experience Microsoft Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/microsoft-365/windows/microsoft-defender-atp?ocid=docs-wdatp-portaloverview-abovefoldlink) + Effectively identifying, assessing, and remediating endpoint weaknesses is pivotal in running a healthy security program and reducing organizational risk. Threat & Vulnerability Management serves as an infrastructure for reducing organizational exposure, hardening endpoint surface area, and increasing organizational resilience. It helps organizations discover vulnerabilities and misconfigurations in real-time, based on sensors, without the need of agents or periodic scans. It prioritizes vulnerabilities based on the threat landscape, detections in your organization, sensitive information on vulnerable devices, and business context. From 2c36af58e93ab1b15295665c125d793375824104 Mon Sep 17 00:00:00 2001 From: Dulce Montemayor Date: Tue, 19 Nov 2019 16:26:28 -0800 Subject: [PATCH 12/24] Added RBAC ref --- .../microsoft-defender-atp/tvm-exposure-score.md | 1 + 1 file changed, 1 insertion(+) diff --git a/windows/security/threat-protection/microsoft-defender-atp/tvm-exposure-score.md b/windows/security/threat-protection/microsoft-defender-atp/tvm-exposure-score.md index fca24b4b1f..11d335dbd3 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/tvm-exposure-score.md +++ b/windows/security/threat-protection/microsoft-defender-atp/tvm-exposure-score.md @@ -46,3 +46,4 @@ Reduce the exposure score by addressing what needs to be remediated based on the - [Software inventory](tvm-software-inventory.md) - [Weaknesses](tvm-weaknesses.md) - [Scenarios](threat-and-vuln-mgt-scenarios.md) +- [Configure data access for Threat & Vulnerability Management roles](https://docs.microsoft.com/windows/security/threat-protection/microsoft-defender-atp/user-roles#create-roles-and-assign-the-role-to-an-azure-active-directory-group) From 7b2ed6d48504f872ca9f7b6459f4f420d19ebd66 Mon Sep 17 00:00:00 2001 From: Dulce Montemayor Date: Tue, 19 Nov 2019 16:27:03 -0800 Subject: [PATCH 13/24] Added RBAC ref --- .../microsoft-defender-atp/tvm-dashboard-insights.md | 1 + 1 file changed, 1 insertion(+) diff --git a/windows/security/threat-protection/microsoft-defender-atp/tvm-dashboard-insights.md b/windows/security/threat-protection/microsoft-defender-atp/tvm-dashboard-insights.md index 668b2a1cb4..f4a7c9d46e 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/tvm-dashboard-insights.md +++ b/windows/security/threat-protection/microsoft-defender-atp/tvm-dashboard-insights.md @@ -77,3 +77,4 @@ See [Microsoft Defender ATP icons](https://docs.microsoft.com/windows/security/t - [Software inventory](tvm-software-inventory.md) - [Weaknesses](tvm-weaknesses.md) - [Scenarios](threat-and-vuln-mgt-scenarios.md) +- [Configure data access for Threat & Vulnerability Management roles](https://docs.microsoft.com/windows/security/threat-protection/microsoft-defender-atp/user-roles#create-roles-and-assign-the-role-to-an-azure-active-directory-group) From 1a25a7da40328d9246f44b03f4c32e815477a891 Mon Sep 17 00:00:00 2001 From: Dulce Montemayor Date: Tue, 19 Nov 2019 16:27:46 -0800 Subject: [PATCH 14/24] Added RBAC ref --- .../microsoft-defender-atp/configuration-score.md | 1 + 1 file changed, 1 insertion(+) diff --git a/windows/security/threat-protection/microsoft-defender-atp/configuration-score.md b/windows/security/threat-protection/microsoft-defender-atp/configuration-score.md index 6a076bfb65..28089db697 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/configuration-score.md +++ b/windows/security/threat-protection/microsoft-defender-atp/configuration-score.md @@ -72,3 +72,4 @@ See how you can [improve your security configuration](https://docs.microsoft.com - [Software inventory](tvm-software-inventory.md) - [Weaknesses](tvm-weaknesses.md) - [Scenarios](threat-and-vuln-mgt-scenarios.md) +- [Configure data access for Threat & Vulnerability Management roles](https://docs.microsoft.com/windows/security/threat-protection/microsoft-defender-atp/user-roles#create-roles-and-assign-the-role-to-an-azure-active-directory-group) From fc41bdb71d7a6857a0cc05ecafc4e774d4545970 Mon Sep 17 00:00:00 2001 From: Dulce Montemayor Date: Tue, 19 Nov 2019 16:28:39 -0800 Subject: [PATCH 15/24] Added RBAC ref --- .../microsoft-defender-atp/tvm-security-recommendation.md | 1 + 1 file changed, 1 insertion(+) diff --git a/windows/security/threat-protection/microsoft-defender-atp/tvm-security-recommendation.md b/windows/security/threat-protection/microsoft-defender-atp/tvm-security-recommendation.md index ee75d061da..1fd121c8d1 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/tvm-security-recommendation.md +++ b/windows/security/threat-protection/microsoft-defender-atp/tvm-security-recommendation.md @@ -88,3 +88,4 @@ You can report a false positive when you see any vague, inaccurate, incomplete, - [Software inventory](tvm-software-inventory.md) - [Weaknesses](tvm-weaknesses.md) - [Scenarios](threat-and-vuln-mgt-scenarios.md) +- [Configure data access for Threat & Vulnerability Management roles](https://docs.microsoft.com/windows/security/threat-protection/microsoft-defender-atp/user-roles#create-roles-and-assign-the-role-to-an-azure-active-directory-group) From bb9f8c52679d8d8bf3d1ef95a0339f0b69e8f2d8 Mon Sep 17 00:00:00 2001 From: Dulce Montemayor Date: Tue, 19 Nov 2019 16:29:28 -0800 Subject: [PATCH 16/24] Added CTA and pre-rel info --- .../microsoft-defender-atp/tvm-security-recommendation.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/windows/security/threat-protection/microsoft-defender-atp/tvm-security-recommendation.md b/windows/security/threat-protection/microsoft-defender-atp/tvm-security-recommendation.md index 1fd121c8d1..388cc4aba3 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/tvm-security-recommendation.md +++ b/windows/security/threat-protection/microsoft-defender-atp/tvm-security-recommendation.md @@ -21,6 +21,10 @@ ms.date: 04/11/2019 **Applies to:** - [Microsoft Defender Advanced Threat Protection (Microsoft Defender ATP)](https://go.microsoft.com/fwlink/p/?linkid=2069559) +>Want to experience Microsoft Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/microsoft-365/windows/microsoft-defender-atp?ocid=docs-wdatp-portaloverview-abovefoldlink) + +[!include[Prerelease information](prerelease.md)] + The cybersecurity weaknesses identified in your organization are mapped to actionable security recommendations and prioritized by their impact on the security recommendation list. Prioritized recommendation helps shorten the mean time to mitigate or remediate vulnerabilities and drive compliance. Each security recommendation includes an actionable remediation recommendation which can be pushed into the IT task queue through a built-in integration with Microsoft Intune and Microsoft System Center Configuration Manager (SCCM). It is also dynamic in the sense that when the threat landscape changes, the recommendation also changes as it continuously collect information from your environment. From a941ba2a707f8244c00a3717b52af388061ae18f Mon Sep 17 00:00:00 2001 From: Dulce Montemayor Date: Tue, 19 Nov 2019 16:30:50 -0800 Subject: [PATCH 17/24] Added RBAC ref --- .../threat-protection/microsoft-defender-atp/tvm-remediation.md | 1 + 1 file changed, 1 insertion(+) diff --git a/windows/security/threat-protection/microsoft-defender-atp/tvm-remediation.md b/windows/security/threat-protection/microsoft-defender-atp/tvm-remediation.md index 99b1ae6759..6a430506b7 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/tvm-remediation.md +++ b/windows/security/threat-protection/microsoft-defender-atp/tvm-remediation.md @@ -113,5 +113,6 @@ The exception impact shows on both the Security recommendations page column and - [Software inventory](tvm-software-inventory.md) - [Weaknesses](tvm-weaknesses.md) - [Scenarios](threat-and-vuln-mgt-scenarios.md) +- [Configure data access for Threat & Vulnerability Management roles](https://docs.microsoft.com/windows/security/threat-protection/microsoft-defender-atp/user-roles#create-roles-and-assign-the-role-to-an-azure-active-directory-group) From afb1b650b232e25ef5fd60ffdd570f468f4c8239 Mon Sep 17 00:00:00 2001 From: Dulce Montemayor Date: Tue, 19 Nov 2019 16:31:16 -0800 Subject: [PATCH 18/24] Added CTA --- .../threat-protection/microsoft-defender-atp/tvm-remediation.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/windows/security/threat-protection/microsoft-defender-atp/tvm-remediation.md b/windows/security/threat-protection/microsoft-defender-atp/tvm-remediation.md index 6a430506b7..cc1eb7285f 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/tvm-remediation.md +++ b/windows/security/threat-protection/microsoft-defender-atp/tvm-remediation.md @@ -21,6 +21,8 @@ ms.date: 04/11/2019 **Applies to:** - [Microsoft Defender Advanced Threat Protection (Microsoft Defender ATP)](https://go.microsoft.com/fwlink/p/?linkid=2069559) +>Want to experience Microsoft Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/microsoft-365/windows/microsoft-defender-atp?ocid=docs-wdatp-portaloverview-abovefoldlink) + >[!NOTE] >To use this capability, enable your Microsoft Intune connections. Navigate to **Settings** > **General** > **Advanced features**. Scroll down and look for **Microsoft Intune connection**. By default, the toggle is turned off. Turn your **Microsoft Intune connection** toggle on. From 1f51dc4f473197b8f84c51adc0223ee42a54c1a2 Mon Sep 17 00:00:00 2001 From: Dulce Montemayor Date: Tue, 19 Nov 2019 16:32:04 -0800 Subject: [PATCH 19/24] Added CTA and Pre-rel info --- .../microsoft-defender-atp/tvm-software-inventory.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/windows/security/threat-protection/microsoft-defender-atp/tvm-software-inventory.md b/windows/security/threat-protection/microsoft-defender-atp/tvm-software-inventory.md index e1d39cdf5d..147226f8c9 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/tvm-software-inventory.md +++ b/windows/security/threat-protection/microsoft-defender-atp/tvm-software-inventory.md @@ -21,6 +21,10 @@ ms.date: 04/11/2019 **Applies to:** - [Microsoft Defender Advanced Threat Protection (Microsoft Defender ATP)](https://go.microsoft.com/fwlink/p/?linkid=2069559) +>Want to experience Microsoft Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/microsoft-365/windows/microsoft-defender-atp?ocid=docs-wdatp-portaloverview-abovefoldlink) + +[!include[Prerelease information](prerelease.md)] + Microsoft Defender ATP Threat & Vulnerability management's discovery capability shows in the **Software inventory** page. The software inventory includes the name of the product or vendor, the latest version it is in, and the number of weaknesses and vulnerabilities detected with it. ## Navigate through your software inventory From 26a20c67e318affc094d50ab514175494bc5e9a2 Mon Sep 17 00:00:00 2001 From: Dulce Montemayor Date: Tue, 19 Nov 2019 16:32:25 -0800 Subject: [PATCH 20/24] Added RBAC ref --- .../microsoft-defender-atp/tvm-software-inventory.md | 1 + 1 file changed, 1 insertion(+) diff --git a/windows/security/threat-protection/microsoft-defender-atp/tvm-software-inventory.md b/windows/security/threat-protection/microsoft-defender-atp/tvm-software-inventory.md index 147226f8c9..d7927da6ce 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/tvm-software-inventory.md +++ b/windows/security/threat-protection/microsoft-defender-atp/tvm-software-inventory.md @@ -70,3 +70,4 @@ You can report a false positive when you see any vague, inaccurate version, inco - [Remediation and exception](tvm-remediation.md) - [Weaknesses](tvm-weaknesses.md) - [Scenarios](threat-and-vuln-mgt-scenarios.md) +- [Configure data access for Threat & Vulnerability Management roles](https://docs.microsoft.com/windows/security/threat-protection/microsoft-defender-atp/user-roles#create-roles-and-assign-the-role-to-an-azure-active-directory-group) From a81c4ef05935237a4d7fece28c125e445b4a88ba Mon Sep 17 00:00:00 2001 From: Dulce Montemayor Date: Tue, 19 Nov 2019 16:33:29 -0800 Subject: [PATCH 21/24] Added CTA and pre-rel info --- .../microsoft-defender-atp/tvm-weaknesses.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/windows/security/threat-protection/microsoft-defender-atp/tvm-weaknesses.md b/windows/security/threat-protection/microsoft-defender-atp/tvm-weaknesses.md index 7eefec6595..88b77f87fc 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/tvm-weaknesses.md +++ b/windows/security/threat-protection/microsoft-defender-atp/tvm-weaknesses.md @@ -19,7 +19,9 @@ ms.date: 10/31/2019 --- # Weaknesses **Applies to:** -- [Microsoft Defender Advanced Threat Protection (Microsoft Defender ATP)](https://go.microsoft.com/fwlink/p/?linkid=2069559 +- [Microsoft Defender Advanced Threat Protection (Microsoft Defender ATP)](https://go.microsoft.com/fwlink/p/?linkid=2069559) + +>Want to experience Microsoft Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/microsoft-365/windows/microsoft-defender-atp?ocid=docs-wdatp-portaloverview-abovefoldlink) [!include[Prerelease information](prerelease.md)] From 6339020206909d31e9de31c0195b8a2f491d73e5 Mon Sep 17 00:00:00 2001 From: Dulce Montemayor Date: Tue, 19 Nov 2019 16:34:04 -0800 Subject: [PATCH 22/24] Added RBAC ref --- .../threat-protection/microsoft-defender-atp/tvm-weaknesses.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/windows/security/threat-protection/microsoft-defender-atp/tvm-weaknesses.md b/windows/security/threat-protection/microsoft-defender-atp/tvm-weaknesses.md index 88b77f87fc..60ee2c044e 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/tvm-weaknesses.md +++ b/windows/security/threat-protection/microsoft-defender-atp/tvm-weaknesses.md @@ -35,7 +35,7 @@ The **Weaknesses** page lists down the vulnerabilities found in the infected sof >- RS5 customers | [KB 4516077](https://support.microsoft.com/help/4516077/windows-10-update-kb4516077) >- RS4 customers | [KB 4516045](https://support.microsoft.com/help/4516045/windows-10-update-kb4516045) >- RS3 customers | [KB 4516071](https://support.microsoft.com/help/4516071/windows-10-update-kb4516071) ->

Downloading the above-mentioned security updates will be mandatory starting Patch Tuesday, October 8, 2019. + ## Navigate through your organization's weaknesses page You can access the list of vulnerabilities in a few places in the portal: @@ -131,3 +131,4 @@ You can report a false positive when you see any vague, inaccurate, missing, or - [Remediation and exception](tvm-remediation.md) - [Software inventory](tvm-software-inventory.md) - [Scenarios](threat-and-vuln-mgt-scenarios.md) +- [Configure data access for Threat & Vulnerability Management roles](https://docs.microsoft.com/windows/security/threat-protection/microsoft-defender-atp/user-roles#create-roles-and-assign-the-role-to-an-azure-active-directory-group) From 5cee29b61258ebd804467f8a00336860ee8cafea Mon Sep 17 00:00:00 2001 From: Dulce Montemayor Date: Tue, 19 Nov 2019 16:34:50 -0800 Subject: [PATCH 23/24] Added CTA and pre-rel info --- .../microsoft-defender-atp/threat-and-vuln-mgt-scenarios.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/windows/security/threat-protection/microsoft-defender-atp/threat-and-vuln-mgt-scenarios.md b/windows/security/threat-protection/microsoft-defender-atp/threat-and-vuln-mgt-scenarios.md index df00947476..a1c7944f22 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/threat-and-vuln-mgt-scenarios.md +++ b/windows/security/threat-protection/microsoft-defender-atp/threat-and-vuln-mgt-scenarios.md @@ -21,6 +21,10 @@ ms.topic: article **Applies to:** - [Microsoft Defender Advanced Threat Protection (Microsoft Defender ATP)](https://go.microsoft.com/fwlink/p/?linkid=2069559) +>Want to experience Microsoft Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/microsoft-365/windows/microsoft-defender-atp?ocid=docs-wdatp-portaloverview-abovefoldlink) + +[!include[Prerelease information](prerelease.md)] + ## Before you begin Ensure that your machines: - Are onboarded to Microsoft Defender Advanced Threat Protection From cf5ed222e6962dec5861aaaa09d953aac3b02595 Mon Sep 17 00:00:00 2001 From: Dulce Montemayor Date: Tue, 19 Nov 2019 16:35:18 -0800 Subject: [PATCH 24/24] Added RBAC ref --- .../microsoft-defender-atp/threat-and-vuln-mgt-scenarios.md | 1 + 1 file changed, 1 insertion(+) diff --git a/windows/security/threat-protection/microsoft-defender-atp/threat-and-vuln-mgt-scenarios.md b/windows/security/threat-protection/microsoft-defender-atp/threat-and-vuln-mgt-scenarios.md index a1c7944f22..45c0d61c58 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/threat-and-vuln-mgt-scenarios.md +++ b/windows/security/threat-protection/microsoft-defender-atp/threat-and-vuln-mgt-scenarios.md @@ -193,3 +193,4 @@ ComputerName=any(ComputerName) by MachineId, AlertId - [Weaknesses](tvm-weaknesses.md) - [Advanced hunting overview](overview-hunting.md) - [All Advanced hunting tables](advanced-hunting-reference.md) +- [Configure data access for Threat & Vulnerability Management roles](https://docs.microsoft.com/windows/security/threat-protection/microsoft-defender-atp/user-roles#create-roles-and-assign-the-role-to-an-azure-active-directory-group)