Установщик Extended Security Updates

14 января 2020 года завершается срок расширенной поддержки Windows 7. В этот день будут выпущены последние, доступные всем, обновления для данной операционной системы. Тем не менее, компания приняла решение продлить поддержку для организаций, сроком до трех лет, на платной основе.

Extended Security Updates
В течение этих трех лет будут продолжать выпускаться обновления, доступные по подписке. Организации смогут оформить такую подписку на один, два или три года для версий Professional, Ultimate и Enterprise в рамках программ корпоративного лицензирования. Оформившим подписку, корпорация предоставит специальный MAK ключ на каждый год подписки, работающий независимо от ключа активации. Домашним пользователям корпорация, соответственно рекомендует перейти на использование более новых операционных систем.

Bypass ESU
В ноябре 2019, за два месяца до окончания поддержки, на форуме MDL(нужна регистрация), команда под руководством abbodi1406 представила проект, который вероятно позволит домашним пользователям бесплатно устанавливать обновления, выпущенные в рамках платной подписки.
Первые настоящие обновления по платной подписке, станут доступны только в феврале 2020 года, однако эффективность инструмента можно предварительно оценить уже сейчас с помощью установки специального тестового обновления - KB4528069, выпущенного корпорацией для проверки готовности систем к получению и установке таких обновлений. Это обновление не несет какой либо другой полезной нагрузки и необходимо исключительно в целях тестирования.
Напомню, что начиная с августа 2019 года, для корректной установки обновлений, в системе дожны быть предварительно установлены обновление KB4474419 (желательно последней версии), включающее поддержку SHA-2, и обновление сервисного стека KB4490628 за март 2019 г.(необходимое также и для установки последней версии обновления стека KB4531786 за декабрь 2019 г.). После этого вы можете установить утилиту Bypass, и попробовать выполнить установку тестового обновления.
На данный момент доступна четвертая версия утилиты, которая, как и предшествовавшая ей третья версия, позволяет пока выполнить только установку, заранее скачанного обновления, но не предоставляет возможности получения таких обновлений через Центр обновления.
Принцип работы третьей версии утилиты, заключался в том, что производилась регистрация специально написанной библиотеки, в качестве Application Verifier для системного процесса TrustedInstaller. И при проверке этим процессом, системы на валидность для установки обновлений по программе платной поддержки, данная библиотека через соответствующую функцию всегда возвращала положительный результат.
Однако в новой версии принцип работы претерпел определенные модификации, позволившие решить проблему, связанную с некоторым замедлением работы процесса TrustedInstaller, присутствовавшую в третьей версии. Теперь, для редакций Professional, Ultimate и Enterprise, которые официально поддерживаю установку платных обновлений, по умолчанию используется один способ, а для остальных редакций - несколько иной.
В первом случае, модифицированный файл библиотеки, размещается в том же каталоге, что и исполняемый файл процесса TrustedInstaller, и автоматически подхватывается им при запуске. Общий массив функций переадресуется в неизменяемую исходную библиотеку, а вывод функции, отвечающей за проверку системы на валидность при установке обновлений, по прежнему возвращает положительное значение, позволяющее ее успешно проходить.
Для остальных систем используется другая библиотека, которая регистрируется в качестве отладчика (debugger) для процесса TrustedInstaller. Она подменяет идентифицирующее значение, значением нужной редакции и также, как и в первом случае обеспечивает необходимую функциональность, при прохождении системы на валидность.
К сожалению, в отличие от первого метода, второй метод, используемый для редакций, официально не поддерживающих установку платных обновлений, может привести к повышенному детекту со стороны антивирусов. Но, имхо, это не является большой проблемой - использование исключений для антивирусов никто не отменял.
Опция, которая путем установки локального WSUS прокси сервера (или возможно с помощью иного механизма), позволила бы получать платные обновления непосредственно через Центр обновлений пока не была представлена в данной версии, возможно она будет реализована в будущем, после появления реальных обновлений в феврале.

ESU Installer
В ходе некоторых изысканий, связанных с особенностями установки обновлений, я случайно наткнулся на определенный механизм, который так же как и третья версия утилиты Bypass, позволял локально установить тестовое обновление KB4528069.
Как оказалось, в системе, в хранилище компонентов ("C:\Windows\winsxs") есть компонент - "x86_microsoft.windows.s..ation.badcomponents_31bf3856ad364e35_6.1.7600.16385_none_3868158f24725705", в котором находится xml файл "suppression.xml". Если в ходе установки обновления, происходит ошибка, связанная с компонентом, который присутствует в списке компонентов в данном файле, то эта ошибка подавляется и установка обновления успешно завершается.
Таким образом, если добавить в это файл определения компонентов, с которыми связана проверка валидности системы на возможность установки по программе Extended Security Updates (на данный момент это манифест компонента - "_microsoft-windows-s..edsecurityupdatesai_", соответствующей разрядности и версии), то мы добьемся успешного результата установки такого обновления. На этом принципе и реализован скрипт, который парсит имена нужных компонентов в обновлении и вносит их определения в данный файл.
Так как многие необходимые функции уже были реализованы в скрипте дополнительной очистки, то чтобы не выполнять двойной лишней работы, я просто добавил туда соответствующую возможность как отдельный пункт меню - "ESU Installer". Так же как и в случае с Bypass, вы можете проверить его работу, с помощью установки тестового обновления. Для этого просто необходимо разместить msu или cab файл этого обновления в одну папку со скриптом и выполнить данный пункт. Если скрипт определит, что в текущей папке находятся подходящие обновления, то будет выполнена их обработка, и появится запрос об установке, вы можете выбрать "Y" - для ее начала, или нажав любую другую клавишу, отказаться.
Для гарантии успешной установки обновления, измененный файл должен присутствовать в хранилище до полного завершения процесса. Поэтому для сохранения целостности системы, после установки и перезагрузки, пользователю нужно будет повторно запустить скрипт, который вернет этот файл в исходное состояние (в данном случае, пункт сработает как переключатель).

Интеграция в образ
Удалось также выяснить, что используя данный механизм, можно не только выполнить установку таких обновлений на живую систему, но и интегрировать их в образ. Оказалось, что для этого необходимо было просто добавить, малоиспользуемый параметр, для команды установки пакетов через дисм (IgnoreCheck). Также как и в случае с живой системой - вы можете опробовать данную возможность с помощью тестового обновления, но не забудьте перед этим предварительно интегрировать все необходимые обновления, перечисленные выше. Если после запуска, скрипт определит, что в системе смонтирован образ, то он произведет интеграцию обновления в этот образ, а не на живую систему. При этом не имеет значения в какую папку вы его смонтировали, и где при этом находится сам скрипт - все операции по определению будут выполнены автоматически, после того, как вы выберете соответствующий пункт скрипта. Необходимо отметить, что для успешной установки данного образа, измененный файл также должен оставаться в нем до завершения установки системы. Поэтому о его замене на исходный, для сохранения целостности системы, должен будет позаботиться сборщик, в конце установки, например через SetupComplete.cmd, или любым другим удобным ему способом.

Надеюсь, что это будет работать и в случае установки реальных обновлений по платной подписке в феврале. Исключением, вероятно, станут только обновления для NET Framework 4.x, так как на семерке, они имеют структуру, отличную от обычных msu обновлений (exe). Но, как говорится на безрыбье, и рак может быть рыбой, поэтому, полагаю, что иметь какой-то альтернативный способ не помешает.

Вам нужно скачать файл "UpdateClean.zip"

Скачать с Облака Mail.ru Скачать с Яндекс.Диска Скачать с Microsoft OneDrive

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