Централизованное изменение часового пояса в Windows XP
Несмотря на то, что официальная поддержка Microsoft Windows XP SP3 завершилась 8 апреля 2014 года, во вверенной мне сети существует еще достаточно большой парк компьютеров под управлением этой операционной системы. Из-за отсутствия пакетов обновлений от Microsoft даже такая тривиальная операция, как смена часового пояса, теперь может вызвать головную боль у администраторов. Недавно мною было найдено решение, как на всех подобных компьютерах посредством доменной политики сменить часовой пояс на “правильный”. Теперь делюсь этим методом с заинтересованными. |
Для того, чтобы временная зона стала «правильной», к примеру – для Московского часового пояса +3 от Гринвичского, необходимо на компьютере под управлением Windows XP изменить настройки и установку данного часового пояса в реестре. Для этой цели мной был произведен экспорт ветки реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
, где хранятся данные о часовых поясах, с одного из компьютеров с Windows XP (на котором установлены все существующие на данный момент обновления от Microsoft) и небольшая модификация данной выгрузки реестра, с помощью аналогичного фрагмента реестра, полученного с компьютера под управлением Windows 7 (со всеми установленными последними обновлениями от Microsoft). Т.е. фрагмент реестра с описанием Russian Standard Time с Windows XP был заменен на модифицированный фрагмент реестра с Windows 7:
— фрагмент реестра с описанием временной зоны с компьютера под управлением Windows XP (все кавычки – прямые "
):
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Russian Standard Time] “Display”=”(GMT+04:00) Волгоград, Москва, Санкт-Петербург” “Dlt”=“Московское время (лето)” “Std”=“Московское время (зима)” “MapID”=“6,7” “Index”=dword:00000091 “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:4c,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,01,00,06,00,01,00,00,00,\ 00,00,00,00,00,00,00,00,03,00,00,00,05,00,02,00,00,00,00,00,00,00 “2012”=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:000007dc
— фрагмент реестра с описанием временной зоны с компьютера под управлением Windows 7 (все кавычки – прямые "
):
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Russian Standard Time] “MUI_Display”=”@tzres.dll,-1830” “MUI_Dlt”=”@tzres.dll,-1831” “MUI_Std”=”@tzres.dll,-1832” “Display”=”(UTC+03:00) Волгоград, Москва, Санкт-Петербург (RTZ 2)” “Dlt”=“RTZ 2 (лето)” “Std”=“RTZ 2 (зима)” “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 [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:4c,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,01,00,06,00,01,00,00,00,\ 00,00,00,00,00,00,00,00,03,00,00,00,05,00,02,00,00,00,00,00,00,00 “FirstEntry”=dword:000007da “LastEntry”=dword:000007df “2012”=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 “2014”=hex:4c,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,0a,00,00,00,05,00,02,00,\ 00,00,00,00,00,00,00,00,01,00,03,00,01,00,00,00,00,00,00,00,00,00 “2015”=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 “2013”=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
Результирующий фрагмент реестра для Windows XP (все кавычки – прямые "
):
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Russian Standard Time] “Display”=”(GMT+03:00) Волгоград, Москва, Санкт-Петербург” “Dlt”=“Московское время (лето)” “Std”=“Московское время (зима)” “MapID”=“6,7” “Index”=dword:00000091 “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 [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:4c,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,01,00,06,00,01,00,00,00,\ 00,00,00,00,00,00,00,00,03,00,00,00,05,00,02,00,00,00,00,00,00,00 “FirstEntry”=dword:000007da “LastEntry”=dword:000007df “2012”=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 “2014”=hex:4c,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,0a,00,00,00,05,00,02,00,\ 00,00,00,00,00,00,00,00,01,00,03,00,01,00,00,00,00,00,00,00,00,00 “2015”=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 “2013”=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
Повторюсь, это всего лишь фрагменты реестра с описанием Московского часового пояса (Russian Standard Time). Но, на основе этого будет несложно догадаться, как сделать подобный кусок реестра для вашей временной зоны, отличной от MSK.
Этот изменённый (результирующий) фрагмент реестра был вставлен в файл, куда ранее была экспортирована ветка реестра из Windows XP HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
взамен существующего. Был получен вот такой файл реестра: TimeZones-XP.reg (размер – 196 КБ; формат – REG).
Теперь осталось посредством групповых политик внести требуемые изменения на компьютеры домена под управлением Windows XP. Для этого:
1. Создаём новую политику в домене, например xp-gpo, чтобы она покрывала все необходимые нам компьютеры и открываем её на изменение.
2. Идём в Конфигурация компьютера -> Политики -> Конфигурация Windows -> Параметры безопасности -> Локальные политики -> Назначение прав пользователя
и делегируем пользователям домена право изменения системного времени и изменение часового пояса, определив соответствующие значения политик:
3. Теперь идем в Конфигурация компьютера -> Политики -> Конфигурация Windows -> Параметры безопасности -> Реестр
и добавляем две ветви реестра, которые мы разрешим доменным пользователям изменить на своих компьютерах:
— MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
– которая, как мы отметили ранее, отвечает за настройки существующих временных зон;
— MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
– которая хранит значение установленной в текущий момент временной зоны.
Не забудьте в момент добавления данных веток выставить к ним права пользователям домена на полный доступ:
4. Теперь мы напишем небольшой сценарий, который будет исполняться на компьютерах Windows XP при их загрузке, до момента локального входа пользователя. Сценарий (назовём его TimeZones-XP.cmd) будет иметь вид:
@echo off regedit.exe /s "\\domain.ru\share\TimeZones-XP\TimeZones-XP.reg" control.exe timedate.cpl,,/Z Russian Standard Time net stop w32time w32tm.exe /config /syncfromflags:manual /manualpeerlist:"ntp-server1, ntp-server2" net start w32time w32tm.exe /config /update w32tm.exe /resync
Сам сценарий и файл реестра под именем TimeZones-XP.reg с изменённым описанием временных зон выложены на DFS ресурс домена, чтобы при смене файлового сервера не пришлось менять групповую политику. У меня это путь \\domain.ru\share\TimeZones-XP
. Вы можете положить их на любой доступный всем пользователям сетевой ресурс.
Данным сценарием выполняется следующее:
— осуществляется тихий импорт файла реестра, расположенного по пути \\domain.ru\share\TimeZones-XP\TimeZones-XP.reg;
— вызывается панель управления датой и временем, где устанавливается изменённый нами часовой пояс Russian Standard Time;
— останавливается служба времени;
— устанавливается заданный вручную список ntp-серверов (серверов точного времени), это могут быть как внутренние, так и внешние ip, либо hostname;
— запускается служба времени;
— уведомим службу времени, что конфигурация изменилась и чтобы внесённые нами изменения вступили в силу;
— даём команду немедленно выполнить синхронизацию внутренних часов компьютера с удалением всей накопившейся статистики ошибок.
5. Теперь необходимо поместить наш сценарий в автозагрузку компьютеров. Для этого в нашей групповой политике, предназначенной для изменения часового пояса на компьютерах под управлением Windows XP, идем по пути: Конфигурация компьютера -> Политики -> Конфигурация Windows -> Сценарии (запуск/завершение) -> Автозагрузка
:
И добавляем наш сценарий TimeZones-XP.cmd:
6. Все изменённые параметры нашей групповой политики выглядят следующим образом:
7. Осталось выполнить последний, но очень важный шаг. Создадим фильтр WMI, с помощью которого данную политику мы будем применять исключительно к доменным компьютерам под управлением Windows XP. В оснастке «Управление групповой политикой» раскройте ветку лес, домены, выберите ваш домен и к нему «Фильтры WMI». В этой ветке создайте новый фильтр WMI. Присвойте ему имя, например – windows-xp и добавьте описание, например – Применить к компьютерам с Windows XP:
Нажмите на кнопку «Добавить», для ввода запроса wmi, который позволит нам выбрать доменные компьютеры с операционной системой Windows XP. Проследите, чтобы поле «Пространство имен» выглядело как root\CIMV2, в поле «Запрос» введите:
SELECT * FROM Win32_OperatingSystem WHERE Version LIKE "5.1%" AND ProductType = "1"
Нажмите «ОК» и сохраните полученный фильтр.
8. Теперь необходимо связать нашу групповую политику с данным фильтром WMI. Для этого разверните ветку «Объекты групповой политики» и выберите необходимую. В правом окне, внизу в поле «Фильтры WMI» в выпадающем списке выберите наш фильтр wmi и подтвердите свой выбор:
Вот теперь, на испытуемом доменном компьютере под управлением Windows XP обновите групповую политику командой gpupdate /force
, перезагрузите его и посмотрите результат. У вас должно получится следующее:
Вот таким образом мы изменили на всех компьютерах домена под управлением Windows XP часовой пояс на необходимый нам. Надеюсь, наше правительство наконец-то закончит пляски с часовыми поясами… :(
Это всё решается очень просто берётся windowsxp-kb3013410-x86-enu.reg применяется и всё. С большим уважением… Проверено на сотнях терминалов под Windows Embedded XP =) ну почти тоже самое что и ХР… и всё работает после перезагрузки. Данная Кбшка подходит почти для всех основных ОС Windows.