--- title: Win32CompatibilityAppraiser CSP description: Learn how the Win32CompatibilityAppraiser configuration service provider enables the IT admin to query the current status of the Appraiser and UTC telemetry health. ms.author: dansimp ms.topic: article ms.prod: w10 ms.technology: windows author: manikadhiman ms.date: 07/19/2018 ms.reviewer: manager: dansimp --- # Win32CompatibilityAppraiser CSP > [!WARNING] > Some information relates to prereleased product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. The Win32CompatibilityAppraiser configuration service provider enables the IT admin to query the current status of the Appraiser and UTC telemetry health. This CSP was added in Windows 10, version 1809. The following shows the Win32CompatibilityAppraiser configuration service provider in tree format. ``` ./Device/Vendor/MSFT Win32CompatibilityAppraiser ----CompatibilityAppraiser --------AppraiserConfigurationDiagnosis ------------CommercialId ------------CommercialIdSetAndValid ------------AllTargetOsVersionsRequested ------------OsSkuIsValidForAppraiser ------------AppraiserCodeAndDataVersionsAboveMinimum ------------RebootPending --------AppraiserRunResultReport ----UniversalTelemetryClient --------UtcConfigurationDiagnosis ------------TelemetryOptIn ------------CommercialDataOptIn ------------DiagTrackServiceRunning ------------MsaServiceEnabled ------------InternetExplorerTelemetryOptIn --------UtcConnectionReport ----WindowsErrorReporting --------WerConfigurationDiagnosis ------------WerTelemetryOptIn ------------MostRestrictiveSetting --------WerConnectionReport ``` **./Vendor/MSFT/Win32CompatibilityAppraiser** The root node for the Win32CompatibilityAppraiser configuration service provider. **CompatibilityAppraiser** This represents the state of the Compatibility Appraiser. **CompatibilityAppraiser/AppraiserConfigurationDiagnosis** This represents various settings that affect whether the Compatibility Appraiser can collect and upload compatibility data. **CompatibilityAppraiser/AppraiserConfigurationDiagnosis/CommercialId** The unique identifier specifying what organization owns this device. This helps correlate telemetry after it has been uploaded. Value type is string. Supported operation is Get. **CompatibilityAppraiser/AppraiserConfigurationDiagnosis/CommercialIdSetAndValid** A boolean value representing whether the CommercialId is set to a valid value. Valid values are strings in the form of GUIDs, with no surrounding braces. Value type is bool. Supported operation is Get. **CompatibilityAppraiser/AppraiserConfigurationDiagnosis/AllTargetOsVersionsRequested** A boolean value representing whether the flag to request that the Compatibility Appraiser check compatibility with all possible Windows 10 versions has been set. By default, versions 1507 and 1511, and any version equal to or less than the current version, are not checked. Value type is bool. Supported operation is Get. **CompatibilityAppraiser/AppraiserConfigurationDiagnosis/OsSkuIsValidForAppraiser** A boolean value indicating whether the current Windows SKU is able to run the Compatibility Appraiser. Value type is bool. Supported operation is Get. **CompatibilityAppraiser/AppraiserConfigurationDiagnosis/AppraiserCodeAndDataVersionsAboveMinimum** An integer value representing whether the installed versions of the Compatibility Appraiser code and data meet the minimum requirement to provide useful data. The values are: - 0 == Neither the code nor data is of a sufficient version - 1 == The code version is insufficient but the data version is sufficient - 2 == The code version is sufficient but the data version is insufficient - 3 == Both the code and data are of a sufficient version Value type is integer. Supported operation is Get. **CompatibilityAppraiser/AppraiserConfigurationDiagnosis/RebootPending** A boolean value representing whether a reboot is pending on this computer. A newly-installed version of the Compatibility Appraiser may require a reboot before useful data is able to be sent. Value type is bool. Supported operation is Get. **CompatibilityAppraiser/AppraiserRunResultReport** This provides an XML representation of the last run of Appraiser and the last runs of Appraiser of certain types or configurations. For the report XML schema see [Appraiser run result report](#appraiser-run-result-report). **UniversalTelemetryClient** This represents the state of the Universal Telemetry Client, or DiagTrack service. **UniversalTelemetryClient/UtcConfigurationDiagnosis** This represents various settings that affect whether the Universal Telemetry Client can upload data and how much data it can upload. **UniversalTelemetryClient/UtcConfigurationDiagnosis/TelemetryOptIn** An integer value representing what level of telemetry will be uploaded. Value type is integer. Supported operation is Get. The values are: - 0 == Security data will be sent - 1 == Basic telemetry will be sent - 2 == Enhanced telemetry will be sent - 3 == Full telemetry will be sent **UniversalTelemetryClient/UtcConfigurationDiagnosis/CommercialDataOptIn** An integer value representing whether the CommercialDataOptIn setting is allowing any data to upload. Value type is integer. Supported operation is Get. The values are: - 0 == Setting is disabled - 1 == Setting is enabled - 2 == Setting is not applicable to this version of Windows **UniversalTelemetryClient/UtcConfigurationDiagnosis/DiagTrackServiceRunning** A boolean value representing whether the DiagTrack service is running. This service must be running in order to upload UTC data. Value type is bool. Supported operation is Get. **UniversalTelemetryClient/UtcConfigurationDiagnosis/MsaServiceEnabled** A boolean value representing whether the MSA service is enabled. This service must be enabled for UTC data to be indexed with Global Device IDs. Value type is bool. Supported operation is Get. **UniversalTelemetryClient/UtcConfigurationDiagnosis/InternetExplorerTelemetryOptIn** An integer value representing what websites Internet Explorer will collect telemetry data for. Value type is integer. Supported operation is Get. The values are: - 0 == Telemetry collection is disabled - 1 == Telemetry collection is enabled for websites in the local intranet, trusted websites, and machine local zones - 2 == Telemetry collection is enabled for internet websites and restricted website zones - 3 == Telemetry collection is enabled for all websites - 0x7FFFFFFF == Telemetry collection is not configured **UniversalTelemetryClient/UtcConnectionReport** This provides an XML representation of the UTC connections during the most recent summary period. For the report XML schema, see [UTC connection report](#utc-connection-report). **WindowsErrorReporting** This represents the state of the Windows Error Reporting service. **WindowsErrorReporting/WerConfigurationDiagnosis** This represents various settings that affect whether the Windows Error Reporting service can upload data and how much data it can upload. **WindowsErrorReporting/WerConfigurationDiagnosis/WerTelemetryOptIn** An integer value indicating the amount of WER data that will be uploaded. Value type integer. Supported operation is Get. The values are: - 0 == Data will not send due to UTC opt-in - 1 == Data will not send due to WER opt-in - 2 == Basic WER data will send but not the complete set of data - 3 == The complete set of WER data will send **WindowsErrorReporting/WerConfigurationDiagnosis/MostRestrictiveSetting** An integer value representing which setting category (system telemetry, WER basic policies, WER advanced policies, and WER consent policies) is causing the overall WerTelemetryOptIn value to be restricted. Value type integer. Supported operation is Get. The values are: - 0 == System telemetry settings are restricting uploads - 1 == WER basic policies are restricting uploads - 2 == WER advanced policies are restricting uploads - 3 == WER consent policies are restricting uploads - 4 == There are no restrictive settings **WindowsErrorReporting/WerConnectionReport** This provides an XML representation of the most recent WER connections of various types. For the report XML schema, see [Windows Error Reporting connection report](#windows-error-reporting-connection-report). ## XML schema for the reports ### Appraiser run result report ``` CSP schema for the Compatibility Appraiser Diagnostic CSP. Schema defining the Win32CompatibilityAppraiser\CompatibilityAppraiser\AppraiserRunResultReport CSP node. Copyright (c) Microsoft Corporation, all rights reserved. Defines a category of Appraiser run. LastSecurityModeRunAttempt - The most recent run that was skipped because the "Allow Telemetry" setting was set to "Security". LastEnterpriseRun - The most recent run that was invoked with the "ent" command line. LastFatallyErroredRun - The most recent run that returned a failed "ErrorCode". LastSuccessfulRun - The most recent run that returned a successful "ErrorCode". LastFullSyncRun - The most recent run that attempted to upload a complete set of compatibility data (instead of only new data that was found since the previous run). LastSuccessfulFullSyncRun - The most recent run that attempted to upload a complete set of compatibility data (instead of only new data that was found since the previous run) and also returned a successful "ErrorCode". LastSuccessfulFromEnterprisePerspectiveRun - The most recent run that returned a successful "EnterpriseErrorCode". LastSuccessfulFromEnterprisePerspectiveEnterpriseRun - The most recent run that attempted to upload a complete set of compatibility data (instead of only new data that was found since the previous run) and also returned a successful "EnterpriseErrorCode". LastSuccessfulFromEnterprisePerspectiveEnterpriseRun - The most recent run that was invoked with the "ent" command line and also returned a successful "EnterpriseErrorCode". Represents the most recent run of the Compatibility Appraiser. CurrentlyRunning - A boolean representing whether the specified Compatibility Appraiser run is still in progress. CrashedOrInterrupted - A boolean representing whether the specified Compatibility Appraiser run ended before it finished scanning for compatibility data. ErrorCode - An integer which is the HRESULT error code, of a type that is relevant to any computer, from the specified Compatibility Appraiser run. This may be a successful HRESULT code or a failure HRESULT code. EnterpriseErrorCode - An integer which is the HRESULT error code, of a type that is relevant mainly to enterprise computers, from the specified Compatibility Appraiser run. This may be a successful HRESULT code or a failure HRESULT code. RunStartTimestamp - The time when the specified Compatibility Appraiser run started. RunEndTimestamp - The time when the specified Compatibility Appraiser run ended. ComponentWhichCausedErrorCode - The name of the internal component, if any, which caused the ErrorCode node to be a failure value during the specified Compatibility Appraiser run. Note that the ErrorCode node might be a failure value for a reason other than an internal component failure. ErroredComponent - The name of one of the internal components, if any, which encountered failure HRESULT codes during the specified Compatibility Appraiser run. A failure of an internal component may not necessarily cause the ErrorCode node to contain a failed HRESULT code. Represents the most recent run of the Compatibility Appraiser that satisfied a particular condition. ErrorCode - An integer which is the HRESULT error code, of a type that is relevant to any computer, from the specified Compatibility Appraiser run. This may be a successful HRESULT code or a failure HRESULT code. EnterpriseErrorCode - An integer which is the HRESULT error code, of a type that is relevant mainly to enterprise computers, from the specified Compatibility Appraiser run. This may be a successful HRESULT code or a failure HRESULT code. RunStartTimestamp - The time when the specified Compatibility Appraiser run started. RunEndTimestamp - The time when the specified Compatibility Appraiser run ended. ComponentWhichCausedErrorCode - The name of the internal component, if any, which caused the ErrorCode node to be a failure value during the specified Compatibility Appraiser run. Note that the ErrorCode node might be a failure value for a reason other than an internal component failure. ErroredComponent - The name of one of the internal components, if any, which encountered failure HRESULT codes during the specified Compatibility Appraiser run. A failure of an internal component may not necessarily cause the ErrorCode node to contain a failed HRESULT code. RunCategory - A string which details the category of Appraiser run. Defines the latest run results for all known categories. LastRunResult - Represents the most recent run of the Compatibility Appraiser. LastRunResultForCategory - Represents the most recent run of the Compatibility Appraiser that satisfied a particular condition. ``` ### UTC connection report ``` CSP schema for the Compatibility Appraiser Diagnostic CSP. Schema defining the Win32CompatibilityAppraiser\UniversalTelemetryClient\UtcConnectionReport CSP node. Copyright (c) Microsoft Corporation, all rights reserved. Defines the latest UTC connection results, if any. ConnectionSummaryStartingTimestamp - The starting time of the most recent UTC summary window. ConnectionSummaryEndingTimestamp - The ending time of the most recent UTC summary window. TimestampOfLastSuccessfulUpload - The ending time of the most recent UTC summary window that included a successful data upload. LastHttpErrorCode - The HTTP error code from the last failed internet connection. ProxyDetected - A boolean value representing whether an internet connection during the summary window was directed through a proxy. ConnectionsSuccessful - An integer value summarizing the success of internet connections during the summary window. The values are: 0 == "All connections failed", 1 == "Some connections succeeded and some failed", and 2 == "All connections succeeded". DataUploaded - An integer value summarizing the success of data uploads during the summary window. The values are: 0 == "All data was dropped", 1 == "Some data was dropped and some was sent successfully", 2 == "All data was sent successfully", and 3 == "No data was present to upload". AnyCertificateValidationFailures - A boolean value representing whether there were any failed attempts to validate certificates in the summary window. LastCertificateValidationFailureCode - The most recent error code from a failed attempt at validating a certificate. Lists results of UTC connections. Defines the latest UTC connection results, if any. ``` ### Windows Error Reporting connection report ``` CSP schema for the Compatibility Appraiser Diagnostic CSP. Schema defining the Win32CompatibilityAppraiser\WindowsErrorReporting\WerConnectionReport CSP node. Copyright (c) Microsoft Corporation, all rights reserved. LastNormalUploadSuccess - A summary of the last time WER successfully performed a normal data upload, if any. Timestamp - The time when WER attempted the upload. UploadDuration - The time taken while attempting the upload. PayloadSize - The size of the payload that WER attempted to upload. Protocol - The communication protocol that WER used during the upload. Stage - The processing stage that WER was in when the upload ended. BytesUploaded - The number of bytes that WER successfully uploaded. ServerName - The name of the server that WER attempted to upload data to. LastNormalUploadFailure - A summary of the last time WER failed to perform a normal data upload, if any. Timestamp - The time when WER attempted the upload. HttpExchangeResult - The result of the HTTP connection between WER and the server that it tried to upload to. UploadDuration - The time taken while attempting the upload. PayloadSize - The size of the payload that WER attempted to upload. Protocol - The communication protocol that WER used during the upload. Stage - The processing stage that WER was in when the upload ended. RequestStatusCode - The status code returned by the server in response to the upload request. BytesUploaded - The number of bytes that WER successfully uploaded. ServerName - The name of the server that WER attempted to upload data to. TransportHr - The HRESULT code encountered when transferring data to the server. LastResumableUploadSuccess - A summary of the last time WER successfully performed a resumable data upload, if any. Timestamp - The time when WER attempted the upload. LastBlockId - The identifier of the most recent block of the payload that WER attempted to upload. TotalBytesUploaded - The number of bytes that WER successfully uploaded so far, possibly over multiple resumable upload attempts. LastResumableUploadFailure - A summary of the last time WER failed to perform a resumable data upload, if any. Timestamp - The time when WER attempted the upload. HttpExchangeResult - The result of the HTTP connection between WER and the server that it tried to upload to. LastBlockId - The identifier of the most recent block of the payload that WER attempted to upload. TotalBytesUploaded - The number of bytes that WER successfully uploaded so far, possibly over multiple resumable upload attempts. Defines the latest WER connection results, if any. LastNormalUploadSuccess - A summary of the last time WER successfully performed a normal data upload, if any. LastNormalUploadFailure - A summary of the last time WER failed to perform a normal data upload, if any. LastResumableUploadSuccess - A summary of the last time WER successfully performed a resumable data upload, if any. LastResumableUploadFailure - A summary of the last time WER failed to perform a resumable data upload, if any. Lists results of WER connections. Defines the latest WER connection results, if any. ```