Configuring Regional Settings and Windows locales with Group Policy is about managing user location settings such as region, currency and time. A locale is a unique combination of language, country/region, and code page. Part of these settings are user-specific, others are system-specific (local machine) and thus apply to all logged-on users.
Introduction
This article applies to all operating systems starting from Windows Server 2008/Windows 7 all the way up to the latest versions and builds (currently Windows 10 version 1809 and Windows Server 2019)! |
I know, I know, this topic is a bit of a “golden oldie”, but still very relevant today. In my lab environment, I recently found myself struggling with this old topic again. Once again I faced the problem of incorrect regional settings, incorrect time format, incorrect code page and incorrect time zone. And mind you, my lab environment exists of Windows 2016 servers only (OK, I have one 2012 R2 server). Having solved such issues before, I knew I could configure all settings centrally using Group Policy. This blog post is for all of you fellow administrators out there who struggle with the same issues.
I am sure that you are familiar with the Regional Settings Control Panel item. Before you continue with the various sections below, I would like to remind you of the fact that the tabs Formats and Location contain user-specific settings and that settings on the tab Administrative are system-specific.
These system-specific settings concern the international settings for the welcome screen and system accounts as well as the local system’s code page for programs that do not support Unicode. For detailed information how to configure the code page please see the article Configuring the time zone and code page with Group Policy on this website.
The rest of this article deals with the user-specific settings (= the first two tabs) only.
One last thing. All configurations described in this article are stored in the Windows registry. If you are unsure of the exact value of a setting, for example concerning country codes, I recommend you to first configure the setting using the graphical interface. You than go to the registry and read the configured value, which you can than use in your script or Group Policy setting.
Quick list of the main registry values mentioned in this article
In case you are not in the mood for any blabla, I have listed all relevant registry keys and values in this section. If you know your way around Group Policy Preferences, you do not need to read further. Here it goes.
Regional settings:
Registry key: HKEY_CURRENT_USER\Control Panel\International
Registry value: multiple values in the aforementioned key
You can configure Regional Settings with the Regional Settings Group Policy Preference (User Configuration \ Preferences \ Control Panel Settings \ Regional Options).
24/12 hour clock and AM/PM time settings:
Registry key: HKEY_CURRENT_USER\Control Panel\International
Registry value: sShortTime (REG_SZ)
You can configure the time settings with the Regional Settings Group Policy Preference or with a Group Policy Preference registry item.
(Home) location:
Registry key: HKEY_CURRENT_USER\Control Panel\International\Geo
Registry value: Nation (REG_SZ)
You can configure the (home) location with a Group Policy Preference registry item.
Configuring regional settings using Group Policy
This section deals with the settings configured on the first tab, Formats, of the Regional Settings Control Panel item.
Ever since the introduction of Group Policy Preferences with Item-Level Targeting (first introduced with Windows Server 2008), managing regional settings has been a breeze. Open your Group Policy Management Console (GPMC.msc) and navigate to User Configuration \ Preferences \ Control Panel Settings \ Regional Options. With a right-mouse click on Regional Options select New.
Now you can configure your settings the same way as on a local Regional Settingspane.
Note: please be aware that this policy item requires you to first enable underlined settings by pressing the F5 or F6 key before you can modify and save them! See the Microsoft article Enable and Disable Settings in a Preference Item for more information. |
I recommend to execute this policy in the user’s security context (tick the Run in logged-on […] box on the Common tab).
In case you require multiple Regional Settings configurations within the same Group Policy, use an Item-Level Targeting filter.
One way to distinguish users is to filter based on Active Directory security group membership, for example:
- German (Austria): filtered on the Active Directory Group usrsAustria
- French (France): filtered on the Active Directory Group usrsFrance
- English (United States): filtered on the Active Directory Group usrsEnglish
In the end, all regional settings are configured in the registry in the HKEY_CURRENT_USER hive. The regional settings consist of multiple values. You find all settings in the following registry key:
Control Panel\International
Configuring the 24/12 hour clock and AM/PM using Group Policy
It may happen that after configuring the regional settings for a user, the time in the system tray is not shown in the correct format. You can correct the time format on the Time tab in the Regional Settings Group Policy Preference (see also the previous paragraph) or directly in the registry (using either a script or a Group Policy Preference).
Please take a look at the screenshot below. The regional settings have been modified from English (United States) to German (Austria). In most countries in Europe, a 24-hour clock is used without AM / PM at the end. In the example below, the time is not displayed as it should be. In our example, a 12-hour clock is displayed as well as AM / PM (nachm. stands for PM in German). What the clock should display is a 24-hour time notation without AM / PM at the end.
The short time value determines how the time in the system tray is displayed; a 24 or 12-hour clock (with or without leading zeros) and with or without AM / PM. This value is written in the registry in the HKEY_CURRENT_USER hive. The exact registry key and value are:
Control Panel\International -> sShortTime (REG_SZ)
The following possible values exist:
- h:mm = 12-hour clock without leading zeros and without AM / PM
- hh:mm = 12-hour clock with leading zeros and without AM / PM
- h:mm tt = 12-hour clock without leading zeros and with AM / PM
- hh:mm tt = 12-hour clock with leading zeros and with AM / PM
- H:mm = 24-hour clock without leading zeros and without AM / PM
- HH:mm = 24-hour clock with leading zeros and without AM / PM
- H:mm tt = 24-hour clock without leading zeros and with AM / PM
- HH:mm tt = 24-hour clock with leading zeros and with AM / PM
A capital H sets the clock to a 24-hour format; a small h sets the clock to a 12-hour format. A double hh or HH adds a leading zero (when the hour is one digit only). If tt is present at the end than AM / PM is displayed. Also, note the space between the clock settings and the tt value.
Here are some examples:
- h:mm = 7:30 or 10:42
- hh:mm = 07:30 or 10:42
- h:mm tt = 7:30 AM or 10:42 PM
- hh:mm tt = 07:30 AM or 10:42 PM
- H:mm = 7:30 or 23:42
- HH:mm = 07:30 or 23:42
- H:mm tt = 7:30 AM or 23:42 PM
- HH:mm tt = 07:30 AM or 23:42 PM
The last two examples in the previous list will not be used much in practice: a 24-hour clock with AM / PM at the end. The drop down menu in the Regional Settings does not allow you configure this, but you can configure this on the Time tab of the Regional Settings Group Policy Preference and by directly configuring the registry (using a Group Policy Preference registry item for example). Adding the prefix AM / PM to a 24-hour clock notation looks a bit weird, but it is technically possible:
Now we have all the information we need to set the correct time configuration for all users. There are two easy ways how to accomplish this:
- Configure the clock using a Regional Settings Group Policy Preference
- Configure the clock using a Group Policy Preference registry item
Configure the clock using a Regional Settings Group Policy Preference
Please read the section Configuring regional settings using Group Policy in this article to understand how to configure the user’s regional settings. After you have configured at least one regional setting configuration, modify this configuration and go to the Timetab.
On this tab you can modify the time format to anything you want. Before you can modify anything, first make sure to press the F5 button to turn all the red lines to green lines. Green lines indicate that anything you change will be saved after clicking the Apply or OK button. At the bottom of the tab a detailed description of the various configuration options is provided. In the example below I changed the format HH:mm:ss to h:mm:ss tt, changing the clock from a 24-hour to a 12-hour clock and adding AM / PM.
Configure the clock using a Group Policy Preference registry item
Open your Group Policy Management Console (GPMC.msc) and navigate to User Configuration \ Preferences \ Windows Settings \ Registry. With a right-mouse click on Registry select New \ Registry Item. Configure the registry item as follows:
- Action: replace
- Hive: HKEY_CURRENT_USER
- Key path: Control Panel\International
- Value name: sShortTime
- Value data: <your value>, e.g. HH:mm
I recommend to execute this policy in the user’s security context (tick the Run in logged-on […] box on the Common tab).
In case you require multiple locations for a variety of scenarios within the same Group Policy, use an Item-Level Targeting filter. This is explained in the section Configuring regional settings using Group Policy.
The registry item is now created and will be deployed to all users to whom the particular Group Policy applies.
It is possible to rename the registry item afterwards:
Just remember that modifying the item resets it to its original name (=the value name) and you will have to rename it again.
Configuring the (home) location setting using Group Policy
This section deals with the Home Location setting configured on the second tab, Location, of the Regional Settings Control Panel item.
The location cannot be changed using the Regional Settings Group Policy Preference. Instead, a Group Policy Preference registry item needs to be used.
The location is stored in the Windows registry in the HKEY_CURRENT_USER hive. The exact registry key and value are:
Control Panel\International\Geo -> Nation (REG_SZ)
To determine the country ID, change the location manually on the second tab of the Control Panel item Regional Settings and than check the aforementioned registry value. For example, when I select Austria as my location, the value Nation is set to 14. Before it was 244, which is the country ID for the United States.
Now we have all the information we need to set the correct location for all users. The easiest way to accomplish this is by using a Group Policy Preference.
Open your Group Policy Management Console (GPMC.msc) and navigate to User Configuration \ Preferences \ Windows Settings \ Registry. With a right-mouse click on Registry select New \ Registry Item. Configure the registry item as follows:
- Action: replace
- Hive: HKEY_CURRENT_USER
- Key path: Control Panel\International\Geo
- Value name: Nation
- Value data: <your value>, e.g. 14
I recommend to execute this policy in the user’s security context (tick the Run in logged-on […] box on the Common tab).
In case you require multiple locations for a variety of scenarios within the same Group Policy, use an Item-Level Targeting filter. This is explained in the section Configuring regional settings using Group Policy.
The registry item is now created and will be deployed to all users to whom the particular Group Policy applies.
It is possible to rename the registry item afterwards:
Just remember that modifying the item resets it to its original name (=the value name) and you will have to rename it again.
I hope this article was of some help to you.
ทิ้งคำตอบไว้
คุณต้องเข้าสู่ระบบ เพื่อจะพิมพ์ความเห็น