Set Time Zone to Automatic on Windows using Intune

You can configure the time zone on Intune-managed Windows 10/11 devices through Intune. You have the option to either set the time zone automatically or manually configure it based on specific regions. You can configure it during Autopilot OOBE or after the Autopilot has been completed.

For example, if your organization operates across multiple geographic regions and you’ve grouped devices into different Entra security groups for each region, you can create a time zone settings catalog policy in Intune for each region and set the local time zone accordingly.

Setting the time zone to automatic means that you will not have to worry about creating Entra security groups and also you do not have to manage multiple Time zone policies for each region.

In this blog post, we’ll explore both scenarios and walk through the steps to configure the time zone on end-user devices. Let’s take a look.

Manual Time Zone Configuration using Intune

Manual time zone refers to the process of individually setting the time zone for each region using a Settings catalog policy. You may require Entra security group containing devices for each region and then create a separate policy for each region.

  • Sign in to the Intune admin centerDevices Configuration > Create > New Policy. Select Platform as Windows 10 and later > Profile type as Settings Catalog.
  • On the Basics tab, Provide a Name and Description of the Policy. Click on Next to proceed to the Configuration settings.

Configuration Settings

  • Click on + Add settings > Settings picker > Search for time zone
  • Select or check the box labeled Configure Time Zone
  • Enter the Time Zone ID value in the text box. For instance, you can input Mountain Standard Time.

To find the Time Zone ID of any country, Jump to the section: How to find the Time Zone ID of any country.

Configure Time Zone policy in Settings catalog
Configure Time Zone policy in Settings catalog
Configure Time Zone policy in Settings catalog
Configure Time Zone policy in Settings catalog
  • Assignments – Click Add groups and select the Entra security group containing Windows 10/11 devices. As a best practice, start with a group with test devices and once testing proves successful, you can expand the deployment by including additional devices in the group.
  • Review + Create – Review the deployment and click on Create to start the deployment process.

End-user Experience

To speed your testing, manually kickstart Intune sync using GUI or PowerShell.

I first tested the manual time zone configuration method and confirmed if the time zone is set as per the policy. This device was set to GMT Standard Time. After applying this policy it changed to Mountain Standard Time. The device now reflects the updated time zone as Mountain Standard Time when checked using the tzutil /g command.

Confirm the changes as per policy using tzutil /g
Confirm the changes as per policy using tzutil /g

Configure Time Zone on Windows to Automatic

You can follow the steps below to set the time zone on Windows devices to automatic using the Intune Admin Center:

Step 1:

Microsoft have recommended to enable the location services for applications using the Policy CSP: Privacy/LetAppsAccessLocation. Therefore, first step will be to use a Settings catalog policy and set it to Force allow. Let’s see how:

  • Sign in to the Intune admin centerDevices Configuration > Create > New Policy. Select Platform as Windows 10 and later > Profile type as Settings Catalog.
  • On the Basics tab, Provide a Name and Description of the Policy. Click on Next to proceed to the Configuration settings.

Configuration Settings

  • Click on + Add settings > Settings picker > Search for let apps access location
  • Select or check the box labeled Let Apps Access Location and set it to Force allow.
Let Apps Access Location Settings Catalog Policy
Let Apps Access Location Settings Catalog Policy
  • Assignments – Click Add groups and select the Entra security group containing Windows 10/11 devices. As a best practice, start with a group with test devices and once testing proves successful, you can expand the deployment by including additional devices in the group.
  • Review + Create – Review the deployment and click on Create to start the deployment process.

Step 2:

Set below registry keys and values:

  1. Set this registry value HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tzautoupdate\Start as below to Enable/Disable automatic time zone on Windows device.
ValueData
3Enable Set time zone automatically
4Disable Set time zone automatically
  1. Set the Location entry value HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location\Value to enable Location services.
DataMeaning
AllowLocation Service ON
DenyLocation Service OFF

There are various ways to set registry values using Intune. You can use a Powershell script or you can use Intune device remediations. Today, I will be using Powershell script as this is rather a simple change and chances for configuration drift are low. However, If you want to use Intune device remediations for this, you can do that as well.

  • Sign in to the Intune admin centerDevices > Scripts and remediations > Platform scripts.
  • Click on Add > Select Windows 10 and later from the drop-down.
  • On the Basics tab, Provide a Name and Description of the Policy. Click on Next to proceed to the Script settings.

Script settings

Create a Powershell script file using the code below. You can also download the code from my Github Page: Configure Time Zone to Automatic – GitHub.

  • Save below code into a file called Timezone_Automatic.ps1.

Timezone_Automatic.ps1

<#
.SYNOPSIS
    This script checks specific registry paths and values. If the values are missing or incorrect,
    it updates or creates them with the desired values.
    
.DESCRIPTION
    The script loops through a list of registry paths and values. It verifies whether the current values
    match the desired values, and if not, it updates them. If the registry path or value does not exist,
    it creates them.

.PARAMETER $registrySettings
    A list of registry settings that include the path, name, and desired value to check and set.

.NOTES
    Author: Jatin Makhija
    Copyright: Cloudinfra.net
    Version: 1.0
    
.EXAMPLE
    Running the script will check the following:
    - Path: "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location"
      Name: "Value"
      Desired Value: "Allow"
      
    - Path: "HKLM:\SYSTEM\CurrentControlSet\Services\tzautoupdate"
      Name: "Start"
      Desired Value: 3

    It will create or update these registry values if necessary.
#>

# Define the list of registry settings with paths, names, and desired values.
$registrySettings = @(
    @{ Path = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location"; Name = "Value"; DesiredValue = "Allow" },
    @{ Path = "HKLM:\SYSTEM\CurrentControlSet\Services\tzautoupdate"; Name = "Start"; DesiredValue = 3 }
)

# Foreach loop
foreach ($setting in $registrySettings) {

    # test if the registry path exists
    if (Test-Path $setting.Path) {

        # get the current value of the registry key
        $currentValue = (Get-ItemProperty -Path $setting.Path -ErrorAction SilentlyContinue).$($setting.Name)

        # If the current value is not the desired value, update it
        if ($currentValue -ne $setting.DesiredValue) {
            Set-ItemProperty -Path $setting.Path -Name $setting.Name -Value $setting.DesiredValue
            Write-Host "Updated or created $($setting.Name) in $($setting.Path) with value $($setting.DesiredValue)"
        } else {
            # If the current value is already correct, do nothing
            Write-Host "$($setting.Name) in $($setting.Path) is already set to $($setting.DesiredValue)"
        }

    } else {
        # If the registry path does not exist, log a warning
        Write-Warning "Registry path $($setting.Path) does not exist."
    }
}
  • Script location – Browse to the script location and select the script file.
  • Run this script using the logged on credentials – No
  • Enforce script signature check – No
  • Run script in 64 bit PowerShell Host – Yes
Upload Powershell script to change Time zone to automatic on Intune
Upload Powershell script to change Time zone to automatic on Intune
  • Assignments – Click Add groups and select the Entra security group containing Windows 10/11 devices. As a best practice, start with a group with test devices and once testing proves successful, you can expand the deployment by including additional devices in the group.
  • Review + Add – Review the deployment and click on Create to start the deployment process.

Verify Powershell Script Execution

To quickly test and confirm whether the PowerShell script execution was successful or failed, reboot one of the target devices and wait for a couple of minutes. Then, check the registry entries using the Registry Editor (regedit) and ensure they are updated to the correct value.

  • HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location should be set to Allow
  • HKLM:\SYSTEM\CurrentControlSet\Services\tzautoupdate\Start should be set to 3.

Alternatively, you can open the IntuneManagementExtension.log file and search for the Policy ID associated with the Intune deployment. Review the logs for more information about the script execution. If the registry values have been updated as specified in the script, it indicates that the script executed successfully. Checking the IME log file is optional.

Verify Powershell script execution from Intunemanagementextension.log file
Verify Powershell script execution from Intunemanagementextension.log file
Confirm if the registry values are updated as per the powershell script
Confirm if the registry values are updated as per the powershell script

End User Experience

After the Settings catalog policy is applied and Powershell script is also executed on the target device.

  • Go to the Settings App > Privacy & security > Location to check if Let apps access your location is enabled and greyed out. You will find a banner message on the top confirming that Some of these settings are managed by your organization.
Let apps access Location is enabled by Intune and greyed out
Let apps access Location is enabled by Intune and greyed out
  • Go to Settings App > Time & Language > Date & time and confirm if Set time zone automatically setting is enabled on the device.
Set time zone automatically is enabled
Set time zone automatically is enabled

Find the Time Zone ID of any country

When you decide to go with manually setting time zone then you will need to find the Time Zone ID for each region. You can find the Time Zone ID using various methods. Let’s take a look:

1. Using Windows time zone utility (tzutil.exe)

The Windows Time Zone utility, known as tzutil.exe, is a small program located at C:\ WINDOW\Ssystem32\tzutil.exe. It is integrated into Windows 10 and 11 devices and provides easy access to time zone settings.

To check the Time Zone ID of your device using the tzutil.exe command, please follow these steps:

  • Click on the Start button and search for Command Prompt.
  • In the Command Prompt window, type the following command: tzutil /g.
  • This will provide the current time zone ID set on your device.
tzutil /g
tzutil /g
  • To find the Time Zone ID for any country, you can use the command tzutil /l. This command will provide a list of available time zones, and you can identify the one you need for configuration.
  • Use tzutil /l | more to display one output screen at a time.
tzutil /l | more
tzutil /l | more

2. Using Powershell to find the Time Zone ID

You can also utilize PowerShell cmdlets to obtain Time Zone ID information for your device or any country. The Get-Timezone cmdlet is a useful tool for straightforwardly retrieving this information.

Get-Timezone

get-timezone -ListAvailable | ft DisplayName, Id
Get-Timezone
Get-Timezone

3. Using Registry Editor to find Time zone ID

Another method for obtaining Time Zone ID information for your device is by using the Registry Editor (regedit). You can check for the specific registry key associated with time zone information and locate its value to get Time Zone ID information for your device.

  • Click on Start and search for Registry Editor.
  • In the Registry Editor, navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation.
  • On the right-hand side, look for the TimeZoneKeyName registry entry.
  • The value of TimeZoneKeyName represents the Time Zone ID currently configured on your device.

4. Using Microsoft documentation (TimeZones)

The easiest way to find Time Zone ID information for any country is to use the TimeZone link, which offers a table with this data. You can bookmark the page for quick access later on.

Conclusion

In this blog post, we have covered different scenarios for setting time zone on Windows devices which are being managed by Intune. You can set time zone to a specific value or automatic based on your requirement. Hope this guide was Informative and helpful in providing guidance on Time zone configuration via Intune.

Leave a Comment