Проверка готовности компьютеров c ОС Windows к изменению часовых поясов с помощью SCCM

imageКак всем известно, в нашей стране вводятся значительные изменения в состав часовых поясов начиная с 02:00 26 Октября этого года. Имея в локальной сети предприятия большое количество компьютеров под управлением ОС Microsoft Windows, необходимо проверить их готовность к данным изменениям. В контексте данной задачи, в этой заметке будут рассмотрены те процедуры, которые можно выполнить средствами System Center 2012 R2 Configuration Manager, в частности:

1. Проверка готовности всех Windows-систем к установке обновления KB2998527;
2. Проверка готовности компьютеров с Windows 8.1 и Windows Server 2012 R2 к установке обновления KB2998527;
3. Настройка компьютеров с Windows XP на использование новых часовых поясов.

1. Проверка готовности всех Windows-систем к установке обновления KB2998527

Одним из ключевых требований для беспроблемного развёртывания обновления KB2998527 является активный признак автоматического перехода на зимнее время и обратно в настройках Windows-системы. Наверное многие помнят, что эта опция до 2011 года была доступна в интерфейсе управления временем в ОС, сейчас её нет. И если в ту пору на каких-либо компьютерах была выключена эта опция, то теперь такие компьютеры могут столкнутся с проблемой: стрелки часов сместятся на час назад сразу после установки обновления KB2998527. Наша задача - исключить возможность возникновения такой ситуации.

Для начала мне было интересно найти такие компьютеры, а уже по результату принять решение о том, нужна ли автоматизация процесса исправления вышеуказанной опции. Для поиска потенциально проблемных систем можно было использовать разные инструменты, и как вы уже поняли, мы выбрали System Center 2012 R2 Configuration Manager, настроив определённым образом “Элемент конфигурации” (из раздела консоли SCCM - Активы и соответствие\Параметры соответствия).

Опция отключения автоматического перехода на зимнее/летнее время содержится в ключе реестра HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation:
Параметр “DisableAutoDaylightTimeSet” – для систем Windows XP/2003
Параметр “DynamicDaylightTimeDisabled” – Для систем начиная с Vista/2008

В обоих случаях, значение параметра должно быть равно нулю, либо параметр должен отсутствовать вообще.

Итак, создадим в SCCM “Элемент конфигурации”, и разрешим его исполнение на всех доступных ОС:

image

Т.к. нам нужно отлавливать два параметра реестра, у нас будет два параметра элемента конфигурации:

Первый персонально для Windows XP:
Выставляем тип параметра: значение реестра
Тип данных: Целое число
Имя раздела: HKEY_LOCAL_MACHINE
Имя ключа: SYSTEM\CurrentControlSet\Control\TimeZoneInformation
Имя значения: DisableAutoDaylightTimeSet

image

Перейдём на вкладку “Правила соответствия

Установим правило, в котором будет проверятся значение выбранного параметра реестра, оно должно быть равно 0. Также разрешим исправлять значения при несоответствии и установим степень важности несоответствия как “Ошибка”.

image

Для систем новее Windows XP повторяем процедуру создания параметра элемента конфигурации, только используем параметр реестра: DynamicDaylightTimeDisabled

Для развёртывания элемента конфигурации создадим “Шаблон базовой конфигурации

image

Разворачиваем шаблон базовой конфигурации на коллекцию с всеми компьютерами:

В развёртывании изменим только один параметр, укажем, что выполнять проверку нужно 1 раз в день.

image

Изучив отчёт через сутки, я понял, что проделал проверку не зря:

image

Для исправления ключей реестра, откроем свойства развёртывания шаблона базовой конфигурации и разрешим исправление несоответствия.

image

 

2. Проверка готовности компьютеров с Windows 8.1 и Windows Server 2012 R2 к установке обновления KB2998527

В проводимой Microsoft презентации о развёртывании обновления часовых поясов на Windows 8.1 и Windows Server 2012 R2 было сказано отдельно, что обновление на эти две системы успешно может быть установлено только в случае предварительной установки Update 1 (KB2919355).

В случае если обновления на компьютеры распространяются с помощью SCCM Software Update Point (SUP), то для проверки покрытия систем данным обновлением достаточно посмотреть отчёт в консоли SCCM - Соответствие 6 - состояние заданного обновления ПО (дополнительный). Если же обновления распространяются через службу WSUS, то для анализа ситуации можно использовать механизм встроенных отчетов консоли WSUS.

 

3. Настройка компьютеров с Windows XP на использование новых часовых поясов

Как известно, Windows XP более не поддерживается Microsoft, поэтому для добавления новых часовых поясов на компьютеры с этой ОС нам потребуется проделать манипуляции предложенные в статье Перевод времени 26 октября 2014 года или ударим трудом по разгильдяйству.

План действий будет такой:
1. Поднимаем виртуальную машину под управлением Windows XP (Эталон);
2. Превращаем эталонную машину в Windows XP Embedded;
3. Устанавливаем на эталонную машину обновление KB2998527 для Windows XP Embedded;
4. В панели управления выбираем нужный часовой пояс из обновлённого списка поясов;
5. Экспортируем получившиеся в результате ключи реестра на эталонной системе;
6. Распространяем полученные ключи реестра на все компьютеры под управлением Windows XP любым доступным способом.

Итак, имея “чистую” Windows XP, превращаем её в Windows XP Embedded (с точки зрения проверки установщика обновления KB2998527). Для этого создадим ключ реестра “PosReady” в расположении “HKLM\System\WPA”, после создадим параметр “Installed” типа “DWORD с значением “1” в ранее созданном ключе реестра. Всё это можно сделать с помощью команды:

REG ADD HKLM\System\WPA\PosReady /v Installed /t REG_DWORD /d 1

Теперь загружаем обновление KB2998527 с портала Windows Update для Windows XP Embedded.

image

После загрузки обновления, пробуем его установить на нашу эталонную виртуальную машину. Сам процесс установки ничем не отличается от установки какого-либо другого обновления:

image

Однако, по окончанию установки возможно появление двух ошибок:

image

image

Несмотря на вторую ошибку, обновление всё же внесло необходимые данные в системный реестр. Чтобы проверить это откроем настройку часовых поясов:

image

Именно этот пояс будет выставлен после установки обновления, если ранее был установлен пояс GMT+04:00 Москва.

Теперь, нам нужно удалить ключ реестра который мы создали ранее для “превращения” в Windows XP Embedded. Сделать это можно командой:

REG delete HKLM\System\WPA\PosReady /f

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

image

После перезагрузки свойства даты и времени изменят свой вид на правильную таймзону в новом формате в соответствии с зоной, которая была выбрана в системе до установки обновления:

clip_image002

Если правильный часовой пояс после перезагрузки всё-таки не отображается, то выберем его из обновлённого списка часовых поясов самостоятельно.

На данном этапе можно сказать, что в реестре нашего эталонного компьютера есть все изменения, которые мы можем тиражировать на все другие компьютеры под управлением Windows XP.

Теперь нам необходимо экспортировать базу данных часовых поясов из ключа реестра:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones”, 
а также текущие настройки выбранного часового пояса из ключа реестра: 
HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation”.

Выполним экспорт командой:

REG EXPORT "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones" C:\Temp\TimeZones\Fix\DB.reg
REG EXPORT "HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" C:\Temp\TimeZones\Fix\Current_settings.reg

Далее нам остаётся распространить экспортированные ключи реестра по всем системам Windows XP. Как я уже сказал ранее, сделать это можно разными путями. В моём примере это будет сделано опять же с помощью SCCM.

*** 

Для удобства, можно объединить два полученных в результате экспорта reg-файла в один, добавив содержимое Current_settings.reg в конец файла DB.reg. Сделать это можно также, с помощью командной строки:

COPY BD.reg + Current_settings.reg Fix.reg

Проанализируйте результативный Fix.reg и в случае необходимости добавьте туда параметр “DisableAutoDaylightTimeSet” с значением 0.

Расположим Fix.reg в общедоступном сетевом расположении и создадим пакет в SCCM. В качестве “Программы” SCCM будет выступать всего одна строчка:

REG IMPORT Fix.reg

image

Так же, необходимо разрешить выполнять Программу только на Windows XP SP3.

image

Осталось развернуть Программу Пакета на Коллекцию компьютеров SCCM.

Для “дебага” можно посмотреть лог клиента %windir%\CCM\Logs\execmgr.log

Пример фрагмента лога при успешном выполнении:

image

Всего комментариев: 19 Комментировать

  1. Yuri Bykoff /

    А почему только Windows XP SP3? С другими SP не сработает?

    1. Виталий Якоб / Автор записи

      Теоретически -- должно. Но я не проверял, т.к. нет таких систем.

  2. Alexandr Elizarov /

    А что в Windows 7 x32 и 64? Их не упомянули потому как проблем не будет?

    1. Alexandr Elizarov /

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

  3. Обратная ссылка: Вопросы по обновлению часовых поясов kb2998527 | MCP-Клуб в Москве /

  4. Провинциальный Админ /

    Всем добрый день.
    Ставлю на виртуалку ХР и в процессе установки на этапе настройки времени и даты вижу часовой пояс Москва +3 и галочку об автоматическом переходе на летнее время и обратно. Возможно дистрибутив со 2 СП, но получается что база часовых поясов та что надо (можно не мучиться с Эмбембед) и галочку можно убрать. И, если я прав, схема сильно упрощается - послу установки делаю экспорт зон и перехода и объединяю в фикс.

    Эксперты, подскажите прав я или нет? Времени в обрез!

    Заранее благодарен.

    1. Алексей Максимов /

      После запроса и установки всех доступных обновлений с Windows Update на такой системе Московский часовой пояс измениться на UTC+04:00, а опция перевода времени при этом исчезнет. Поэтому предложенный Вами метод на мой взгляд не верен.

  5. Провинциальный Админ /

    Спасибо за помощь. Сделал всё по статье, всё получилось. Остался только вопрос по “DisableAutoDaylightTimeSet” с значением 0. Как я понял этот параметр должен убрать пункт выбора автоперехода на летнее\зимнее время??? Писал и “DisableAutoDaylightTimeSet”=0 в конце файла Fix.reg и “DisableAutoDaylightTimeSet”=dword:00000000 всё равно пункт как появился так и остался. На подопытном компьютере до применения файла с исправлением пункта про перевод времени не было. В чём я ошибся?

    1. Виталий Якоб / Автор записи

      Этот параметр как раз отвечает за разрешение перехода на зимнее время и обратно.
      Если применить фикс реестра, а значение этого параметра выставить в "1", то время сразу убежит на 1 час.
      Всё так и есть, до правки реестра на Windows или установки обновления, опция перехода времени снова появляется в интерфейса.
      Если Вы примени обновление или фикс реестра, у Вас появились новые часовые пояса и время не убежало, то сделано всё правильно.

      1. Провинциальный Админ /

        Спасибо.

        А как правильно “DisableAutoDaylightTimeSet”=0 или “DisableAutoDaylightTimeSet”=dword:00000000 ?

        1. Виталий Якоб / Автор записи

          На сколько помню синтаксис, если добавляете через reg файл, то “DisableAutoDaylightTimeSet”=dword:00000000.

          1. Провинциальный Админ /

            Благодарю за помощь!!!

  6. Евгений Митюшин /

    У меня сработало с regedt32.exe /s TimeZones.reg.
    А тот вариант, который предложили вы к сожалению не прокатил. Хоть и пишет что все успешно, но изменений в реестре не делал.

  7. Провинциальный Админ /

    Доброго времени суток!

    Может не совсем по теме, но вопрос возник - не установилось обновление Windows6.1-KB2998527-x86 (х64) с локального WSUSа, не на всех машинах а выборочно, и это обновление не хочет ставиться в ручном режиме - пишет "обновление не применимо к этому компьютеру"

    На WSUSе пишет что компьютер обновлён. Компьютеры которые действительно обновлены находятся в тех же группах AD и в тех же группах WSUS.

    Разрядность верная и компьютеры точно Win7

    ПОМОГИТЕ - куда направить свой взор!

    1. Виталий Якоб / Автор записи

      Попробуйте посмотреть лог %windir%\WindowsUpdate.log

  8. Дмитрий Гончаров /

    Виталий подскажите пожалуйста как удалить значение PosReady реестра в случае если при его удалении появляется запись "Не удается удалить PosReady. Ошибка при удалении реестра" При использовании команды reg delete от имени админа пишет "отказано в доступе". Windows XPSP3.

    1. Виталий Якоб / Автор записи

      Если компьютер был перезагружен с этим ключом, то штатными средствами не удалить.
      Попробуйте загрузится, например с ERD Commander, и попробуйте удалить от туда.

      1. Дмитрий Гончаров /

        Спасибо, попробую

        1. Дмитрий Гончаров /

          Виталий Якоб
          С помощью ERD Commander ветку PosReady удалил.
          Спасибо за подсказку.

Добавить комментарий