Description
This document will provide a workaround for a crash when navigating to View > Machines in Protect.
Symptoms
When navigating to View > Machines, the Protect Console crashes with an unexpected error. The following generic pop-up will appear:
You can verify the issue by looking in the ST.Protect.managed.UserName@ProtectServer.log where you will see the specific error This will help you identify the unsupported language culture:
Crash from main UI thread ---> System.InvalidOperationException: Crash from main UI thread ---> System.Globalization.CultureNotFoundException: Culture is not supported.
Parameter name: culture
2073 (0x0819) is an invalid culture identifier.
Cause
One or more of your scanned machines have an unsupported language culture. .Net Framework installed on the Protect Console is unable to verify the language culture of these machine(s) in when opening View > Machines. In this specific example, the hex value 0x0819 indicates a Moldova language culture.
Parameter name: culture
2073 (0x0819) is an invalid culture identifier.
Here is a list of languages with their Hex and Decimal value: Language Culture Code Table
Resolution
- Download and install the latest .Net Framework language pack for the highest level .Net Framework installed on the Protect server.
- If installing the latest .Net Framework language pack doesn't correct the issue, the workaround for this issues would be to remove the machine(s) in question directly from the database via script. The remainder of the document will walk you through the workaround.
Identifying the Language Culture
- You will need to identify the hex value of unsupported language culture from the ST.Protect.managed.UserName@ProtectServer.log.
- The log is located in the C:\ProgramData\LANDESK\Shavlik Protect\Logs folder on the Protect server.
- Open the log with your favorite text editor and search for: is an invalid culture identifier This will give you the hex value for the next step, for example:
2073 (0x0819) is an invalid culture identifier.
Identifying the machine(s) with the affected language culture
4. Once you have the hex value for the language culture, you will need to identify machine(s) with this language culture by running this SQL query against the Protect database:
SELECT Domain, Name, * FROM [ManagedMachines] WHERE language = Hex value from logs
Example of output listing machines with specific language culture:
Removing the affected machines via SQL Script
- Extract DeleteMachineView.zip on the server you will be performing the query from.
- Open SQL Server Management Studio and connect to the Protect database.
- Backup the Protect database
- Open DeleteMachineView.sql into a query window.
- Read disclaimer at the top of the script.
- Select the Protect database to run the query against.
7. The next step is to replace the following with the domain\machine or workgroup\machine name values from above.
FROM:
SET @machineDomain = 'Enter Domain or Workgroup Name' SET @machineName = 'Enter Machine Name'
TO:
SET @machineDomain = 'WORKGROUP' SET @machineName = 'VM-2K16-64-EN'
8. Execute the script to delete specified machine. Repeat this process for all affect machines.
9. Attempt to open Shavlik Protect.
Contact Support is there are any error when running the script. Save the results and messages from the script output to a text file before closing the script window.
Affected Product(s)
Shavlik Protect 9.x