Post

SQL Server Setup Media Does Not Support the Language of the OS: SCVMM Deploying Non-English VMs in English by Default

SQL Server Setup Media Does Not Support the Language of the OS: SCVMM Deploying Non-English VMs in English by Default

Fixing Language Mismatch Between SQL Server and Windows OS

The Problem

Have you ever deployed a non-English Windows server via System Center Virtual Machine Manager (SCVMM) and then tried installing SQL Server on it? You might encounter an error because SCVMM always makes the base deployment for any new VM templates in English, regardless of the language settings you choose.

What’s particularly confusing is that the OS will display in your selected language locale (Japanese in my case), but underneath, the system settings remain in English. You can verify this by opening the command prompt - all errors will appear in English, not in the language displayed in the GUI.

Error Message

When attempting to install SQL Server on such a system, you’ll receive this error:

1
2
SQL Server setup media does not support the language of the OS or does not have ENU localized files. 
Use the matching language-specific SQL Server media or change the OS locale

The Solution

You can fix this issue by updating the SCVMM VM templates. Here’s how to modify a template to properly set the language settings:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Get the VM template you want to modify
$template = Get-SCVMtemplate | where {$_.Name -eq "Win2012R2_JP_NEW_WG"}

# Get the current unattend settings
$settings = $template.UnattendSettings

# Add the proper language settings (Japanese in this example)
$settings.add("oobeSystem/Microsoft-Windows-International-Core/UserLocale","ja-JP")
$settings.add("oobeSystem/Microsoft-Windows-International-Core/SystemLocale","ja-JP")
$settings.add("oobeSystem/Microsoft-Windows-International-Core/UILanguage","ja-JP")
$settings.add("oobeSystem/Microsoft-Windows-International-Core/InputLocale","1041:00000411")

# Update the template with the new settings
Set-SCVMTemplate -VMTemplate $template -UnattendSettings $settings

After updating the template, you’ll need to redeploy the server OS using this updated template.

Finding the Correct Language Values

The InputLocale values must match with the language code (e.g., “ja-JP”). To find the correct values for your language, refer to these Microsoft resources:

Common Language Codes

Here are some common language codes for reference:

Language UserLocale InputLocale
English (US) en-US 0409:00000409
Japanese ja-JP 1041:00000411
German de-DE 0407:00000407
French fr-FR 040c:0000040c
Spanish es-ES 0c0a:0000040a

Verification

After redeploying the VM with the updated template, you can verify the language settings by:

  1. Checking the system locale in Control Panel
  2. Running Get-Culture and Get-WinSystemLocale in PowerShell
  3. Attempting to install SQL Server again
This post is licensed under CC BY 4.0 by the author.