WSUS Client Diagnostics Tool


Description Summary

i)        This tool has been designed to aid the WSUS administrator in troubleshooting the client machines that are failing to report back to the WSUS Server.  The tool will do a few preliminary checks and test the communication between the WSUS Server and the client machine.  Once the tool has completed the tests it will display the results in the console window.  The WSUS administrator also has the option to have the results logged to a file in addition to being displayed on the console.


Detailed Description

i)        The Diagnostics Tool executes 4 main functions used to evaluate and return the completed results.

(1)   Verify the machine state

(a)    In this function the tool will first check if the current logged on user running the tool has administrative access as this is required in order to obtain the information required to successfully complete the diagnosis of the machine.

(b)   Then the tool will then check the current state of the Automatic Updates & BITS Services.

(c)    Finally the tool will obtain the version of the wuaueng.dll binary to determine which version of the Automatic Updates client is currently installed on the systems.

(2)   Compare AU Settings

(a)    After verifying that the machine may continue running the tool it will evaluate the AUOption setting in both the registry and if applicable the memory and verify that the settings match or which setting is currently being used by policy or the control panel.

(3)   Verify the Proxy Settings

(a)    This function will obtain and display if applicable the proxy settings for both the Local System and the Current user Internet Explorer settings. This check is applicable to WSUS environments if the clients need to go through a proxy server to access the WSUS server or the WSUS server is configured so the clients download the update files from the Microsoft Update service.

(4)   Verify the WSUS server URL

(a)    Once all the above tests have completed this is the final function executed.  In here the tool will obtain both the WUServer value and the WUStatus value then depending on the results of the version of the WSUS/SUS server the tool will compare the WUServer and WUStatus Server values to ensure they match.  In WSUS 2.0 the two servers must match.

(b)   The tool will also verify that the UseWuServer value is present and enabled as this is required to complete the last step.

(c)    To complete the process the tool will do one last test that will determine if the selfupdate tree is present.  This is usually the main cause of why clients fail to communicate with their server.  The selfupdate tree is either missing or inaccessible.


Usage of the Diagnostics Tool

i)        This tool can be executed by either double clicking the executable or running it inside a command window.

(1)   Should the user choose to double click the tool it will open a command window and then prompt them to press enter to complete the run.

(2)   Should the user choose to run the tool inside a command window they will now be capable of choosing to create a text file in addition to displaying the results on the console window.

ii)      When required the user can also run the tool in Local System context by doing the following:

(1)   Run the LaunchLocalSys.js script from the command line

(2)   After the script has ran wait 1 minute

(3)   Now drag and drop the Diagnostics Tool into the new window and execute

iii)    Example:

(1)   ClientDiag.exe

(a)    Running this command line will only display the results in the console window.

(2)   ClientDiag.exe /t

(a)    Running this command line will not only display the results in the console window but it will also create ClientDiag.log on the system drive so that the user can review the results at a later time.

(3)   ClientDiag.exe /? Or /h

(a)    Running this command line will result in the usage text displayed below:

(b)   ClientDiag.exe [/t]

      /? -? = Help

      /t -t = Print to file


Error Reporting

i)        Should the tool find an error the tool will attempt to display the error code and if possible display a readable description of the error so that the user can diagnose the problem.