imPC@ndo IT

Guides / intune

intune-from-zero · Chapter 10 of 11

Italian keyboard on an en-US image: what Autopilot cannot do

The Autopilot profile requests a language, it does not install one. A script for keyboard and formats, and why the interface deliberately stays English.

The deployment profile had Language (Region) set to Italian (Italy) and Automatically configure keyboard set to Yes. The device finished provisioning with a US keyboard.

This is not a bug, and understanding why explains a category of Autopilot settings that look like they do more than they do.

The cause

The Autopilot profile requests a language. It does not install one.

The image was en-US and contains no Italian language pack. OOBE asked for Italian, found nothing to satisfy the request, and fell back entirely to en-US — keyboard layout included.

The setting is not lying. It configures the language if the image can provide it. On an image built in the target language it works exactly as expected, which is why the behaviour is easy to miss until you deploy from an English ISO.

Three ways out

ApproachResultLimit
Use an Italian ISOEverything Italian from the startOnly helps new deployments
Intune script (chosen)Keyboard, formats, regionInterface stays English
Script + Install-LanguageInterface in Italian tooDownload and a reboot

Why the interface deliberately stays English

This was a choice, not a compromise forced by effort.

Microsoft’s administrative interfaces, their documentation and — crucially — their error messages are written in English. An interface in Italian produces error strings that cannot be pasted into a search engine and translated menu names that do not match any guide, including this one.

Keyboard and number formats are what people actually feel every day. Menu language is what you need to match against documentation when something breaks.

So: Italian keyboard, Italian formats, English interface.

The script

Intune → Devices → Scripts and remediations → Platform scripts.

$list = New-WinUserLanguageList -Language it-IT
$list.Add("en-US")
Set-WinUserLanguageList -LanguageList $list -Force
Set-WinHomeLocation -GeoId 118
Set-Culture it-IT

GeoId 118 is Italy. Set-Culture governs date, time, number and currency formats. en-US is kept in the list as a second layout, so the English keyboard remains available with a keystroke.

Result on the lab device: 1 device Succeeded, 0 Error. Italian keyboard and formats applied, interface unchanged, as intended.

If you want the interface in Italian too

That needs a second script, in SYSTEM context this time, because installing a language is a machine-level operation:

Install-Language it-IT
Set-SystemPreferredUILanguage it-IT

Install-Language exists only on Windows 11, downloads the language pack, and requires a reboot to take effect.

Surviving a US layout in the meantime

If you are configuring a device before the script has landed — typing a device code during OOBE, for instance — this is the mapping that matters on Italian hardware running a US layout:

You needPress
/the - key
-the ' key
&Shift+7
+Shift + the ì key
[ / ]è / the + key
{ / }Shift+è / Shift + the + key
:Shift + the ò key