Microsoft Dynamics 365 Blog

In the previous blog, Introducing MSCRM Client Diagnostics, , one of the items we discussed was the Xml file that can be generated from the End User Mode after the diagnostics tests have been completed. The Xml file reflects the current state of the client when the diagnostics were run (what you see in the UI), saving the report xml saves that snapshot.

Since the MSCRM client has many dependencies, changes to the client environment will be diagnosed and included or excluded in subsequent diagnostics sessions. This means you may not always get the same report when you run Diagnostics. If an intermittent problem exists, so you might want to save a copy as evidence. To help make this Xml file readable to everyone, this command line tool, ‘TransformMSCRMDiagosticsReport.exe’, will create a transformed copy the End User Diagnostics Report Xml file as an HTML file. The resulting HTML file can be easily read by any web browser.

Generalized Process

After starting the MSCRM Client Diagnostics feature (from the ‘Start’ menu, under ‘Microsoft Dynamics CRM 4.0’, by clicking ‘Diagnostics’), client diagnostics are started by clicking the ‘Run Diagnostics’ button. When diagnostics have completed, the user has the option to save the results to an XML file by clicking the ‘Save’ button.


Note: The saved file location and the name of the file can set from the ‘File Save As’ dialog, so remember what the name and location were.

Once the file is saved, the ‘TransformMSCRMDiagosticsReport.exe’ tool can be used to transform the file.

The command syntax: TransformMSCRMDiagosticsReport.exe <PathAndFileName1> <PathAndFileName2> <etc…>

For example: TransformMSCRMDiagosticsReport.exe “C:\Documents and Settings\arnem\DesktopMSCRM Diagnostics Report.xml”

The HTML file created in the same directory as the report file used and has the .html extension added to the original file name. So, “MSCRM Diagnostics Report.xml” is transformed into “MSCRM Diagnostics Report.xml.html”. All diagnostics are contained in the “RootDiagnosticCheck” table with sub tables for each of the major diagnostic categories:

  • Network and Connectivity
  • Internet Settings
  • Client Configuration
  • Synchronization
  • System Configuration
  • Software Updates
  • Performance

Note: Even though MSCRM Client Diagnostics found errors in a diagnostic group, the “RootDiagnosticCheck” displays “Status: Passed”. This is because this particular “Status” refers to the completion of all major diagnostic areas. See the Html sample output below.:

Sample with Errors:


Sample with Warnings:


Do the report colors mean anything?

The Html file displays headings in the color blue. Warning titles and data are also displayed in blue (yellow was my first choice, but it was not legible). When the diagnostic test passes, the title and data is displayed in the color green. Also when the diagnostic result is ‘Passed’, there are no details recorded in the Xml file and ‘No Details Required’ is displayed in the corresponding Details column. Diagnostics that fail will be displayed in the color red. Overall status of the diagnostic report always shows Passed in blue, as all the diagnostics completed.

On systems with a Wheel Mouse, the resulting Html file above, can be enlarged and reduced by holding the Control Key down and rolling the wheel.

Where do I find TransformMSCRMDiagosticsReport.exe?

The code and an already compiled version of this command line tool is located in a .Zip file accessible from the MSCRM section of “MSDN Code Gallery’, . Select the ‘Releases’ tab and it should be listed in the Releases section to the right of the page. C sharp was used for the program. The code consists of ‘Program.cs’, contains the command line logic and ‘MSCRMDiagnosticsTransform.cs’, which contains the Xsl in a string form. ‘Program.cs’ also contains the TransformDiagReport function, which performs the transformation by reading the string and through a maze of XPathDocuments, XmlWriters, TextReaders, XmlReaders and XslComiledTranforms.


Arne Marquez

We're always looking for feedback and would like to hear from you. Please head to the Dynamics 365 Community to start a discussion, ask questions, and tell us what you think!