Automation using Group Policy – Configure Time Zone using GPOs

Setting the time zone on a server was often a manual step during the “Out of Box Experience” (OOBE). Let’s Configure Time Zone using GPOs as it might be something we forget about until the first log entries showed up with the wrong timestamps or we RDPed into the server for the first time.

No template to Configure Time Zone using GPOs?

Yes, there isn’t a dedicated “Administrative Template” for setting the Time Zone in Windows (even in Server 2025). Microsoft expects you to handle this via localization settings during deployment or via scripts.

Let’s do fix that and build a simple GPO to force the Europe/Berlin time zone on all our servers. This will get less “beautiful” as you might think and want the solution to be.

If you haven’t used Group Policy Objects (GPOs) that much, please start reading my initial blog posts “Group Policies and Group Policies Preferences” and “Automation using Group Policy – Background” to understand the foundation.

Configuring Settings using Startup Scripts with GPOs

While you could fiddle with Registry Preferences (HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation), that is the hard way. It’s prone to errors and doesn’t always trigger an immediate system update.

The most robust method for Windows Server 2025 is a Startup Script using the built-in and hardly known tzutil command or PowerShell. It’s lightweight, native, and “just works.”

Create the GPO

  1. Open the Group Policy Management Console (GPMC).
  2. Right-click your desired OU and select Create a GPO in this domain, and Link it here….
  3. Name it: LAB-Compurer-Settings-Time-Servers

Configure the Startup Script

  1. Right-click the new GPO and select Edit.
  2. Navigate to: Computer Configuration > Preferences > Control Panel Settings > Scheduled Task
  3. Right-click New > Scheduled Task (At least Windows 7).

Important: I have tried multiple ways using the often suggested Start Script approach to set the time zone in a reliable way. For me only the approach using the GPP -> created scheduled task option worked reliable.

See the settings for my approach below. I am using the following powershell command:

powershell.exe -ExecutionPolicy Bypass -Command "Set-TimeZone -Id 'W. Europe Standard Time'"

Important: The ID for “Europe/Berlin” in Windows is “W. Europe Standard Time”. Do not use the IANA name (“Europe/Berlin”) directly, as Windows won’t recognize it in these commands.

Apply and Verify

Run gpupdate /force on a test server and see if you can see the scheduled task. If you see it you can run it and it will take effect immediately.

How to Find the Right Time Zone Names

You might be wondering, how to find the correct ID for other regions?

In the Linux world, we use IANA names like Europe/Berlin or America/New_York. Windows, however, uses its own “Time Zone IDs.” If you try to push a GPO with the wrong name, nothing will happen.

The Modern Way (PowerShell)

On any Windows Server 2025 machine, open PowerShell and run:

PowerShell

Get-TimeZone -ListAvailable

This will dump every available time zone. To find the specific ID for a German time zone, filter the list:

PowerShell

Get-TimeZone -ListAvailable | Where-Object {$_.DisplayName -like "*Berlin*"}

Output:

Plaintext

Id                         : W. Europe Standard Time
DisplayName                : (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
StandardName               : W. Europe Standard Time
DaylightName               : W. Europe Daylight Time

The Id property (in this case W. Europe Standard Time) is exactly what you need to copy into your GPO.

Powershell List Timezones
Powershell List Timezones

The Traditional Way (Command Prompt)

If you are on a Core server without PowerShell loaded (rare these days, but possible), use the tzutil tool:

DOS

tzutil /l

This lists all IDs. It’s a long list, so you might want to pipe it to a file or search visually.

tzutil timezone list
tzutil timezone list

Sources and more to read

For anything powershell related I suggest the content from Harm Veenstra. Follow him on LinkedIn and check his website PowerShell is fun 🙂

Check out the other three storiers around GPO Automation using Group Policy – Allow Ping on Windows Server 2025, Quality of Life GPO and Enable Azure Arc Auto Updates using WSUS and GPOs.

Conclusion on Configure Time Zone using GPOs

While often a startup script is used to Configure Time Zone using GPOs, I prefer to take an approach with a scheduled task and powershell. If you use my prefered AD OU structure, than you can create and assign GPOs per time zone of your organization to automatically configure all your servers into the correct time zone .

Important: I really tried getting the Startup Scripts options to work and failed. This is my failback option and maybe someone else finds this useful. If you know more elegant ways, always let me know and I am willing to update the documentation and give you credits.

If you have any questions please don’t hesitate to reach out to me on LinkedIn, Bluesky or check my newly created Adaptive Cloud community on Reddit.

LinkedIn: https://www.linkedin.com/in/andreas-hartig/
Bluesky: https://bsky.app/profile/hartiga.de
Adaptive Cloud community on Reddit: https://www.reddit.com/r/AdaptiveCloud/

Avatar for Andreas Hartig
Andreas Hartig - MVP - Cloud and Datacenter Management, Microsoft Azure

Related Posts

the IT Operations dragon looking at multiple screens with Group Policies on them and the GPO Policy Analyzer checking them all

How to use the GPO Policy Analyzer

Managing Group Policy Objects across a complex Active Directory environment has always been a challenge. Administrators often inherit hundreds of GPOs with overlapping configurations, stale settings, and hidden conflicts. Finding…

Read more
WAU Happy Dragons crazy about 110 percent security

Schedule Winget Auto Updates for operational usage

Deploying Winget Auto Updates (WAU) gives you a functional update baseline, for full functionality we need to configure more to get ready for production. If servers query the Winget repository…

Read more
WAU Happy Dragons about improved security

Centralized Software Patch Management: Deploying Winget Auto Updates (WAU) via Active Directory GPO

Deploying Winget Auto Updates for Software Patch Management for managing third-party software updates across an IT infrastructure typically requires expensive enterprise solutions. This article provides a technical guide on how…

Read more
Stay Hydrated Drink enoughv2

GPO Central Store – Help! My PolicyDefinitions Folder is missing

Your PolicyDefinitions Folder is missing? The GPO Central Store is key for Managing Group Policy Objects (GPOs) across multiple domain controllers can introduce configuration drift if administrative templates are not…

Read more
A single control plane for LAPS using AzureArc

Legacy LAPS vs. Windows LAPS vs. LAPS for Azure Arc

LAPS for Azure Arc is the new shining star, after for years, IT teams relied on the classic, legacy Microsoft LAPS tool. Microsoft then integrated Windows LAPS directly into the…

Read more
Dragons looking at AccountLockout Tool

AD Account Lockout (Free Tool)

The AD Account Lockout tool is free and very valuable in troubleshooting account lockouts in Active Directory. This is a task as old as the directory service itself. Even in…

Read more