Уже давно не секрет, что в октябре 2011 года уже никто в России и Украине не будет переводить свои часы на зимнее время. Для России уже вышло обновление, благодаря которому из диалогового окна «Выбор часового пояса» убирается флажок «Автоматический переход на летнее время и обратно», а также меняется часовой пояс, на примере с Москвой, с «GMT +3:00» на «GMT +4:00». Так как Украина приняла решение отмены перехода на зимнее время 20-го сентября, думаю, что компания Microsoft успеет написать очередное обновление, но в случае необходимости, можно перестраховаться и задать своим пользователям соответствующие настройки вручную. Помимо этого, многие пользователи, мягко говоря, не совсем любят обновлять свои операционные системы, данное обновление может просто не быть установлено на компьютере и в ночь с последней субботы на воскресенье октября часы автоматически переведутся на час вперед. Также, поскольку уже прекращена поддержка операционной системы Windows 2000, а в просторах Рунета можно найти большое количество компаний – владельцев данной операционной системы, для таких пользователей следует ожидать такой же участи.
Перед тем как рассказать о реализации возможности, повторяющей действия указанного выше обновления, мне хотелось бы рассказать, что же делает с операционной системой этот патч. Данное обновление изменяет несколько параметров в системном реестре, которые отвечают за настройки часового пояса. Новые значения для параметров вносятся в следующих разделах реестра:
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones – база данных часовых поясов;
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation – сведения о выбранном часовом поясе.
В этой статье вы узнаете о параметрах, значения которых следует изменять для отмены перехода на зимнее время в России и Украине.
Отмена перехода на зимнее время при помощи системного реестра
Данные, отображаемые в раскрывающемся списке «Часовой пояс» диалогового окна выбора часового пояса для выбранного часового пояса можно найти в разделе реестра HKLM\Microsoft\Windows NT\CurrentVersion\Time Zones согласно требуемой зоне. Например, для часового пояса «(GMT+03:00) Волгоград, Москва, Санкт-Петербург» параметры реестра можно найти в разделе «Russian Standard Time». После внесения всех изменений накопительного обновления KB2443685, параметры текущего раздела со всеми изменениями должны выглядеть следующим образом (измененные параметры выделены полужирным начертанием):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Russian Standard Time]
"MUI_Display"="@tzres.dll,-1520"
"MUI_Dlt"="@tzres.dll,-421"
"MUI_Std"="@tzres.dll,-422"
"Display"="(GMT+04:00) Волгоград, Москва, Санкт-Петербург"
"Dlt"="Московское время (лето)"
"Std"="Московское время (зима)"
"TZI"=hex:10,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Russian Standard Time\Dynamic DST]
"2010"=hex:4c,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,0a,00,00,00,05,00,03,00,\
00,00,00,00,00,00,00,00,03,00,00,00,05,00,02,00,00,00,00,00,00,00
"2011"=hex:10,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
"FirstEntry"=dword:000007da
"LastEntry"=dword:000007db
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"Bias"=dword:ffffff10
"StandardName"="Московское время (зима)"
"StandardBias"=dword:00000000
"StandardStart"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
"DaylightName"="Московское время (зима)"
"DaylightBias"=dword:00000000
"DaylightStart"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
"ActiveTimeBias"=dword:ffffff10
В свою очередь, для Украины еще не вышло требуемое обновление и придется создать такой файл. Теперь в Украине, также как и в России, часовой пояс сдвинется до «GMT +3:00». Раньше часовой пояс для Украины назывался «(GMT +02:00) Вильнюс, Киев, Рига, София, Таллин, Хельсинки» и все параметры можно было найти в разделе «FLE Standard Time». Но так как я не знаю, перешли ли Вильнюс, Рига, София и Хельсинки на часовой пояс +3, создадим новый раздел под названием «Kiev Standard Time». Его содержимое будет выглядеть следующим образом:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Kiev Standard Time]
"MUI_Display"="@tzres.dll,-1620"
"TZI"=hex:4c,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
"Std"="Киевское время (зима)"
"MUI_Std"="@tzres.dll,-1621"
"Dlt"="Киевское время (лето)"
"MUI_Dlt"="@tzres.dll,-1622"
"Display"="(GMT +03:00) Киев"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Kiev Standard Time\Dynamic DST]
"2010"=hex:88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,0a,00,00,00,05,00,03,00,\
00,00,00,00,00,00,00,00,03,00,00,00,05,00,02,00,00,00,00,00,00,00
"2011"=hex:4c,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
"FirstEntry"=dword:000007da
"LastEntry"=dword:000007db
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"Bias"=dword:ffffff4c
"StandardName"="@tzres.dll,-1622"
"StandardBias"=dword:00000000
"StandardStart"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
"DaylightName"="@tzres.dll,-1622"
"DaylightBias"=dword:ffffffc4
"DaylightStart"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
"TimeZoneKeyName"="Kiev Standard Time"
"DynamicDaylightTimeDisabled"=dword:00000000
"ActiveTimeBias"=dword:ffffff4c
После внесения текущих изменений в системный реестр, диалоговые окна «Дата и время» и «Выбор часового пояса» должны выглядеть следующим образом:
Рис. 1. Диалоговые окна «Дата и время» и «Выбор часового пояса»
Отмена перехода на зимнее время средствами GPO
Теперь пришло время показать, как можно добиться того же результата для централизованной настройки компьютеров в организации. В принципе, вы можете воспользоваться двумя различными способами:
- Средствами элементов предпочтения групповой политики «Реестр»;
- При помощи сценариев автозагрузки.
Несмотря на то, что одинакового результата можно добиться как первым, так и вторым способом, если вы будете использовать предпочтения групповой политики, то вам нужно будет создать для каждого параметра реестра свой элемент предпочтения. Соответственно, в объекте групповой политики вместо одной записи будет создано одиннадцать элементов предпочтения.
Именно по этой причине остановимся на втором способе, то есть на сценарии автозагрузки. В следующем примере будет проиллюстрирован способ создание отмены перехода на зимнее время для Украины. В случае необходимости, отменить переход на зимнее время для Росси можно сделать по аналогии. Для того чтобы создать такой объект групповой политики, выполните следующие действия:
Теперь нужно создать пакетный файл. Этот пакетный файл будет выглядеть следующим образом:
@echo off
regedit /s \\DC\StartupScripts\TimeZones.reg
Рис. 2. Добавление сценария автозагрузки
- Вам нужно создать общую сетевую папку, а также подготовить пакетный файл, содержимое которого позволит внести в операционную систему изменения системного реестра, о которых шла речь в предыдущем разделе данной статьи. В данном примере, на диске «С» контроллера домена была создана папка «StartupScripts», куда изначально был помещен файл TimeZones.reg с содержимым, описанным ранее в текущей статье.
- Откройте оснастку «Управление групповой политикой». В отобразившейся оснастке, в дереве консоли разверните узел «Лес: %имя леса%», узел «Домены», затем узел с названием вашего домена, после чего перейдите к узлу «Объекты групповой политики». В узле «Объекты групповой политики» создайте объект GPO «Отмена перехода на зимнее время для Украины», выберите его, нажмите на нем правой кнопкой мыши и из контекстного меню выберите команду «Изменить», предназначенную для открытия оснастки «Редактор управления групповыми политиками»;
- В оснастке «Редактор управления групповыми политиками» разверните узел Конфигурация компьютера\Политики\Конфигурация Windows, перейдите к узлу «Сценарии (запуск/завершение)» и в области сведений откройте параметр политики «Автозагрузка»;
- В отобразившемся диалоговом окне «Свойства: Автозагрузка» на вкладке «Сценарии» нажмите на кнопку «Добавить» и укажите путь к сценарию, созданному на первом шаге в текстовом поле «Имя сценария» диалогового окна «Добавление сценария», как показано на следующей иллюстрации:
- Сохраните изменения, выполненные в диалоговом окне свойств сценариев автозагрузки и закройте оснастку «Редактор управления групповыми политиками». Теперь нужно привязать созданный объект групповой политики к такому подразделению, чтобы настройки часовых поясов распространялись на все компьютеры в организации. А так как практически во всех организациях учетные записи пользовательских компьютеров и контроллеров домена расположены в разных подразделениях, объект групповой политики будет привязан к самому домену. В дереве оснастки «Управление групповой политикой» выберите свой домен, нажмите на нем правой кнопкой мыши и из контекстного меню выберите команду «Связать существующий объект групповой политики». В отобразившемся диалоговом окне «Выбор объекта групповой политики» выберите созданный ранее объект групповой политики и нажмите на кнопку «ОК».
Теперь следует проверить выполненные изменения на клиентских компьютерах. Перезагрузите любой компьютер и перейдите к диалоговому окну «Дата и время». Должен отображаться указанный в созданном ранее reg-файле часовой пояс. Для того чтобы проверить, не будет ли осуществляться переход на зимнее время, нажмите на кнопку «Изменить часовой пояс». В отобразившемся диалоговом окне должен отсутствовать соответствующий флажок, как показано ниже:
Рис. 3. Результат распространения объекта групповой политики
Изменения, внесенные текущим объектом групповой политики, проверялись под операционными системами Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008/2008 R2 и, скорее всего, изменения, внесенные объектом групповой политики, будут правильно обрабатываться и под операционной системой Windows 2000.
Описание параметров для разделов, предоставляющих возможность управлять часовыми поясами:
Раздел TimeZoneInformation
ActiveTimeBias
Смещение местного времени в минутах от Гринвича с учётом летнего времени. Чтобы определить смещение в часах, достаточно разделить это значение на 60
Bias
Номинальное смещение местного время на данном компьютере, в минутах от Гринвича без учёта местного времени. Смещение представляет собой разницу в минутах от формата UTC и местного времени. Данное значение высчитывается по следующей формуле:
UTC = местное время + смещение
Смещение в часах определяется делением на 60. Данный параметр не является обязательным.
StandardName
Описание стандартного времени. Параметр формируется при помощи функции GetTimeZoneInformation. Этот параметр в некоторых случаях может быть пустым.
StandardStart
Параметр, значение которого представлено в структуре SYSTEMTIME, содержащей дату и локальное время, перехода с летнего времени на зимнее. В том случае, если перевод на зимнее/летнее время не осуществляется, значением данного параметра должны быть нули.
StandardBias
Значение смещения, используемое во время перевода часов местного времени, происходящего в зимнее время. Этот элемент игнорируется, если не задано значение для параметра StandardStart.
DaylightName
Описание летнего времени время для часового пояса. Параметр формируется при помощи функции. Эта параметр в некоторых случаях может быть пустым.
DaylightStart
Параметр, значение которого представлено в структуре SYSTEMTIME, содержащей дату и локальное время, перехода с зимнего времени на летнее. В том случае, если перевод на зимнее/летнее время не осуществляется, значением данного параметра должны быть нули.
DaylightBias
Значение смещения, используемое во время перевода часов местного времени, происходящего в летнее время. Этот элемент игнорируется, если не задано значение для параметра DaylightStart.
Раздел Time Zones
Display
Отображаемое имя.
Dlt
Описание летнего времени.
MUI_Display
Отображаемое имя часового пояса в строковом ресурсе файла tzres.dll.
MUI_Dlt
Отображаемое имя летнего времени в строковом ресурсе файла tzres.dll.
Mui_Std
Отображаемое имя зимнего времени в строковом ресурсе файла tzres.dll.
Std
Описание зимнего времени
TZI
Информация о часовом поясе
Здесь вы можете найти скрипт от volk1234, предназначенный для изменения часовых поясов Украины, Беларуси и Армении в операционных системах, начиная с Windows XP.
Заключение
Из этой статьи вы узнали о том, как можно вручную изменить свой часовой пояс для компьютера, находящегося в рабочей группе или расположенного в домене. Вы узнали о разделах системного реестра, отвечающих за назначение часового пояса на компьютере. Рассмотрено создание объекта групповой политики, вносящего изменения в системный реестр клиентских компьютеров при помощи расширения клиентской стороны «Сценарии автозагрузки».
А какие способы изменения часовых поясов и отмены перехода на зимнее время помимо накопительного обновления KB2443685 вы используете?