Смена часового пояса в Windows Server 2019
Posted on 22/03/2019 by sie
В Windows Server 2019 RTM есть есть раздражающий баг: невозможно изменить часовой пояс через GUI остастки — ошибка «Permission denied». Это не работает как в новой оснастке Settings, так и в старой Control Panel.
В новых превью версиях баг исправлен.
Обсуждение https://social.technet.microsoft.com/Forums/en-US/5dd32886-56ec-433c-8168-78d8391dfa29/found-a-bug-already-unable-to-set-time-zone?forum=WinServerPreview
Обходные пути:
tzutil /l tzutil /s "Select Your Timezone"
Get-TimeZone -ListAvailable Set-TimeZone -Id "Ekaterinburg Standard Time"
Filed under: Без рубрики, Windows | Tagged: Windows |
Обновлено 16.08.2021
Добрый день! Уважаемые читатели и гости одного из крупнейших русскоязычных IT блогов Pyatilistnik.org. В прошлый раз мы с вами разобрали, как производится подключение к удаленному рабочему столу с ноутбука или компьютера, на котором установлена Windows 10. Идем дальше и поговорим про смену часовых поясов в Windows Server 2019, вроде простая вещь, но вы легко можете столкнуться с ситуацией, что имея административные права вы просто не можете это сделать с помощью штатных средств, получая ошибку «У вас нет разрешения на выполнение этой задачи. Обратитесь за помощью к сетевому администратору«.
Ошибка при изменении часового пояса в Windows Server 2019
Случился со мной интересный случай, я развернул Windows Server 2019 на двух новых серверах Dell Power Edge R740, исправил на них ошибку в работе Nic Teaming и перешел к настройке кластера под MS SQL 2019. После того, как кластер был развернут я заметил, что по какой-то причине у меня на серверах отображается не правильное время, хотя в локальной сети есть NTP сервер. Я для быстроты настройки решил просто в ручном режиме выбрать нужный часовой пояс, но настройки почему-то не сохранялись, а при попытке их выбрать через оснастку «Дата и время» я получал ошибку:
You do not have permission to perform to perform this task. Contact your network administrator for help
В русском варианте это звучит вот так:
«У вас нет разрешения на выполнение этой задачи. Обратитесь за помощью к сетевому администратору».
Самое интересное, что политик в явном виде на эти сервера не прилетало и я имел в системе полные, административные права. Давайте разбираться, как установить часовой пояс в Windows Server 2019 и выше.
Настройка часового пояса через панель «Параметры Windows»
Самый базовый метод выбора нужного часового пояса, это через окно «Параметры Windows«, чтобы в него попасть просто нажмите одновременно клавиши Win и I.
Далее вы выбираете «Дата и время«, где в поле «Изменить дату и время» вы можете установить необходимый часовой пояс, но в моем случае, данная настройка просто не сохранялась, поэтому пришлось вернуться, к старому, проверенному методу.
Как поменять часовой пояс через классическую оснастку «Дата и время»
Второй рабочий метод позволяющий задать нужный часовой пояс и время, является вызов классического окна «Дата и время«, я буду использовать его потому, что в панели управления Windows Server 2019 исчезла вкладка «Местоположение«, которая помогала в нашей задаче.
Откройте обязательно командную строку или оболочку PowerShell от имени администратора, чтобы не получать ошибку «У вас нет разрешения на выполнение этой задачи. Обратитесь за помощью к сетевому администратору» и введите команду:
В результате у вас будет классическое окно для установки даты и времени, которое Microsoft тщательно скрыло. Теперь выставите без проблем нужный вам часовой пояс.
Как настроить часовой пояс через командную строку
В командной строке есть утилита tzutil.exe, которая используется для изменения часового пояса. Ее использование относительно простое. Так же запустите командную строку в режиме администратора и введите:
В результате вы получите список доступных часовых поясов. Вам необходимо найти нужный, в моем случае, это «UTC+03:00) Moscow, St. Petersburg Russian Standard Time».
Кстати если вы точно знаете ключевое слово, то можете его использовать, например вот так:
tzutil /l | findstr Moscow
Кстати если добавите ключ _dstoff, то можно отключить переход на летнее время для конкретного пояса
Теперь установим данный часовой пояс в нашей Windows Server 2019.
tzutil /s «(Russian Standard Time»
Как настроить часовой пояс через PowerShell
Давайте попробуем изменить часовой пояс через средства оболочки PowerShell. Для этой цели служат командлеты Get-TimeZone и Set-TimeZone. Давайте для начала найдем нужный нам часовой пояс, для этого введите:
Get-TimeZone -ListAvailable | where DisplayName -like «*Moscow*»
Как видим нужный нам часовой пояс имеет StandardName «Russia TZ 2 Standard Time».
Далее установим нужный нам часовой пояс, для этого вводим команду:
Set-TimeZone -Name «Russia TZ 2 Standard Time»
Можно и такой конструкцией:
Get-TimeZone -ListAvailable | ? DisplayName -like «*Moscow*» | Set-TimeZone
Настройка часового пояса через реестр Windows
Давайте я еще покажу, что именно меняется в реестре, когда вы задаете нужный часовой пояс. В окне выполнить введите regedit, далее идем в ветку:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Control\TimeZoneInformation
тут есть ключ «TimeZoneKeyName» с типом REG_SZ и значением, в моем примере, это московское время «Russian Standard Time».
Настройка часового пояса через групповую политику
Если вы захотите с помощью средств GPO настроить нужный часовой пояс на серверах с Windows Server 2019, то вам в политике просто нужно создать ключ реестра с нужным значением, который я описал выше. Если у вас на RDS ферме пользователи разных часовых поясов, то для их удобства вы можете брать время на RDSH хосты с их систем откуда они подключаются, для этого воспользуйтесь групповой политикой
«Разрешить перенаправление часового пояса (Конфигурация компьютера> Политики -> Административные шаблоны -> Компоненты Windows -> Службы удаленного рабочего стола -> Узел сеанса удаленного рабочего стола -> Перенаправление устройств и ресурсов (Allow time zone redirection (Computer Configuration > Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Device and Resource Redirection)».
Так, что если вы видите в системе ошибку «У вас нет разрешения на выполнение этой задачи. Обратитесь за помощью к сетевому администратору», это еще не значит, что у вас нет прав. На этом у меня все, с вами был Иван Сёмин, автор и создатель IT портала Pyatilistrnik.org.
Часовой пояс (Time zone), наряду с временем и датой, это один из критический параметров компьютера. Для корректной работы Windows/прикладных программ и правильного отображения времени в системе, часовой пояс должен быть установлен в соответствии с географическим расположением компьютера. В этой статье мы рассмотрим, как изменить часовой пояс в Windows из графического интерфейса, командной строки, консоли PowerShell и с помощью групповых политик.
В Windows 10 и Windows Server 2019/2016 для настройки времени и часового пояса используется новое окно в приложении (Параметры/Settings). Вы можете установить часовой пояс из графического интерфейса, щелкнув правой кнопкой по значку часов в системном трее и выбрав пункт Adjust date/time (Настройка времени и даты). По умолчанию Windows пытается автоматически выбрать часовой пояс (включена опция Set time zone automatically/Автоматически устанавливать часовой пояс). Вы можете отключить эту опцию и задать нужный часовой пояс вручную, выбрав его в выпадающем списке.
Также вы можете вызвать классическое окно настройки времени в Windows, выполнив команду
timedate.cpl
.
Содержание:
- Назначаем права на изменение часового пояса в Windows
- Утилита TZUtil: изменить часовой пояса из командной строки Windows 10
- Управление часовым поясом в Windows из PowerShell
- Настройка часового пояса через GPO
- Ошибка при изменении часового пояса в Windows Server 2019
Назначаем права на изменение часового пояса в Windows
По-умолчанию смена часового пояса в Windows 10 не требует от пользователя наличия прав администратора (в отличии от смены времени/даты). Вы можете запретить пользователям менять часовой пояс с помощью локальной политики безопасности (Local Security Settings —
secpol.msc
). Интересующая нас настройка находится в разделе Security Settings -> Local Policy -> User Rights Assignment (Параметры безопасности -> Локальные политики -> Назначение прав пользователя). Политика называется Change the time zone (Изменение часового пояса). По умолчанию изменить часовой пояс в Windows 10 может сама система, администраторы и все пользователи. Чтобы запретить простым пользователям самим менять часовой пояс, необходимо удалить Users из списка учетных записей в этой политике.
В Windows Server право на изменение часового пояса есть только у Local Service и администраторов.
Утилита TZUtil: изменить часовой пояса из командной строки Windows 10
Для смены часового пояса в Windows 11/10/8.1, Windows Server 2019/2016/2012 R2/ используется специальная утилита командной строки tzutil.exe (Windows Time Zone Utility), впервые появившаяся в Windows 7. Исполняемый файл утилиты хранится в каталоге
%WINDIR%\System32
.
Разберемся с возможностями и особенностями использования утилиты TZUtil.
Откройте командную строку (
cmd.exe
). Чтобы узнать текущий часовой пояс и его идентификатор (TimeZoneID), выполните команду:
tzutil /g
В данном примере Russian Standard Time это идентификатор текущего часового пояса:
Выведите список всех часовых поясов с их названием и идентификаторами:
tzutil /l
Dateline Standard Time UTC-11 Aleutian Standard Time Hawaiian Standard Time Marquesas Standard Time Alaskan Standard Time UTC-09 UTC-08 Pacific Standard Time (Mexico) Pacific Standard Time US Mountain Standard Time Mountain Standard Time Mountain Standard Time (Mexico) Central Standard Time (Mexico) Canada Central Standard Time Central America Standard Time Central Standard Time Easter Island Standard Time SA Pacific Standard Time Eastern Standard Time Cuba Standard Time Haiti Standard Time US Eastern Standard Time Turks And Caicos Standard Time Eastern Standard Time (Mexico) Paraguay Standard Time Atlantic Standard Time SA Western Standard Time Venezuela Standard Time Central Brazilian Standard Time Pacific SA Standard Time Newfoundland Standard Time Tocantins Standard Time E. South America Standard Time Argentina Standard Time Greenland Standard Time SA Eastern Standard Time Montevideo Standard Time Magallanes Standard Time Bahia Standard Time Saint Pierre Standard Time UTC-02 Mid-Atlantic Standard Time Azores Standard Time Cape Verde Standard Time UTC GMT Standard Time Morocco Standard Time Greenwich Standard Time W. Europe Standard Time Central Europe Standard Time Romance Standard Time Central European Standard Time W. Central Africa Standard Time Sao Tome Standard Time Jordan Standard Time GTB Standard Time Middle East Standard Time FLE Standard Time Namibia Standard Time Syria Standard Time Israel Standard Time Egypt Standard Time Kaliningrad Standard Time E. Europe Standard Time West Bank Standard Time Libya Standard Time South Africa Standard Time Sudan Standard Time Arabic Standard Time Arab Standard Time Belarus Standard Time Russian Standard Time E. Africa Standard Time Turkey Standard Time Iran Standard Time Arabian Standard Time Astrakhan Standard Time Azerbaijan Standard Time Caucasus Standard Time Russia Time Zone 3 Mauritius Standard Time Saratov Standard Time Georgian Standard Time Afghanistan Standard Time West Asia Standard Time Ekaterinburg Standard Time Pakistan Standard Time India Standard Time Sri Lanka Standard Time Nepal Standard Time Central Asia Standard Time Bangladesh Standard Time Omsk Standard Time Myanmar Standard Time SE Asia Standard Time Altai Standard Time North Asia Standard Time N. Central Asia Standard Time Tomsk Standard Time W. Mongolia Standard Time China Standard Time North Asia East Standard Time Singapore Standard Time W. Australia Standard Time Taipei Standard Time Ulaanbaatar Standard Time North Korea Standard Time Aus Central W. Standard Time Tokyo Standard Time Korea Standard Time Transbaikal Standard Time Yakutsk Standard Time Cen. Australia Standard Time AUS Central Standard Time E. Australia Standard Time Vladivostok Standard Time West Pacific Standard Time AUS Eastern Standard Time Tasmania Standard Time Lord Howe Standard Time Magadan Standard Time Bougainville Standard Time Norfolk Standard Time Sakhalin Standard Time Central Pacific Standard Time Russia Time Zone 10 Russia Time Zone 11 New Zealand Standard Time UTC+12 Kamchatka Standard Time Fiji Standard Time Chatham Islands Standard Time UTC+13 Tonga Standard Time Samoa Standard Time Line Islands Standard Time
Если вы хотите быстро найти вывести все доступные часовые пояса, например, со сдвигом 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"
Текущий часовой пояс хранится в реестре Windows. Вы можете проверить, что он изменился так:
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 XP и Windows Server 2003 для смены часового пояса из командной строки нужно было использовать такие команды:
RunDLL32.exe shell32.dll,Control_RunDLL timedate.cpl,,/Z Russian Standard Time
Или:
Control.exe TIMEDATE.CPL,,/Z Russian Standard Time
Управление часовым поясом в Windows из PowerShell
Получить настройки текущего часового пояса можно и в консоли PowerShell. Используйте команду:
[TimeZoneInfo]::Local
Или
Get-TimeZone
Id : Ekaterinburg Standard Time DisplayName : (UTC+05:00) Екатеринбург StandardName : RTZ 4 (зима) DaylightName : RTZ 4 (лето) BaseUtcOffset : 05:00:00 SupportsDaylightSavingTime : True
В PowerShell вы можете просмотреть все возможные часовые пояса, доступные в Windows:
[System.TimeZoneInfo]::GetSystemTimeZones()
Или
Get-TimeZone -ListAvailable
Список часовых поясов довольно большой, чтобы найти название нужного часового пояса, воспользуйтесь фильтром:
Get-TimeZone -ListAvailable | Where-Object {$_.displayname -like "*Samara*"}
Или:
Get-TimeZone -ListAvailable | Where-Object {$_.Id -like "*Russ*"}
Можно вывести все часовые пояса в алфавитном порядке:
Get-TimeZone -ListAvailable | Select Id | Sort Id
Чтобы изменить текущий часовой пояс из PowerShell, выполните команду
Set-TimeZone -Name "Astrakhan Standard Time"
В этих примерах используется версия PowerShell 5.1, но они также работают и в более новых версиях.
Настройка часового пояса через GPO
Для централизованной настройки часового пояса на компьютерах в домене Active Directory вы можете использовать групповые политики. Готовой политики для настройки часового пояса в GPO нет. Чаще всего используются следующие два варианта настройки часового пояса через GPO: с помощью logon скрипта GPO и с помощью импорта настроек часового пояса в реестр.
Для задания часового пояса через логон скрипт GPO, можете использовать простейший PowerShell скрипт (подходит для всех версий Windows, вплоть до Windows XP и Windows Server 2003):
$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 сессию с помощью политики Allow time zone redirection (Computer Configuration > Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Device and Resource Redirection.
Ошибка при изменении часового пояса в Windows Server 2019
В Windows Server 2019 RTM есть неприятный баг с настройкой часового пояса через графический интерфейс. Если вы попытаетесь изменить часовой пояс из панели Settings появится ошибка:
Date and time Unable to continue. You do not have permission to perform this task. Please contact your computer administrator for help.
Продолжение невозможно. У вас нет разрешения на выполнение этой задачи. Обратитесь за помощью к сетевому администратору.
В первую очередь проверьте, что вы вошли под учетной записью с правами администратора, а в настройках локальной политики безопасности Change the time zone присутствует группа Administrators.
В качестве обходного решения в этом случае придется изменить часовой пояс из командной строки:
tzutil /l
tzutil /s "Russian Standard Time"
Или PowerShell:
GetTimeZone -ListAvailable|? DisplayName -like "*Moscow*"|Set-TimeZone
Если вы хотите изменить задать часовой пояс из графического интерфейса, можете воспользоваться старой консолью
timedate.cpl
(запустите ее из командной строки с правами администратора) или вызовите ее из Server Manager (Local Server -> Time zone).
Поставил Windows Server 2019, попытался изменить часовой пояс, получил ошибку.
You do not have permission to perform this task.
Please contact your computer administrator for help
У начинающих системных администраторов при виде этой ошибки могут возникнуть приступы неудержимого смеха, беспричинной паники, или заторможенности. Дело в том, что системный администратор, видя совет обратиться к администратору компьютера, начинает рекурсивно обращаться сам к себе.
В программировании рекурсия, или рекурсивная функция — это такая функция, которая вызывает саму себя.
Бывалый системный администратор просто понимает, что операционная система предлагает найти ответ самому. И начинает действовать. Я вспоминаю, что компаний Microsoft с каждым новым обновлением переносит часть функционала в интерфейс Метро. Перехожу в настройки Windows из меню Пуск.
Time & Language. Date & Time.
Здесь тоже есть поле для изменения временной зоны. Меняю часовой пояс. Выхожу из меню настроек и понимаю, что часовой пояс не изменился. Винда просто пугает! Вот тут-то бывалый системный администратор тоже может зависнуть, захихикать или забыть как кликать мышкой. Это нормально, это одна из стратегий поведения при реакции на страх. Замереть, бежать или напасть. Бежать не от кого, нападать тоже не на кого, поэтому сисадмин находится в прострации и тупит.
Прострация — это понятие в медицине, означающие состояние эмоциональной опустошённости.
Но профессиональный системный администратор уже давно не боится винду. И начинает думать. Это естественное поведение системного администратора, сначала сделать, а если не получилось, то подумать. Я начинаю осмысливать текст первоначальной ошибки и понимаю, что прав не хватает. А прав тот, у кого больше прав. Правильно, нужно повысить права.
Запускаю командную строку от имени Администратора и выполняю команду:
timedate.cpl
CPL это сокращение от Control Panel. Вызывается окно управления датой и временем из панели управления. Снова пытаюсь изменить часовой пояс.
На этот раз временная зона успешно изменяется.
Сегодня мы с вами научились изменять часовой пояс в Windows Server 2019. И заодно узнали два новых термина: «рекурсия» и «прострация».
Обычно даже для изменения прав временной зоны достаточно быть обычным пользователем, но тут даже прав администратора не достаточно.
Если вы попытаетесь изменить временную зону, то получите ошибку: у вас нет разрешения на выполнение этой задачи. Обратитесь за помощью к сетевому администратору.
В новом меню «параметры» так же не возможно изменить часовой пояс, но тут даже ошибки не выходит, просто при закрытии окна, часовой пояс возвращается в исходное состояние.
Но если вы все-таки хотите использовать графический интерфейс для этой задачи, вы можете обойти проблему, запустив апплет timedate.cpl панели управления напрямую с правами администратора.
Изменение часового пояса с помощью утилиты tzutil.
Чтобы вывести полный список часовых поясов, нужно выполнить команду:
Далее для изменения уже выполнить:
Так же можно использовать Powershell выполнив команду:
Get—TimeZone —ListAvailable | ? DisplayName —like «*екат*» | Set—TimeZone |
Собственно в скрипте выше, мы получаем список всех часовых поясов, после чего используем фильтр, чтобы найти нужное нам значение и уже в конце изменяем.