For your Windows device to display the correct time, the time zone set on the device must match the geographical location of your computer. This article explains how to set the time zone in Windows Server and desktop editions (Windows 10 or 11) by using Control Panel, command prompt, PowerShell, or Group Policy.
Change the Time Zone in Windows Using the Control Panel
Starting with Windows 10 and Windows Server 2016, a separate section of the Settings panel is used to set the time zone. Run the command ms-settings:dateandtime
or click the clock icon in the system tray and select Adjust date/time.
By default, Windows automatically synchronizes the time and selects the appropriate time zone for your computer (the Set time zone automatically option is enabled).
To manually set a time zone, disable this option and select a time zone from the drop-down list.
You can also use the classic “Date and Time” Control Panel applet to manage time zone on Windows (run the command timedate.cpl
An error occurs when you try to change the time zone in Windows Server 2019 and 2022:
Date and time Unable to continue. You do not have permission to perform this task. Please contact your computer administrator for help.
In this case, make sure that your account has permissions to change the time zone settings in Windows. Open the local Group Policy editor (gpedit.msc
), navigate to Computer Configuration -> Windows Settings -> Security Settings -> Local Policiers -> User Rights Assignment and add the built-in Administrators group to Change the time zone policy.
After updating your GPO settings, run the command prompt as an administrator (!!!), run the timedate.cpl
command, and you can now change your current time zone. As a workaround, you can change the time zone from the command prompt. This is described in the following section.
How to Change the Time Zone in Windows CMD
To manage the time zone in Windows, use the built-in tzutil.exe (Windows Time Zone Utility) command line tool.
Get the current time zone identifier (TimeZoneID):
In this example, Pacific Standard Time is the current time zone identifier.
List all time zones with their names and settings:
If you want to quickly find all and display all time zones with a specific offset (for example, with an UTC -6
offset), run the command:
tzutil /l | find /I "utc-06"
Change the current time zone to (UTC-05:00) Eastern Time (US & Canada):
tzutil /s "Eastern Standard Time"
The following registry key contains the current time zone set in Windows:
reg query HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
To disable daylight saving time for a specific time zone, you must specify the time zone identifier with the suffix _dstoff:
tzutil /s “Central European Standard Time_dstoff”
This command changes the computer’s time zone and disables the seasonal clock change.
You can view all time zone settings, including daylight saving time, as follows:
w32tm /tz
Time zone: Current:TIME_ZONE_ID_UNKNOWN Bias: 480min (UTC=LocalTime+Bias) [Standard Name:"Pacific Standard Time" Bias:0min Date:(unspecified)] [Daylight Name:"Pacific Standard Time" Bias:0min Date:(unspecified)]
Setting the Time Zone from PowerShell
To check the current Windows time zone using PowerShell, run the command
Get-TimeZone
Id : Pacific Standard Time DisplayName : (UTC-08:00) Pacific Time (US & Canada) StandardName : Pacific Standard Time DaylightName : Pacific Standard Time BaseUtcOffset : -08:00:00 SupportsDaylightSavingTime : False
List available time zones:
Get-TimeZone -ListAvailable
You can use filter to search through the list of time zones:
Get-TimeZone -ListAvailable | Where-Object {$_.displayname -like "*canada*"}
Set a new time zone on Windows:
Set-TimeZone -Name "US Eastern Standard Time"
or
GetTimeZone -ListAvailable|? DisplayName -like "*Berlin*"|Set-TimeZone
Query a list of remote Windows Server hosts for their time zone settings (list in txt file):
$servers = get-content C:\ps\server_list.txt
Get-WMIObject -Class Win32_TimeZone -Computer $servers | select-Object PSComputerName, Caption
Set the time zone in the list of remote Windows computers:
$servers = get-content C:\ps\server_list.txt
Invoke-Command -ComputerName $servers -Command {Set-TimeZone "West Asia Standard Time"}
Configuring the Time Zone with Group Policy
You can centrally configure the time zone on computers joined to an AD domain through Group Policy. The GPO has no built-in policy parameters to configure the time zone. The two most common ways to set the time zone via GPO are as follows: using a GPO logon script or by importing time zone settings into the registry.
To set the time zone using a GPO logon script, you can use a simple PowerShell script (it works with all Windows versions):
$timeZone = "Central Europe Daylight Time"
$WinOSVerReg = Get-Item "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
$WinOSVer = $WinOSVerReg.GetValue("CurrentVersion")
if ($WinOSVer -GE 6){
tzutil.exe /s $timeZone
} Else {
$params = "/c Start `"Change timeZone`" /MIN %WINDIR%\System32\Control.exe TIMEDATE.CPL,,/Z "
$params += $timeZone
$proc = [System.Diagnostics.Process]::Start( "CMD.exe", $params )
}
Another way to set the time zone is to import the contents of the HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation key from the reference computer with the correct time settings configured to other computers via GPO. This article describes how to import the registry parameters via Group Policy.
Select this entire reg key using the Registry Browser. This will import all time zone settings into the GPO editor (Computer Configuration -> Preferences -> Windows Settings -> Registry).
Use GPP Item Level Targeting if you want to assign different time zone settings to computers in different Active Directory sites.
If you are using terminal RDS farms and the users and the RDSH servers are located in different time zones, the RDP sessions will display the wrong time to the user. To redirect the user’s local time zone to the RDP session, enable the GPO option Allow time zone redirection (Computer Configuration > Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Device and Resource Redirection).
5 comments
gracias! excelente articulo, funciona la GPO.!
saludos
el ultimo sript en powershell no funciona!!
No se puede cargar el archivo C:\Users\kav\Desktop\CambiaZonaXP7.ps1 porque en el sistema está deshabilitada la ejecución de scripts. Vea “get-help about_signing”
para obtener más información.
At line:0 char:0
First you need to allow execution of unsigned ps scripts by entering:
set-executionpolicy remotesigned
Wow! it actually worked. I had this weird problem which it wouldn’t let me change the time in Settings.
As Justin, my system (a 2019 dc) wouldn’t let me change the time zone through any of the GUI widgets. Thanks for the pointer to tzutil.exe. BTW many of us must invoke TZutil with a parameter ” Standard Time” even when DST is in effect, MS adroitly dodging an opportunity to reduce confusion.