During OS deployment you normally set the regional settings to match the nationality of the user who are to receive the computer! This can be anything from the OS UI and keyboard,  to Date and time formats, and is normally done using sysprep values like SystemLocale, UserLocale, UIlanguage etc.

One problem though, is the UserLocale value, which sets all the Date and time formats. These settings are all pre defined in the system based on the regional setting, which means all machines running English UserLocale will get the settings defined for en-US by Microsoft.

But every now and then, you might want to have your currency or decimal separated by a comma (,) instead of a dot (.), or vise versa. You can then go to regional settings and change it there to fit your needs. But for a large rollout, it might be nice if this could be set automatically during the OS deployment process.

That is actually not that hard (yes, I know it can be done using GPO. but that’s not an option for all). It just a matter of changing the setting in the registry. Only problem is, it’s set pr. user, so we must change the setting in the HKEY_CURRENT_USER. For that we can utilize the Active Setup registry key, that will run once for each new user who logs on to the computer.

Lets say we want to change the Decimal symbol from a comma to a dot.


Then just run this script in your Task Sequence, somewhere after the “Setup windows and ConfigMgr” step. 

Set oShell = CreateObject("WScript.Shell") RegPath="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\{Z-Regional}\" oshell.RegWrite Regpath & "Stubpath", "reg.exe add " & """HKCU\Control Panel\International""" _ & " /v sdecimal /t REG_SZ /d , /f", "REG_SZ"

Each time a new user logs on to the computer, the Decimal symbol, defined under sDecimal in the registry, will be changed to a comma. If it’s the other way around, just change the value between /d and /f, or the sDecimal to some other value.