`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Игорь Шаститко

Kак HE ДАТЬ своим Windows перейти на зимнее время

+1418
голосов

Итак, Верховная Рада Украины приняла абсолютно внезапно закон о том, что с 30 октября 2011 г. такая большая по протяженности с востока на запад страна, как Украина, переходить на зимнее время не будет. Не будем рассматривать аспекты того, что в западных областях светать зимой будет в 10:00 утра, вопрос в другом – как быть ИТшникам и вообще – всем пользователям компьютеров, которых этим постановлением просто «выкинули» из привычного часового пояса UTC +02:00 Хельсинки, Киев, Рига, София, Таллинн, Вильнюс? Часы-то на всех компьютерах переведутся!

Естественно, с момента принятия такого эпохального закона прошло не так много времени и вероятность появления нового патча от Microsoft для очередного «дробления» часовых поясов за столь короткий срок минимальна (напомню, что полугодом ранее Россия приняла такой же закон, но поставила в известность всех еще в марте о планируемом отказе от зимнего времени в октябре и патч был выпущен в августе). Но, понимая серьезность проблемы, 5 октября 2011 г. на сайте поддержки Microsoft появилась статья о том, что делать украинским пользователям Windows, чтобы часы не перевелись «как не надо» – все желающие познакомиться с первоисточником могут это сделать здесь http://support.microsoft.com/kb/2625508.

Kак HE ДАТЬ своим Windows перейти на зимнее время

Рецепт счастья прост – такая часовая зона уже существует, и не где-нибудь в Африке, а ближе – в Калининграде. Т.е. достаточно в настройках времени ваших систем просто установить часовой пояс UTC +03:00 Калининград, при условии, как указано в статье на сайте поддержки, что у вас уже установлены на компьютере последние обновления часовых поясов, выпущенные в августе 2011 г. – http://support.microsoft.com/kb/2570791. Кстати, я бы не торопился их качать вот так сразу, а просто установил бы их через штатные механизмы обновления Windows.

И, конечно же, не забудьте все вышеуказанное сделать до 30 октября 2011 г., иначе часики-то переведутся.

Вроде все легко и понятно, но есть одно большое НО – а что, если у меня не 1, 2 и даже не 10 компьютеров, где подобную операцию можно проделать за 5 минут.

А что, если компьютеры исчисляются сотнями и тысячами? Тогда рецепт еще более прост – запускаем скрипт, и все будет в шоколаде. Хотя тут тоже стоит перед нами два вопроса – какой скрипт и как запускать.

Первый вопрос – «какой скрипт?» – наиболее простой. Вот этот скрипт на PowerShell (взятый отсюда http://blogs.technet.com/b/deploymentguys/archive/2009/06/07/setting-the-time-zone-using-windows-powershell.aspx и слегка модифицированный и который можно использовать и как отдельные команды, и в варианте VBScript – кому как нравится):

$timeZone = "Kaliningrad Standard Time"
$regVer = Get-Item "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
$winVer = $regVer.GetValue("CurrentVersion")
if ($winVer -GE 6){
tzutil.exe /s $timeZone

} Else {
$param = "/c Start `"Change TimeZone`" /MIN %WINDIR%\System32\Control.exe TIMEDATE.CPL,,/z "
$param += $timeZone
$proc = [System.Diagnostics.Process]::Start( "CMD.exe", $param)
}

Краткое пояснение работы скрипта, вдруг вы не нуждаетесь в столь универсальном инструменте:

  • Скрипт проверяет версию ОС, и:
    • если она выше или равна Windows Vista/Windows Server 2008 – то для изменения часового пояса используется новая команда – TZUTIL /z «Kaliningrad Standard Time»
    • если скрипт запущен на Windows XP/Windows Server 2003 и ниже – использует для изменения часового пояса команду control.exe timedate.cpl,,/z «Kaliningrad Standard Time» – как это делалось в командной строке Window XP

и по второму вопросу – «как запустить скрипт на всех компьютерах в сети?» – все просто:

  • групповые политики и их стартап-скрипты (в варианте с Windows 7 имеется также и возможность явно указывать запуск PowerShell), можно использовать отдельные скрипты/команды для разных типов ОС, фильтруя при этом политики через WMI
  • У вас есть System Center Configuration Manager – тогда вообще супер! просто добавьте пакет со скриптом, назвав его гордо «патчем»
  • и ручной вариант – выполнить нужный набор команд (не обязательно полный скрипт, указанный выше) через еще один скрипт, который получит список машин из Active Directory (или любого другого источника) и для каждой выполнит удаленный вызов при помощи:
    • Invoke-Command в PowerShell
    • Win32_Process.Create с использованием классов WMI и VBScript (готовые примеры скриптов по перебору списка ПК и по удаленному исполнению можно найти здесь http://gallery.technet.microsoft.com/ScriptCenter/)

Думаю, это вам поможет. Приглашаю всех заинтересованных делиться тут своими вариантами скриптов для установки часового пояса и, особенно, для распространения на сотни и тысячи машин в корпоративных сетях. Буду дописывать в этом посте с указанием авторов. Торопитесь, времени совсем мало осталось.

И остается надеяться, что очередную «рукотворную проблему 2000 года» Украина нормально переживет.

P.S. А вот полноценный патч с отдельным часовым поясом для Украины будет выпущен Microsoft уже в декабре 2011, если верить все тому же первоисточнику – http://support.microsoft.com/kb/2625508

+1418
голосов

Напечатать Отправить другу

Читайте также

В корпоративных сетях всё намного проще:

1. Настраиваем NTP-сервер с правильным временем
2. Открываем "Редактор управления рупповыми политиками"
3. Идём в "Конфигурация компьютера" - "Политики" - "Административные шаблоны" - "Система" - "Служба времени Windows" - "Поставщики времени"
4. Конфигурим параметры (достаточно 2-ух).
5. Отдыхаем.

И забываем про скрипты.

и обрушиваем систему... поскольку NTP - всего лишь протокол передачи сигналов точного времени по сетям с высокими задержками вообще, на локальном компе оно преобразуется согласно часовому поясу в системе. Кроме того, некоторые приложения могут использовать информацию о часовом почсе, чтобы работать в UTC.
И какая либо смена абсолютного времени не решает проблемы перевода времени согласно настройкам часового пояса. Какое бы абсолютное время не давал вам NTP - в ночь на воскресенье время будет переведено автоматом.

на локальном компе оно преобразуется согласно часовому поясу в системе.

И эта убогая "локальность" тянется не пойми с каких времен. AD уже сколько лет? Неужели за все это время нельзя было добавить настройку зоны в груповые политики, продумав соответствующие сценарии (подключение к домену, находящемуся в другой ВР, пересечение часовых поясов и т.д)? В этом плане как оно было на Вин9х, так все и остается во втором десятилетии 21 века.
А за скрипт спасибо, конечно. Собственно, по этому поводу второй вопрос - а что мешает МС оперативно выпустить патч для ТZ, взяв за основу зону того же Калиниграда?

согласен ;) но она, как ни странно, у всех тянется, не только в Windows... Наверное, потому, что о ней вспоминают при вот таких вот экстренных ситуациях ;)

Что же до патча - а протестировать весь объем приложений? Мало ли кто как там проверяет дату/время и использует UTC. Потому - пока готовим и тестируем, причем, усиленными темпами - если смотреть на вариант с Россией, где с марта по август прошло полгода, а у нас с конца сентября по планируемый декабрь - всего 3 месяца.

у всех тянется, не только в Windows

У "всех" AD нету. А у МС - есть, им бы, казалось, и карты в руки.

а протестировать весь объем приложений

А разве изменилось что-то глобальное? Ну было, к примеру, timezone(TZ EET/UA:GMT+2, ST=true)->GMT+3, стало timezone(TZ EET/UA: GMT+3, ST=false)->GMT+3 - что изменилось для приложений? Они-то разве не значением TZ с учетом ST и системным временем оперируют?

Странно, а я то думал, что достаточно всего-лишь снять галочку "Автоматический перевод на летнее время и обратно".

Пысы: по приведенной ссылке на сайте Майкософта машинный перевод с английского. Я то думал, на свете еще существуют нормальные компании, ан нет...

вот галочку снимать не надо - именно из-за соответствия UTC

что же до перевода - система автоматом проверяет локаль броузера и переводит вам статью ;) хотите оригинал - либо выберите справа в панельке язык перевода English, либо вот прямая ссылка - http://support.microsoft.com/kb/2625508/en-us

Так вроде ж раньше сайт майкрософта писал "на вашем языке нет информации", выберите другой язык. Это все ж лучше, чем такую туфту подсовывать :(

То есть, пока патч не выпустят, я должен буду осенью ставить UTC +3, а весной - UTC +2?

Нет. Теперь всегда будет +3.

Спасибо, Игорь. Извини за оффтопик: а что лучше всего применять как легковесную замену AD для 5 домашних компов? Править руками по очереди на всех 5 не предлагать :)

Home Server - у меня дома стоит ;)

А президент сей закон разве подписал? :)

а если он подпишет его в пятницу вечером - что тогда? ;) потому - будьте готовы. Но, в любом случае, числа 25-26.10 я еще раз уточню, куда бежать ;)

Ви ще забули про часовий пояс в Outlook.
Для розповсюдження на сотні комп"ютерів написав простенький скрипт (виконує перевірку версії ОС та запускає відповідний патч) http://www.rublin.org.ua/node/118

Для тих хто поспішив "переїхать" в калінінград:
http://www.rublin.org.ua/comment/739#comment-739 - поверне вас назад ;)

по-моему это дикость, переезжать в Калининград, потом ждать патча до декабря, а потом переезжать обратно.
Но останутся куча проблем, ну выставили пользователи зону Калининграда. Но время то для Киева будет считаться неправильно? Любая программа, захотевшая получить время в Киеве будет работать неправильно.
Ну и соответсвенно, после патча в декабре, любая программа будет неправильно считать время для Киева до 2011 года?
Или все-таки MS уже научилась аля tzdata работать?

вроде уже не надо. ВР опять передумала! Да когда же они уймутся!

Наконец здравый смысл возобладал, а то не все же повторять за нанопрезидентом...

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT