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:
- Checking the system locale in Control Panel
- Running
Get-Culture
andGet-WinSystemLocale
in PowerShell - Attempting to install SQL Server again