Сегодня я бы хотел рассказать вам немного информации об особенном, в чем‑то уникальном издании, существующем в Windows 10 и Windows 11, выпускаемом Microsoft для китайского госсектора. Что такое Windows Enterprise G, она же Windows Enterprise Government China, чем она отличается от других изданий, и самое главное, как (и зачем) вам ее получить.
Начало истории уходит в противостояние американских и китайских департаментов, взаимные обвинения в шпионаже, санкциях, - ну все как у нас. Только вот у нас, в «лучшие годы» российско-американских отношений максимум до чего мы доходили, это до сертификации Windows нашим большим братом. Для этого ему давался доступ к исходному коду ОС, - айти специалисты в погонах имели возможность на территории Microsoft иметь доступ к изучению исходников ОС – на ПК, отключенном от интернета, любых сетей и съемных носителей, - чтобы предотвратить утечку кода. Частично задача была выполнена, - операционную систему (с рядом ограничений функционала) сертифицировали для использования в государственном секторе (тоже с рядом ограничений по применению).
Однако, сам Microsoft под Россию кода ОС не менял, - «ешьте или отойдите», - мы смотрели тот же код, который продавался в магазинах. Далее с кодом происходила уже совсем бяка – высчитывались и записывались контрольные суммы, ОС можно было устанавливать, но не обновлять. Обновления по изначальной задумке должны были после некой проверки тоже становиться доступными, но идея забуксовала. В целом, так как ОС была неизменной, все владельцы «сертифицированного Windows» могли установить обновления с сайта Microsoft, - но глубоко в бумажках от большого брата было прописано, что делать это нельзя, что в целом логично, - «сертифицированность» терялась.
Китайцы пошли гораздо дальше, что не удивительно, с учетом масштаба их госсектора, и того, что «госсектором» там понимают практически все, - Microsoft не мог позволить себе упустить такой кусок пирога. И он его вот уже почти десять лет успешно поедает, - правда, как и у нас, «лучшие годы» китайско-американской дружбы давно позади, китайский госсектор успешно слезает не только с продуктов Microsoft, но и с архитектуры Intel, да и вообще отказывается от использования некитайских продуктов. В чем-то оно, конечно, правильно. Мы же сегодня все-таки поговорим о той работе, что проделал Microsoft, чтобы договориться с китайским регулятором, чтобы остаться на рынке, и рассмотрим получившийся продукт. Я расскажу о том, как своими руками вы можете взять необходимые бинарники с серверов Microsoft и установить тот самый Windows без телеметрии, дефендера, кортаны, современных приложений и всей той мути, которой нас насильно кормят во всех других изданиях. Расскажу, как это сделать и для Windows 10 и для Windows 11, отличий практически нет. Сразу же начну с ложки дегтя в бочке мёда. Windows Enterprise G доступна лишь на китайском и английском языках. Два доступных языка интерфейса прописаны в ProductPolicy и подписаны цифровой подписью, - без изменения ProductPolicy при помощи ProductPolicyEditor вы получите синий экран, установив русский языковой пакет, а изменив его, сможете работать, лишь переведя загрузчик в режим разработчика, не требующей проверки подписей исполняемого кода, что небезопасно. Я сам всегда использовал только англоязычные ОС, мне это ограничение не помешало. Плеваться в сторону МС в комментариях смысла нет, - жаловаться, что не работает русский язык тоже. С'est la vie (такова жизнь). Если вы все еще читаете дальше, давайте начнем с короткого описания.
В целом я выше уже все рассказал вам в двух словах. Windows Enterprise G это издание для китайского правительства, выпускаемое по OEM каналу одновременно со всеми крупными изданиями Windows 10/11, но широкому пользователю мало известное. Основано оно на базе того же кода, что и все остальные – в глубине это Windows Professional, в которой средствами ProductPolicy разрешены некоторые компоненты, заблокированные в Professional (также как и в изданиях Enterprise, или Enterprise LTSC в Enterprise G политикой разрешены следующие отключенные в Professional компоненты: APP-V; UE-V; функционал Embedded; поддержка ReFS; поддержка 6ТБ против 2ТБ оперативной памяти и поддержка PersistentMemory; использование VPN до логона; поддержка RDMA и многое другое, - подробнее сами смотрите при помощи ProductPolicyEditor - очень рекомендую администраторам для понимания отличий между изданиями). При этом так горячо нелюбимый многими Защитник (он же Defender) выпилен из ОС практически начисто. Хотите антивирус или брандмауэр, - установите любое решение, что вам нравится. Кроме Microsoft Defender. Доставить Защитника в Enterprise G штатными средствами не удастся. Из ОС также выпилен браузер Microsoft Edge и все «современные» UWP приложения. Windows 11 Enterprise G хотя и имеет кнопку Start по центру, значительно больше напоминает Windows 7 чем любая версия Windows 10 или тем паче Windows 8. Внесенные изменения довольно существенно отражаются на том, как Enterprise G работает на старых компьютерах – оперативной памяти ей требуется на 150-300 мегабайт меньше, к диску обращается реже, к лотку приучена (нет излишне частых обращений к Windows Update за обновлениями Defender). В общем я предоставлю вам самим судить, нравится оно вам или нет. Надеюсь, что после публикации данной информации сборки с изданием Enterprise G станут у нас более доступны и вам не придется самим создавать себе образ по инструкции, что я предлагаю ниже.
Не буду рекомендовать или отговаривать вас от использования данного издания, выскажу лишь несколько своим мыслей перед тем, как начнем колдовать над сборкой.
• Всегда, начиная что-то делать со сборками Windows, изменяя пакеты и издания, по возможности, начинайте с первой сборки в текущей ветви, - обновления доставите потом. То есть сборка должна заканчиваться на .1. Подробнее чуть ниже.
• Рекомендую всегда брать первую сборку последней версии, для которой есть LTSC ветвь. Для 64-битных платформ (x64 и arm64) сейчас это 10.0.26100.1, для 32-битной платформы Windows 11 не выпускается, так что следует смотреть в сторону Windows 10, где первой сборкой последней LTSC ветви является 10.0.19041.1. Это на мой взгляд сейчас идеал для старых компьютеров, где нужна современная обновляемая ОС, без лишнего мусора.
• Обновления к Enterprise G применимы те же что и для других версий Windows, если вам удобно, включайте Windows Update или вручную загружайте MSU/CAB обновления. Защитник, Edge и другой мусор к вам не прилетят с обновлениями.
• Не бросайтесь сразу же исследовать издание Enterprise G N – да, такое издание также Microsoft собирается, в нем все то же самое, что в Enterprise G, минус медиа компоненты. Но издание Enterprise G N на рынок никогда не выводилось, и обновления на него не устанавливаются. Собрать версию 10.0.19041.1 или 10.0.26100.1 (или любую другую) вы сможете легко, но обновить Enterprise G N с Windows Update будет невозможно. Я вообще последний год использовал Windows 11 версии 10.0.25398.1, как последнюю официально работающую без поддержки процессором POPСNT инструкции (читай Microsoft добавила в требования к процессору в Windows 11 24H2 поддержку инструкции POPCNT, которой нет в старых CPU / Хабр (habr.com)). Microsoft официально эту сборку сделала доступной лишь с Windows Server 23H2 в прошлом году, но энтузиасты, до выхода 10.0.26100.1 массово пользовались именно этой сборкой для игр, используя UUP Dump для создания клиентских ОС, и в сообществе Steam об этом ходит много легенд, как о наиболее стабильной версии).
Перед началом работы предлагаю скриншот, - мною созданы виртуальные машины Windows 11 24H2 и Windows 10 22H2, по одной Professional, второй – Enterprise G, переделанная скриптом из первой. И пятая машина с 32-битной Windows 10 22H2 Enterprise G. Машины настроены на использование динамической памяти, стартовали с 2ГБ, через 15 минут работы значение назначенной памяти соответствует потребностям ОС в ресурсах. Цифры говорят за себя сами:
Ну что же, давайте начнем создавать свой установочный дистрибутив Windows Enterprise G.
Я буду пошагово описывать процесс для Windows 11 сборки 10.0.26100.1, но для других сборок (и платформ) процесс не сильно отличается, скрипты дам в конце статьи. Я исхожу из того, что вы знаете, что такое UUP Dump и можете сами загрузить с себе издание Professional. Рекомендую именно загружать с UUP, а не брать скачанный откуда-то (пускай даже с сайта Microsoft) – в ISO образы наверняка встроены какие-нибудь обновления, и процесс замены издания с Professional на Enterprise G с большей вероятностью завершится неудачно. Загружая же сборку с серверов Microsoft при помощи UUPDump.net, вы можете четко запретить интеграцию обновлений в образ. Например, отсюда я для примера загружаю 64-битную Windows 11 Professional 24H2 сборки 10.0.26100.1, отсюда 64-битную Windows 10 Professional сборки 19041.1, а отсюда 32-битную Windows 10 Professional сборки 19041.1. Далее я распаковываю архив, открываю файл ConvertConfig.ini и в нем указываю AddUpdates=0 и SkipISO=1. Первое предотвратит интеграцию обновлений в создаваемый Install.wim, вторая опция позволяет не запускать создание ISO образа – ибо мы хотим Enterprise G, зачем нам ISO с Professional? По ссылкам, что даны выше нажимаете Create download package (у меня фиолетовая рамка на картинке), так сделаете себе требуемый образ с Professional.
Далее нам потребуется с того же UUP файл Microsoft-Windows-EditionSpecific-EnterpriseG-Package.ESD – в нем Microsoft хранит всю (почти) информацию, необходимую для издания Enterprise G. Еще нам потребуется языковой пакет – английский - Microsoft-Windows-Client-LanguagePack-Package_en-us~31bf3856ad364e35~amd64~en-us~.esd – если вы загружали сборку через UUP Dump, то этот файл уже доступен в папке UUPs. Загрузить EditionSpecific файл там же на UUP Dump, для удобства даю ссылки на список файлов 64-битных сборок Windows 10 10.0.1904.1, Windows 11 10.0.26100.1 и 32-битной Windows 10 10.0.19041.1.
Найдите там Microsoft-Windows-EditionSpecific-EnterpriseG-Package.ESD и сохраните себе его. Ссылки на сами файлы не живут более суток, писать их тут смысла нет. Сохраняя ESD файл с UUPDump будьте внимательны с именем файла, - сайт его дает в виде UID, необходимо скопировать имя в буфер обмена и указать при сохранении файла.
Единственное, чего нет на UUP для создания это пары MUM/CAT от Microsoft-Windows-EnterpriseGEdition. При этом, так как в цифровой подписи CAT файла значится лишь имя пакета Microsoft-Windows-EnterpriseGEdition, но не его версия или платформа, то взяв из утекшего в сеть 32-битного образа Windows 10 Enterprise G файлы MUM/CAT Microsoft-Windows-EnterpriseGEdition~31bf3856ad364e35~x86~~10.0.177631.mum, я могу просто переименовать их в Microsoft-Windows-EnterpriseGEdition~31bf3856ad364e35~amd64~~10.0.26100.1, отредактировать текстовый MUM файл и использовать в 64-битной версии Windows 11. Вот такая сказка. 😊
Для Windows 11 10.0.26100.1 также в английском языковом пакете, в отличии от пакетов всех предыдущих версий Windows 10/11 отсутствует файл license.rtf с лицензией (в китайском языковом пакете он есть, - если будете собирать ОС на китайском языке, копирование файла лицензии из внешнего источника не требуется). При отсутствии файла лицензии в двух папках на момент установки ОС, или при несовпадении его контрольных сумм с желаемыми пакетом вы получите ошибку OOBE (Out of box experience) после выбора языка и страны, еще до указания имени пользователя. Интересно, что в сборках Insider Preview, в том числе в 10.0.26090.1 этот файл присутствовал и в английском языковом пакете, - и не менялся более года. Логично было предположить, что он подойдёт и для 10.0.26100.1, что и произошло. В итоге для сборки образа Windows 10 Enterprise G, Windows 11 Enterprise G версий 10.0.22000.1 или 10.0.22621.1 вам достаточно файлов с UUP + пару MUM/CAT Microsoft-Windows-EnterpriseGEdition, а для Windows 11 10.0.26100.1 потребуется еще и license.rtf.
Замену издания в любом образе Windows, если это не предусмотрено в c:WindowsservicingEditionsEditionMappings.xml следует выполнять именно с первой сборки текущей ветви, если вы создаете образ для инсталляции. Для уже установленного Windows, конечно, нет смысла требовать деинсталляции обновлений, - в случае необходимости заменить издание текущей ОС проще выполнить Upgrade, чем выполнять замену пакетов, - Upgrade можно выполнить в пределах ветви и на более старую сборку. Мы же сейчас с вами поговорим не про Upgrade текущей установленной ОС, а об unattended замене пакетов в offline WIM образе, что позволяет создавать любые издания.
Что нам требуется для выполнения задачи создания образа Windows 11 Enterprise G 10.0.26100.1
• Образ install.wim от Windows 11 Professional – английской x64. Будем считать, что вы сами знаете, как его получить, - начинать с UUP Dump, выбрать …, распаковать, убедиться, что в файле ConvertConfig.ini указано AddUpdates=0 и SkipISO=1 (поправить, если на так), запустить uup_download_windows.cmd, согласиться с предупреждениями и подождать загрузки файлов UUP и создания дистрибутива. Искомый файл будет в 26100.1_amd64_en-us_professional_3d68645c_convert_virtual26100.1.240331-1435.GE_RELEASE_CLIENTMULTI_X64FRE_EN-USsourcesinstall.wim (3d68645c идентификатор моего UUP пакета, у вас цифры будут другими, для Windows 10 собственно тоже изменятся лишь цифры в номере сборки и названии ветви обслуживания).
• Файлы Microsoft-Windows-EditionSpecific-EnterpriseG-Package.ESD и Microsoft-Windows-Client-LanguagePack-Package_en-us.esd (он же Microsoft-Windows-Client-LanguagePack-Package_en-us~31bf3856ad364e35~amd64~en-us~.esd) – доступны с того же UUP Dump по ссылке. Убедитесь, что используете ту же сборку и платформу!
• Файлы Microsoft-Windows-EnterpriseGEdition~31bf3856ad364e35~amd64~~10.0.26100.1.cat, Microsoft-Windows-EnterpriseGEdition~31bf3856ad364e35~amd64~~10.0.26100.1.mum и license.rtf (входят в архив со скриптами в следующем пункте)
• Собственно скрипты, создающие образ Enterprise G из Professional. Предлагаю версию для x64 Windows 11 24H2 10.0.26100.1, x64 Windows 10 10.0.19041.1 и x86 Windows 10 10.0.19041.1. Если будет серьезный интерес в других версиях, платформах, или изданиях, пишите развернуто вопросы в комментариях или ПМ, отвечу.
Cкачанный скрипт необходимо распаковать в некую папку, в нее положить install.wim из первого пункта и Windows-Client-LanguagePack-Package_en-us.esd из второго, в папку SxS распаковать Microsoft-Windows-EditionSpecific-EnterpriseG-Package.ESD. В папке reconstructed лежат те самые требуемые файлы MUM/CAT для Microsoft-Windows-EnterpriseGEdition и license.rtf для сборки 10.0.26100.1.
Внимание, в архиве есть NSudo.exe – утилита, позволяющая запускать скрипты в контексте SYSTEM (NT AuthorityСистема) – использование её в скриптах позволяет писать в папку Windows образа, не меняя оригинального владельца файлов и папок. Получается более «оригинально», то есть, так как делает сам Microsoft, но некоторые антивирусы на него срабатывают. Если вы не доверяете моему NSUDO, загрузите сами с GitHub.
Теперь запускаете командную строку в режиме администратора, переходите в папку с распакованным скриптом и Microsoft-Windows-EditionSpecific-EnterpriseG-Package.ESD, образом install.wim издания Professional и языковым пакетом Client-LanguagePack-Package_en-us.esd (имя может отличаться от версии к версии, скрипт все равно его переименует). Скрипт запускает через NSUDO подскрипт Build.cmd, монтирует install.wim от Professional, заменяет в нем пакет с изданием на Enterprise G, выполняет чистку компонентов, размонтирует образ, вносит изменения в мета теги образа install.wim.
Способом, описанным тут (с заменой файлов из EditionSpecific и связки MUM/CAT пакета Edition) можно также легко создать из Professional издания LTSC или Evaluation, или LTSC Evaluation. Ну и варианты с Enterprise G N, LTSC Enterprise N, Enterprise Evaluation N и LTSC Enterprise Evaluation N. Следует помнить, однако, что Microsoft не выпускает обновлений для Enterprise G N и Enterprise Evaluation N (в отличии от Enterprise G и Enterprise Evaluation, которые легко обновляются), - вы не сможете установить кумулятивного обновления на Enterprise G N без предварительной модификации update.mum. Если ваша задача собрать платформу домашнего Windows компьютера с минимальными требованиями к железу, вы, конечно, можете смотреть в сторону 32-битной Windows 10 Enterprise G N, и обновить ее, исправив в update.mum, например, Microsoft-Windows-EnterpriseSNEvalEdition на Microsoft-Windows-EnterpriseGNEdition, но выигрыш в случае N не стоит свеч, - 10-20 мегабайт памяти, за отсутствие базовых кодеков и возможности обновляться. Хотя, если вы специально хотите, чтобы система не хотела обновлений, возможно, это ваш путь. Не могу, впрочем, гарантировать, что ОС не будет пытаться себя обновить. Обновить не сможет, но попытки будут! 😊
Я аналогичным (существенно более сложным, конечно, но в целом аналогичным) способом создавал клиентские образы Windows 11 на базе сборки 10.0.25398.1, под которой выходил лишь Windows Server 23H2 (Core). Все необходимые файлы EditionSpecific есть на UUP, однако, отсутствует Client-LanguagePack. Его можно взять из чуть более ранних сборок, - если эта авантюра кого-то всерьез интересует, пишите ПМ, отвечу. Тут это излишне. Я так лишь изучаю структуру ОС. Лично мне глубокое понимание структуры ОС помогает выполнять сложные проекты по внедрению, решать нестандартные задачи, и, конечно, я люблю делиться опытом в те редкие дни, когда нахожу время для проведения тренингов. Ну а кратко всегда рад помочь энтузиастам, ищущим свой путь к знаниям. Пишите.
Автор: akibkalo