Чтобы на вашем устройстве Windows показывалось правильное время, часовой пояс (time zone) на нем должен соответствовать географическому расположению компьютера. В этой статье мы рассмотрим, как задать часовой пояс в Windows из панели управления, из командной стоки, PowerShell и через групповые политики.
Содержание:
- Настройка часового пояса через панель управления Windows
- Изменить часовой пояс из командной строки с помощью TZutil
- Управление часовым поясом в Windows из PowerShell
- Настройка часового пояса Windows через GPO
Настройка часового пояса через панель управления Windows
Начиная с Windows 10 и Windows Server 2016 для настройки времени часового пояса в Windows используется отдельный раздел в панели Параметры/Settings. Выполните команду
ms-settings:dateandtime
или щелкните по значку часов в системном трее и выберите пункт Adjust date/time (Настройка времени и даты).
По умолчанию Windows пытается автоматически синхронизировать время и выбрать часовой пояс (включена опция Set time zone automatically/Автоматически устанавливать часовой пояс).
Чтобы выбрать часовой пояс вручную, нужно отключить эту опцию и выбрать пояс в выпадающем списке.
Также для управления часовым поясом можно использовать классическое окно настройки времени в Windows (команда
timedate.cpl
).
При попытке изменить часовой пояс в Windows Server 2019 и 2022 под администратором из панели управления появляется ошибка:
Date and time Unable to continue. You do not have permission to perform this task. Please contact your computer administrator for help.
Продолжение невозможно. У вас нет разрешения на выполнение этой задачи. Обратитесь за помощью к сетевому администратору.
Чтобы решить эту проблему, проверьте что у вашей учетной записи есть права на смену часового пояса. Откройте редактор локальной групповой политики (
gpedit.msc
), перейти в раздел Computer Configuration -> Windows Settings -> Security Settings -> Local Policiers -> User Rights Assignment и добавить встроенную группу Administrators в параметр Change the time zone.
После обновления настроек GPO запустите командную строку с правами администратора (!!!), выполните команду
timedate.cpl
и вы сможете изменить часовой пояс. Либо в качестве обходного решения вы можете изменить часовой пояс из командной строки.
Изменить часовой пояс из командной строки с помощью TZutil
Для управления часовым поясом в Windows можно использовать встроенную утилиту
tzutil.exe
(Windows Time Zone Utility).
Вывести идентификатор текущего часового пояса (TimeZoneID):
tzutil /g
Russian Standard Time
Выведите список всех часовых поясов с их параметрами и названиями:
tzutil /l
Если вам нужно быстро найти вывести все часовые пояса, с определенным с сдвигом, например UTC +2, выполните команду:
tzutil /l | find /I "utc+02"
Чтобы изменить текущий часовой часовой пояс (UTC+03:00) Москва, Санкт-Петербург, Волгоград – (Russian Standard Time) на (UTC+04:00) Ижевск, Самара (Russia Time Zone 3), выполните команду:
tzutil /s "Russia Time Zone 3"
Текущий часовой пояс хранится в следующей ветке реестра:
reg query HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
Если в часовом поясе предусмотрен переход на летнее время, его можно отключить. Для этого нужно указать идентификатор часового пояса с суффиксом _dstoff:
tzutil /s "Pacific Standard Time_dstoff"
Эта команда изменит часовой пояс компьютера и отключите сезонный перевод часов.
Настройки часового пояса и сезонного перевод часов можно вывести так:
w32tm /tz
Часовой пояс: Текущий:TIME_ZONE_ID_UNKNOWN Сдвиг: -180мин (UTC=LocalTime+Bias)
[Зимнее время:"RTZ 2 (зима)" Сдвиг:0мин Дата:(не указано)]
[Летнее время:"RTZ 2 (лето)" Сдвиг:-60мин Дата:(не указано)]
Управление часовым поясом в Windows из PowerShell
Чтобы узнать текущий часовой пояс Windows из PowerShell, выполните команду:
Get-TimeZone
Id : Ekaterinburg Standard Time DisplayName : (UTC+05:00) Екатеринбург StandardName : RTZ 4 (зима) DaylightName : RTZ 4 (лето) BaseUtcOffset : 05:00:00 SupportsDaylightSavingTime : True
Вывести доступные часовые пояса:
Get-TimeZone -ListAvailable
Для поиска в списке часовых поясов воспользуйтесь фильтром:
Get-TimeZone -ListAvailable | Where-Object {$_.displayname -like "*Samara*"}
Изменить часовой пояс:
Set-TimeZone -Name "Astrakhan Standard Time"
Или
Get-TimeZone -ListAvailable|? DisplayName -like "*Moscow*"|Set-TimeZone
Удаленно получить список часовых поясов на серверах Windows (список в txt файле):
$servers = get-content C:\servers.txt
Get-WMIObject -Class Win32_TimeZone -Computer $servers | select-Object PSComputerName, Caption
Изменить часовой пояс на списке серверов Windows:
$servers = get-content C:\servers.txt
Invoke-Command -ComputerName $servers -Command {Set-TimeZone "West Asia Standard Time"}
В этих примерах используется версия PowerShell 5.1, но они также работают и в более новых версиях.
Настройка часового пояса Windows через GPO
Для централизованной настройки часового пояса на компьютерах в домене Active Directory вы можете использовать групповые политики. Готовой политики для настройки часового пояса в GPO нет. Чаще всего используются следующие два варианта настройки часового пояса через GPO: с помощью logon скрипта GPO и с помощью импорта настроек часового пояса в реестр.
Для задания часового пояса через логон скрипт GPO, можете использовать простейший PowerShell скрипт (подходит для всех версий Windows):
$tmZone = "Russian Standard Time"
$WinOSVerReg = Get-Item "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
$WinOSVer = $WinOSVerReg.GetValue("CurrentVersion")
if ($WinOSVer -GE 6){
tzutil.exe /s $tmZone
} Else {
$param = "/c Start `"Change tmZone`" /MIN %WINDIR%\System32\Control.exe TIMEDATE.CPL,,/Z "
$param += $tmZone
$proc = [System.Diagnostics.Process]::Start( "CMD.exe", $param )
}
Другой способ настроек времени заключается в импорте содержимого ветки HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation с эталонного компьютера с настроенным временем на другие компьютеры через GPO. Процедура импорта ветки реестра через Group Policy Preferences описана в этой статье.
Выберите эту ветку целиком с помощью Registry Browser. В результате все настройки временной зоны будут импортированы в раздел редактора GPO (Computer Configuration -> Preferences -> Windows Settings -> Registry).
Если вы хотите использовать разные настройки временных зон для разных сайтов Acrive Directory, воспользуйтесь GPP Item Level Targeting. Привяжите настройки часового пояса к нужному сайту.
Если вы используете терминальные фермы RDS серверов, и пользователи и сервера RDSH находятся в разных часовых поясах, то в RDP сессий у пользователя будет отображаться некорректное время. Чтобы перенаправить локальный часовой пояс пользователя в RDP сессию, включите параметр GPO Allow time zone redirection (Computer Configuration > Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Device and Resource Redirection.
Network Time Protocol (NTP) is a highly scalable internet protocol that determines the best time information and synchronizes accurate settings on a computer system. This guide explains how to set the time zone and configure NTP on a Windows Server.
This guide uses Windows Server 2019, but these instructions work on any machine with Server 2016 or later.
Prerequisites
Before you begin:
- Deploy a Vultr Windows Server.
- Connect to the server.
Set the Timezone
- Using the Windows Start Menu, open Server Manager.
- Locate Time zone in the local server properties section.
- Click the current timezone, which is UTC Coordinated Universal Timeby default.
- In the Date and Time window, click Change time zone.
- Expand the Time zone drop-down list.
- Select your preferred timezone. It’s recommended to set it to your server location.
- Click OK to save changes.
- Click Apply to load changes on the server.
- Re-open Server Manager, and verify the timezone change.
Optional: Set the Timezone using PowerShell
-
From the start menu, open Windows PowerShell, or open the run dialog (Win key + R), type
powershell
in the search bar, and click OK to start PowerShell. -
Run the following command to check the server timezone.
PS > Get-Timezone
-
View all available timezones.
PS> Get-Timezone -ListAvailable
To find your target timezone, use the following command to filter by name.
PS> Get-Timezone -ListAvailable | Where-Object {$_.displayname -like "*US*"}
> The command above displays all names containing the characters
US
. You can use a different string such as London. -
Change your timezone.
PS> Set-Timezone -Name "Central Standard Time"
You can also change the timezone by ID.
PS> Set-Timezone -Id "Central Standard Time"
Configure NTP
In addition to setting the timezone, you can also configure Windows to use NTP to synchronize the time.
-
Open the Run dialog window by pressing the Windows key (WIN) + R on your keyboard.
-
In the search bar, enter
regedit
and click OK to open Registry Editor. -
Expand the registry navigation tree:
HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Services
-
Expand W32Time.
-
Click Config.
-
Select AnnounceFlags
-
Enter
5
in the Value data field. -
Click OK to save changes.
-
In the left pane, click Parameters.
Optional: Change the NTP Server
By default, Vultr uses the time.constant.com
time server, located on our high-speed infrastructure. If you want to use a different time server, you can change the value of the NtpServer
parameter by following these steps.
-
Double-click NtpServer
-
Change the value data field to your preferred value. For example, to sync with the United States NTP pool, use:
us.pool.ntp.org
You can find a list of NTP Pool servers at the official website.
-
Expand TimeProviders.
-
Click NtpServer.
-
Double click Enabled, change the value data from
0
to1
, and click OK to save changes. -
Close the registry editor, open the start menu, and search the keyword
services
. -
In the services window, scroll through the list, select Windows Time, right-click, and select Restart to apply NTP changes.
Optional: Configure NTP Using PowerShell
If you prefer to use Powershell, you can use the following commands to configure NTP.
-
Open PowerShell with administrative privileges.
-
Check the NTP time synchronization status.
PS> w32tm /query /status
-
Enter the following command to set the time AnnounceFlags to
5
.PS> Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\services\W32Time\Config" -Name "AnnounceFlags" -Value 5
-
(Optional) If you want to use NTP pool servers instead of Vultr’s NTP server, run the following command.
PS> Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\w32time\Parameters" -Name "NtpServer" -Value us.pool.ntp.org
-
Enable NTP Server.
PS> Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\NtpServer" -Name "Enabled" -Value 1
-
Restart the Windows Time service.
PS> Restart-Service w32Time
-
Test NTP synchronization.
PS> w32tm /resync
Next Steps
You have successfully set the timezone and configured NTP on Windows Server 2019. If you plan to have other machines on a Vultr VPC use your NTP server, allow port 123
in the Windows Server Firewall. For further information, refer to the following guides.
- Official NTP Documentation
- List of database TimeZones
- Configure the Firewall on Windows Server 2019
- Create A Vultr Virtual Private Cloud (VPC)
При попытке сменить часовой пояс некоторые пользователи могут столкнуться с ошибкой: «Продолжение невозможно. У вас нет разрешения на выполнение этой задачи. Обратитесь за помощью к сетевому администратору».
Есть 2 способа решения проблемы:
- Кликните «Пуск», наберите в строке поиска timedate.cpl, запустите оснастку от имени администратора, установите необходимые настройки и сохраните.
- Или разрешите изменение часового пояса в политиках безопасности. Для этого кликните «Пуск», наберите в сроке поиска gpedit.msc, запустите оснастку и перейти по адресу Конфигурация компьютера —> Конфигурация Windows —> Параметры безопасности —> Назначение прав пользователя. Откройте политику «Изменение часового пояса» и добавьте пользователя Admin. Сохраните настройки и перезагрузить облачный сервер.
Дата обновления 19.06.2024
Отметим, что часовой пояс, как и дата/время, является одним из значимых параметров компьютера, влияющих на правильное функционирование Windows и различных приложений. Рекомендуется устанавливать часовой пояс в соответствии с географическим положением компьютера.
Предоставление прав на изменение часового пояса в Windows.
Чтобы ограничить права пользователей на изменение часового пояса, необходимо открыть локальную политику безопасности через командную строку с помощью команды: secpol.msc В открывшемся окне перейдите по пути: Security Settings -> Local Policy -> User Rights Assignment -> Change the time zone (Изменение часового пояса).
Чтобы ограничить права пользователей на изменение часового пояса, необходимо удалить ‘Users’ из списка учетных записей пользователей. В Windows Server изменять часовой пояс могут пользователи из групп ‘Local Service’ и ‘Administrators’.
Изменение часового пояса в Windows / Windows Server.
Изменение часового пояса в графическом интерфейсе Windows
В операционных системах Windows 10 и Windows Server 2019/2016 для настройки времени и часового пояса можно:
— перейти в раздел «Настройки» через меню «Пуск»;
— перейти в раздел «Параметры», щелкнув правой кнопкой мыши по значку часов на панели задач, где можно выбрать опцию «Настроить дату и время»;
*Поумолчанию опция «Устанавливать время автоматически» будет отмечена. Вы можете отключить эту опцию и вручную выбрать нужный часовой пояс из выпадающего списка.
— Запустите timedate.cpl из cmd, и он откроет окно настроек времени Windows, где вы можете указать часовой пояс с помощью кнопки «Изменить часовой пояс».
Изменение часового пояса из cmd с помощью утилиты TZUtil
Откройте командную строку cmd.exe
* Отметим, что утилита tzutil.exe подходит для Windows 10/11, Windows Server 2016/2019/2022
Сначала определите текущий часовой пояс и его идентификатор (TimeZoneID). Для этого введите команду:
tzutil /g
Если вы не уверены в точном названии нужного часового пояса, выведите список всех часовых поясов с их названиями и идентификаторами с помощью следующей команды:
tzutil /l
Вы также можете найти актуальный список часовых поясов Windows у Microsoft.
Чтобы изменить текущий часовой пояс, укажите идентификатор нового часового пояса в следующем формате:
tzutil /s "GTB Standard Time"
В реестре Windows можно проверить текущий часовой пояс:
reg query HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
Чтобы отключить переход на летнее время для определенной зоны, необходимо указать идентификатор часового пояса с окончанием: _dstoff
tzutil /s "GTB Standard Time_dstoff"
Чтобы отобразить полную информацию о часовом поясе и настройках сезонных часов, введите следующую команду :
w32tm /tz
Изменение часового пояса с помощью PowerShell
Чтобы определить текущий часовой пояс в консоли PowerShell, используйте одну из следующих команд:
[TimeZoneInfo]::Local
Get-TimeZone
Чтобы просмотреть список всех доступных часовых поясов в консоли PowerShell, вы также можете использовать одну из следующих команд:
Get-TimeZone -ListAvailable
[System.TimeZoneInfo]::GetSystemTimeZones()
Список всех часовых поясов достаточно велик, поэтому для удобства рекомендуется использовать фильтр, в котором указывается часть названия, например:
Get-TimeZone -ListAvailable | Where-Object {$_.Id -like "*FLE*"}
Чтобы изменить текущий часовой пояс из консоли PowerShell, введите команду:
Set-TimeZone -Name "FLE Standard Time"
*укажите название нужного часового пояса в кавычках.
Have you just installed Windows Server 2022 Desktop Experience edition, and found it’s configured to US time and can’t change it?
Open an elevated command prompt (Start Menu > type cmd
> right click > Run as Administrator
)
Enter timedate.cpl
to open the old Time & Date applet…
And change the settings to whatever is appropriate…