Отмена перехода на зимнее время
Проблема:
С октября 2011 г переход на зимнее время в России отменяется
С принятием Федерального закона Российской Федерации от 03.06.2011г. № 107-ФЗ «Об исчислении времени» и Постановления Правительства Российской Федерации от 31.08.2011г. № 725 на территории Российской Федерации отменяется сезонный перевод часов и устанавливаются соответствующие часовые зоны и значения времени. Реализация изменений в сезонном переводе часов потребует приведения в соответствие с ними деятельности предприятий и организаций, в том числе организаций, специализирующихся в области информационных технологий и электроники. Несмотря на то, что отмена перехода на «зимнее время» в Российской Федерации непосредственно касается территории Российской Федерации, эффект и последствия такой отмены имеют глобальное значение.
В связи с этими изменениями, Microsoft выпустила Накопительный пакет обновления часовых поясов для операционных систем Windows KB2443685.
Все бы было хорошо, но, к сожалению этот пакет не предназначен для неподдерживаемых (уже) операционных систем и устаревших сервис паков. Так, например, он не будет применен на MS Windows XP SP1, MS Windows XP SP2 и MS Windows Server 2003 SP1.
Решение:
Для часового пояса Екатеринбурга необходимо импортировать файл реестра:
Код: Выделить всё
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Ekaterinburg Standard Time]
"Display"="(GMT+06:00) Екатеринбург"
"Dlt"="Уральское время (лето)"
"Std"="Уральское время (зима)"
"MapID"="10,11"
"Index"=dword:000000b4
"TZI"=hex:98,fe,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\Ekaterinburg Standard Time\Dynamic DST]
"2010"=hex:d4,fe,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:98,fe,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:fffffe98
"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:fffffe98
Для часового пояса Москвы настройки можно взять здесь.
Cкрипт от volk1234, предназначенный для изменения часовых поясов Украины, Беларуси и Армении в операционных системах, начиная с Windows XP можно найти здесь.
Описание параметров для разделов, предоставляющих возможность управлять часовыми поясами:
Раздел 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 - Информация о часовом поясе
-
Теперь о том, как применить этот файл реестра для всех нуждающихся компьютеров в домене:
-
Необходимо создать пакетный (командный) файл TimeZone.bat в расшаренной папке на сервере:
Код: Выделить всё
@echo off regedit /s \\SRV\CommonFolder\EkbTimeZone.reg
Здесь:
SRV - имя сервера
CommonFolder - путь к расшаренной папке
EkbTimeZone.reg - имя файла реестра, который необходимо импортировать -
Поместить в указанную папку, собственно, сам файл реестра EkbTimeZone.reg
-
Создать новую групповую политику с WMI фильтром, отфильтровывающим компьютеры с ОС Windows XP SP1, SP2 и прочими, к которым необходимо эту политику применять.
Код: Выделить всё
root\CIMv2; select * from win32_OperatingSystem where Caption='Microsoft Windows XP Professional' and ServicePackMajorVersion<3
(Либо сделать фильтр, проверяющий наличие на компьютере обновления KB2443685)
-
Прописать в этой политике Конфигурация компьютера->Политики->Конфигурация Windows->Сценарии (запуск/завершение)->Автозагрузка пакетный (командный) файл TimeZone.bat