Automate Regional and Language Settings in Windows 10
Working on Azure Virtual Desktop, I found myself having to customize Windows 10 desktops with the local regional settings via automation with PowerShell cmdlets. A quick web search provided answers such a “Set-WinHomeLocation”, “Set-Culture”, etc. However, if you read up the documentation of these cmdlets, Microsoft clearly states that these are user settings and only affects the current logged on user.
In fact, the Region and Regional Format settings under the Windows 10 Settings are only user-based and only applied to the current logged-in user profile.
When you build a Windows VM in Azure, it defaults to en-US and US region. This is fine for users in said region but those of us in different regions will need to customise the settings.
The way to apply these settings manually to all new users would be to go to the Region section of the control panel and select the Copy settings button to copy your current user settings to “New user accounts”.
Note that this only applies to NEW user accounts. If you have already logged in and have a saved user profile with incorrect regional settings, you will need to change it manually.
Luckily I found this old Microsoft article (link below) which talks about automating the settings and although it only mentions Windows 7 and Windows 2008 R2, it still applies to Windows 10.
As the article mentions, create an XML file with the required regional and language settings settings. Only specify the sections whose settings are required. Not every section needs to be specified.
I have mapped some of the settings to the GUI options as shown below.
Save the file with any name with the “.xml” extension then apply the settings with the following command in your PowerShell script:
& $env:SystemRoot\System32\control.exe "intl.cpl,,/f:`"c:\Windows\Temp\Unattend.xml`""
By the way, the only system-wide PowerShell cmdlet I found is “Set-WinSystemLocale” which sets the System Locale for non-unicode programs.