GUI Crashing Due to Computer/Component Language Setting in Shavlik Protect

Version 6

    Symptoms

     

    • GUI crashes during a scan or deployment.
    • You see this error:

      2012-07-02T17:06:28.5897131Z 0001 C Launcher.CurrentDomainUnhandledException|System.InvalidOperationException: Crash from main UI thread ---> System.InvalidOperationException: Crash from main UI thread ---> System.ArgumentOutOfRangeException: Positive number required.
      Parameter name: culture

     

    Purpose


    This article provides information on identifying and troubleshooting incorrect or corrupt language settings that cause the Protect Console to crash. While this can occur is several areas, it is most commonly due to a corrupt or incorrect language value within the SQL instance registry hive.

     

    Cause


    There is a corrupt or incorrect language setting for the Protect Console OS, SQL Server instance, target operating system, or component/application being patched on a target machine. When this language setting is incorrect, Protect will error out as it cannot successfully enumerate the application/operating system/SQL instance needed in its language translation input/output.This issue may occur with a specific machine group scan or anytime you scan/deploy, depending on the area of corruption within the environment.

     

    Resolution


    This issue can occur due to a corrupt registry key on the Console OS, Console SQL server instance, target machine OS, or affected component/application selected by Protect to be patched. Ensure that the following values are correct regarding the language settings. In all areas that interact with the Protect scan and deployment process.

    1. Check SQL Server registry.

      Note: This applies to SQL 2008, SQL 2008 R2, SQL 2005, and all express versions.
      1. Ensure that the following registry key located on the machine that houses the SQL server instance is set to the correct language. If the language is English (United States), it should have a Language REG_DWORD value of 0x00000409. If you see an incorrect value, no value, or a bad value such as fffffffff, verify the correct value and make the appropriate changes. Then test if the issue occurs again.

        HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion]"Language
    2. Check the target machines scanned by the Protect Console.
      1. There may be an incompatible or incorrect Language value set on one of the target machines the Protect console is scanning. This can be checked by running a query against the SQL database used by the console, providing and targeting machines where the language value is less than zero. Once identified, the administrator should be able to correct the language to its correct value. The query to run against the Protect database is:

        SELECT * FROM [ScanItems] WHERE itemLanguageID <= 0
        1. If a target machine is discovered, the administrator can check the regional and language settings of the operating system in question.
    3. Check the Protect Console Patch language setting.
      1. The registry key below should be set to the correct language, or checked for corrupt values. An example again for English (United States) would be the value to set to English C:\ProgramData\Shavlik TEchnologies\NetChk\Patches.
        1. Reg key: HKEY_CURRENT_USER\Software\Shavlik\HFNetChkPro4\GUI\Options\DefaultLangCode

    Affected Product(s)


    Shavlik Protect 9.x