This week a blog post about a nice newly introduced policy setting in Windows 10, version 1903. That setting is available in the TimeLanguageSettings area, and can be used to set the time zone of the device. The TimeLanguageSettings area already existed before Windows 10, version 1903, but previously only contained a single setting for Windows 10 Mobile. Now it also contains a very useful setting related to non-Mobile versions of Windows 10. That setting will give some more control on the default time zone configuration of a device. In this post I’ll briefly go through the setting, followed by the configuration and the end-user experience.
Settings
Let’s start by having a look at the setting. The TimeLanguageSettings area is not a new node within the Policy CSP, but starting with Windows 10, version 1903, it does contain a nice new policy setting. Below is an overview of that policy setting. Keep in mind that the complete node of this policy setting starts with ./Device/Vendor/MSFT/Policy/Config/TimeLanguageSettings/.
Policy | Description |
ConfigureTimeZone Value: <time zone ID> |
This policy can be used to specify the time zone that should be applied to the device. |
Note: The time zone ID can be retrieved by using tzutil.exe. Simply use tzutil.exe /g on a device that already has the correct time zone configured.
Configuration
Now let’s continue by having a look at the configuration steps for the time zone. In other words, create a device configuration profile with the previously mentioned custom policy setting. I will use my own time zone as an example. The following three steps walk through the creation of that device configuration profile. After that simply assign the created profile to a user or device group.
1 | Open the Azure portal and navigate to Microsoft Intune > Device configuration > Profiles to open the Devices configuration – Profiles blade; |
2 | On the Devices configuration – Profiles blade, click Create profile to open the Create profile blade; |
3a |
On the Create profile blade, provide the following information and click Create;
|
3b |
On the Custom OMA-URI Settings blade, provide the following information and click Add to open the Add row blade. On the Add row blade, provide the following information and click OK (and click OK in the Custom OMA-URI blade);
|
— |
Note: At some point in time this configuration will probably become available in the Azure portal without the requirement of creating a custom OMA-URI.
End-user experience
Let’s end this post by looking at the end-user experience. Below is an example of a Windows 10 device running version 1903. In that example it shows the configuration of the time zone that should be configured. In my testing the end-user would still be able to adjust the time zone afterwards.
As the end-user was still able to adjust the configuration afterwards, I wanted to be sure that the configuration was actually applied. To do that I also looked at the MDM Diagnostics Report. That report, which is shown below, clearly shows that the policy setting is configured,
Besides that report, the Event Viewer will also provide the information about the time zone change.
- The Admin log in Microsoft > Windows > DeviceManagement-Enterprise-Diagnostics-Proivder shows event id 814 with the message MDM PolicyManager: Set policy string, Policy: (ConfigureTimeZone), Area: (TimeLanguageSettings), EnrollmentID requesting merge: (A77EC83D-AFD9-4949-AE0C-69CD6784C83F), Current User: (Device), String: (W. Europe Standard Time), Enrollment Type: (0x6), Scope: (0x0).
- The System log shows event id 22 with the message The time zone bias has changed to -120 from 420 followed by event id 1 with the message The system time has changed to 2019-07-11T06:26:15.574273500Z from 2019-07-11T06:26:15.574273500Z. Change Reason: System time adjusted to the new time zone.
More information
For more information about the available time zone settings in the Policy CSP, please refer to the documentation about Policy CSP – TimeLanguageSettings.
I just tried this new CSP on my small fleet of SelfDeploying 1903 Public Kiosks – applied successfully, but I am getting reports still a few have set their time automatically 2 hours ahead. Been testing time service reset / resync powershell scripts but not seeing the results.
Hi Nigel,
Did you also see all the messages in the Event Viewer, as mentioned in my post?
Regards, Peter
Hi, nice article, as may other 🙂
Any idea why my policy may not apply and Event Log throws:
MDM ConfigurationManager: Command failure status. Configuration Source ID: (383C96E9-DDA6-4882-ADBB-B61A92769C09), Enrollment Name: (MDMDeviceWithAAD), Provider Name: (Policy), Command Type: (Add: from Replace or Add), CSP URI: (./Device/Vendor/MSFT/Policy/Config/TimeLanguageSettings/ConfigureTimeZone), Result: (The system cannot find the file specified.).
…?
Hi Tomasz,
Are you using Windows 10, version 1903, or later?
Regards, Peter
anyone know how to configure the “set time zone automatically” using CSP or other methods?
Hi Gilad,
You can use PowerShell (Set-TimeZone) for that.
Regards, Peter
Is there a way to set this for laptops that have Windows 10 with a version prior to 1903?
Hi Anna,
Not via MDM, only via custom scripting.
Regards, Peter
Hi peter it’s urgent kindly reply
I am getting remediation failed using windows 101903 version
Hi Amit,
I would start by looking at the mentioned Event messages.
Regards, Peter
PS: When it’s really urgent you should create a support ticket.
Thank you this policy is not getting deployed in Windows 10 ,1909
I want to understand more about creating OMA uri
Thank you for reply
Hi Amit,
What is it that you want to understand more about OMA-URI?
Regards, Peter
Hi Peter,
Thank you for providing this config. Very useful however, what if you have a company of 1200 users across 32 different countries. This is the situation I am in. Migrating users to Intune and every one of them is experiencing the timezone issue whereby their timezone is always 6-8 hours out. This solution would work however I would have to do this per region with multiple different configs etc. Any idea how to streamline this further?
Hi Gavin,
You probably might have to look at some scripting options. Here is a nice example: https://msendpointmgr.com/2020/05/20/automatically-set-time-zone-for-devices-provisioned-using-windows-autopilot/
Regards, Peter
Hi Peter,
This sets the time zone but does not resync time? Is there a way to do that via Intune?
Hi JohnR,
Not sure what you exactly mean. My experience is that this policy setting configures the time zone and that the current time in that time zone will show on the clock.
Regards, Peter
I love what you have done here. I don’t see any Time Zone lists which show valid time zone strings. I tried working backward to see if there are any Time Zones which state “W. Europe Standard time”. I haven’t found any such time table.
My Goal – I need to determine the string names of the 4 standard zones for the USA. Eastern Standard Time – Pacific Standard Time.
We would deliver the computer via AutoPilot and have the initial time set to their office location (state) by dynamic group. We have a lot of users that do travel so them having the ability to over ride the time is actually a good thing for us.
Hi Jim,
As mentioned in the article you could configure the time zone manually on a device and use tzutil.exe /g to get the required strings. An alternative could be to have a look at this table: https://support.microsoft.com/en-us/help/973627/microsoft-time-zone-index-values
Regards, Peter
Hello Peter. Thanks for the informative blog posts. I have referred back to your content frequently.
In this particular case, I am attempting to set the same time zone on a set of Intune enrolled devices. The MDM Diagnostic report shows the correct time zone as Central Standard Time. However, the 814 event shows String: (). I am seeing the time two hours off of what is expected. Any ideas?
Hi Ryan,
It’s been a while, but I do remember that it indeed did configure the timezone and didn’t trigger a time sync.. The device itself already did show the new timezone, right?
Regards, Peter
Hi
I am able to run the profile when users are enrolled initially as administrator however when we apply the standard user profile for Autopilot the profile will show success but the time still has not changed on the device. Its 6 hours ahead every time??
Hi Alan,
Did it change the timezone? From what I’ve seen and heard, it only adjusts the timezone and doesn’t trigger a time sync.
Regards, Peter
Hi Peter,
Is it also possible to set the Region?
I’m using autopilot and want Windows to be in English but the region in Dutch. So that date format, etc are correct.
I can’t find anything about setting region with Intune.
Thanks.
Hi Martijn,
The user has to configure that during the out-of-the-box-experience, or you have to use Windows Autopilot self-deploying mode.
Regards, Peter
Hi Peter,
As far as I can see, autopilot only has the option to set language and Region at the same time. So if I change it to dutch, the Windows language will also be Dutch.
During OOBE the user only has the option to select the keyboard when it’s connected to the LAN.
I’m trying to fix the region with register keys now.
Hi Martijn,
For some ideas you might want to have a look at this branding configuration Github repository of Michael Niehaus: https://github.com/mtniehaus/AutopilotBranding
Regards, Peter
Thanks, followed your guide and device config profile applies successfully, changing the time zone to the configured one.
Good to hear, Mirotech!
Regards, Peter
CSP is working great setting it to the company’s HQ timezone. We have run into a case where a remote user in a different time zone sets it manually, but then says time zone reverts after a reboot. Have you experienced this same behavior?
Hi Techy,
As the setting is part of the Policy CSP, that behavior wouldn’t surprise me. To be sure you can check the Event Viewer to see if the setting is applied (again).
Regards, Peter
Thanks this worked perfectly for all our Windows devices. However it didn’t work for our Surface Hubs 2S. Do you know why and is so how would we do this for these devices?
Hi Digifrost,
A Surface Hub doesn’t support all the same CSPs as normal Windows 10 devices.
Regards, Peter
Thanks for the precision. Any idea how we would do this on a Surface Hub?
I’m sorry, but I haven’t been able to do any testing on a Surface Hub recently.
Regards, Peter
Could we have two time zones in a single profile?
Or could we create another profile?
I haven’t tested that, but based on the docs I would say no.
Regards, Peter
There seems to be evidence that this setting gets permanently tattooed into Windows, and you can’t revert it completely.
We removed the policy from computers, and I can see the policy keys disappear. But our user boxes keep re applying the setting, which sucks when you have people roaming between time zones.
TLDR – you might not want to use this on users who move between time zones.
Hi Philip,
Yes, your are correct. It’s not flexible enough for roaming devices. Are you seeing any tattooed settings in the registry left?
Regards, Peter
Thanks for the great answers. Is there any way to generate a report of what the devices timezone settings are from within Intune ?
Hi Duncan,
You could just use the Advanced Diagnostics Report.
Regards, Peter
Thanks Peter,
Any thoughts on how to enable the user to change time zone, using this CSP:
./Vendor/MSFT/Policy/Config/UserRights/ChangeTimeZone
I have tried data type String (XML) and String with various values, but keep getting an error.
Event manager show The system cannot find the file specified.
Any thoughts?
Hi Arnaud,
This method will indeed prevent the user from changing it. That would require a different configuration method that only configures it once. Something like scripting for example.
Regards, Peter