Сегодня я хочу начать разговор о редко обсуждаемой в сети, но крайне интересно технологической особенности ОС Windows – о политике продукта (далее буду назвать её оригинальным названием Product Policy). Каким образом Microsoft решает, сколько RDP сессий возможно одновременно открыть на ОС (почему в IOT их 2)? Где сказано, что у издания Windows Enterprise G может быть лишь английский или китайский языковой пакет? Где определено максимальное количество процессоров и памяти, максимальное количество подключений к расшаренной сетевой папке, как решается поддерживает ли ОС RDMA, требует ли SMB Signing, отключаются ли SMB1, Defender и Cortana. Да практически все компоненты и отличия разных изданий Windows контролируются именно через Product Policy, и пора бы нам разобраться, что это такое, где хранится, как изменять, и к чему приведут изменения.

Это лишь часть тех значений Product Policy для некоторых изданий, на которых остановился мой взгляд. Об этих параметрах (точнее об их части) будет следующая статья, сегодня цель этой картинки привлечь ваше внимание в комментарии - что именно интересно обсудить
Это лишь часть тех значений Product Policy для некоторых изданий, на которых остановился мой взгляд. Об этих параметрах (точнее об их части) будет следующая статья, сегодня цель этой картинки привлечь ваше внимание в комментарии - что именно интересно обсудить

Я расскажу об инструменте, позволяющем не только смотреть, но и изменять Product Policy, поговорим о Product Policy Editor, рассмотрим, где хранятся текущие значения Product Policy в Windows, и почему они возвращаются к исходным значениям, ну и, конечно, о том, можно ли как-то поменять это всё раз и навсегда для своей ОС, навсегда отключив нелюбимый Defender, разрешив неограниченное количество RDP сессий.  Ну и, конечно, cделаем ранее невозможное добьёмся русского интерфейса для интересного издания, описанного мной в наделавшей шума статье Windows 11 Enterprise G – Что за издание для правительства Китая и зачем оно вам? Судя по огромному интересу читателей именно к Windows Enterprise G, я начну с неё, а другие аспекты Product Policy, сравнение параметров между изданиями расскажу в другой статье, там же поясню свою мысль о том, что теперь «все издания нужны, все издания равны», мы можем включить ранее выключенные и отключить ненужные компоненты в любых изданиях, например, разрешить многое в самом лёгком Starter, или поотключать ненужное в любимом мной IoT Enterprise LTSC.

Итак, Product Policy это список разнообразных параметров, определяющих работу тех или иных компонентов ОС. Список совсем не малый, в Windows 11 24H2 насчитывает 615 таких пунктов, а в Windows 10 22H2 – 534 пункта. В любом издании все эти параметры определены в файле \Windows\System32\spp\tokens\skus\EDITION\EDITION-ppdlic.xrm-ms, где на месте слова EDITION в имени каталога и файла значится название SKU издания (Professional, EnterpriseG, IoTEnterpriseS, Cloud, etc) или тип лицензии (например, csvlk-pack). Данный файл у каждого издания свой, имеет все параметры, определяемые Product Policy, идёт внутри Install.wim и применяется к образу при установке, и при каждой перезагрузке ОС. Он подписан цифровой подписью, так что его модификации будут обнаружены службой sppsvc. При загрузке содержимое этого файла загружается в реестр в ключ HKLM\ SYSTEM\CurrentControlSet\Control\ProductOptions\ProductPolicy, и именно отсюда ОС и берёт значения по ходу работы.

Как же посмотреть на список параметров и их значения? Можно ли их изменять?

Существует интересная программа Windows Policy Editor, давно разрабатываемая энтузиастами MyDigitalLife. Она доступна в том числе в исходниках и умеет работать не только с онлайн системой, но и с оффлайн образами. Вы можете менять любые параметры из утилиты:

Windows Product Policy Editior
Windows Product Policy Editior

Однако, чтобы записать значение для онлайн ОС (не образ или подмонтированный реестр), вам потребуется перезагрузка с режимом SetupType=1, иначе будете получать ошибку сохранения изменений:

Нельзя менять политику онлайн, только в Setup Mode
Нельзя менять политику онлайн, только в Setup Mode

Итак, я перезагружаюсь в Setup Mode и снова запускаю Product Policy Editor. Один из любопытных параметров называется Kernel-MUI-Language-Allowed, в издании Enterprise G его значение выставлено на zh-CN; en-US. У всех остальных изданий значение имеет EMPTY (именно текстом слово EMPTY). Если это поле изменить – в реестре через утилиту и в файле политик в Windows\System32\spp\tokens\skus, а также отключить службу sppsvc, то мы сможем установить любой Language Pack на Windows Enterprise G (и Windows 10 и Windows 11, как 32-бит, так и 64-бит). Для этого в Product Policy Editor найдём параметр Kernel-MUI-Language-Allowed, зададим ему значение EMPTY, сохраним значение выбрав Save changes to the registry.

Далее, как я уже говорил, нам необходимо отредактировать файл, в котором определены требования лицензии к изданию. Для EnterpriseG сразу после установки это файл C:\Windows\System32\spp\tokens\skus\EnterpriseG\EnterpriseG-ppdlic.xrm-ms, а если вы активировали ОС через KMS, сменив серийник на KMS ключ, то имя файла лицензии изменилось на C:\Windows\System32\spp\tokens\skus\csvlk-pack\csvlk-pack-ppdlic.xrm-ms. В этом файле хранятся все особенности издания, в нашем случае мы хотим изменить значение ключа Kernel-MUI-Language-Allowed, заменив в нём zh-CN; en-US на EMPTY. Для этого придётся похимичить с NTFS правами доступа на этот файл или запускать редактирование с правами System. Я по старинке используя утилиту NSUDO с параметрами -U:T -P:E запускаю CMD.exe, из командной строки, получаю права системы, после чего могу отредактировать данный файл в блокноте.

NSUDO позволяет запустить процесс из под NT AUTHORITY\SYSTEM
NSUDO позволяет запустить процесс из под NT AUTHORITY\SYSTEM
Необходимо найти кусок с Kernel-MUI-Language-Allowed и заменить в нём zh-CN; en-US на EMPTY.
Необходимо найти кусок с Kernel-MUI-Language-Allowed и заменить в нём zh-CN; en-US на EMPTY.

Наконец, мне необходимо отключить службу sppsvc, запустив из той же CMD с правами системы редактор реестра REGEDIT, я заменю значение ключа с 2 на 4 (отключу запуск службы).

Заменить 2 (авто) на 4 (отключен)
Заменить 2 (авто) на 4 (отключен)

Далее просто перезагружаюсь и спокойно меняю язык интерфейса на русский. Вуаля.

Русский язык в Windows 11 Enterprise G
Русский язык в Windows 11 Enterprise G
Для 32-битной Windows 10 и Windows 11 использовал те самые образы, которые готовил и предлагал желающим на тестирование в статье  Windows 11 Enterprise G – Что за издание для правительства Китая и зачем оно вам? / Хабр (habr.com), ничего переустанавливать не требуется. Следует, правда, понимать, что отключив SPPSvc и изменив файл лицензии, установка дальнейших кумулятивных обновлений станет невозможной. Небольшие обновления, не затрагивающие лицензии ставятся без проблем.
Для 32-битной Windows 10 и Windows 11 использовал те самые образы, которые готовил и предлагал желающим на тестирование в статье Windows 11 Enterprise G – Что за издание для правительства Китая и зачем оно вам? / Хабр (habr.com), ничего переустанавливать не требуется. Следует, правда, понимать, что отключив SPPSvc и изменив файл лицензии, установка дальнейших кумулятивных обновлений станет невозможной. Небольшие обновления, не затрагивающие лицензии ставятся без проблем.

В следующий раз расскажу подробнее о Product Policy для других целей (список возможно интересных задач озвучен в первом абзаце статьи и приведён в виде таблицы). Если остались вопросы, отвечу в комментариях. Интересна дискуссия о редактировании Product Policy для других изданий (Windows IoT Enterprise LTSC, Windows Server, Azure Stack HCI), об этом больше как раз в следующей статье, постараюсь осветить основные вопросы из комментариев. Ставьте лайк, подписывайтесь.

Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud - в нашем Telegram-канале 

Перейти ↩

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

Комментарии (6)


  1. Mingun
    16.09.2024 14:54

    Интересные у вас статьи, благодарю. У меня все вертится вопрос -- а насколько это легально? Вот прям очень сложно поверить, что все эти инструменты лежат в свободном доступе, с описаниями, ничего не требует никаких активаций, никакие подписи нигде не проверяются, образы качаются без авторизаций, меняй все, что хочешь (учитывая, что все эти настройки установочные, которые менять в процессе работы системы вообще не нужно и странно, что от этого нет защиты). Собственно, почему раньше этого никто не делал и ваши статьи появляются только сейчас?


    1. Marwin
      16.09.2024 14:54
      +1

      А теперь представьте, как полыхает у разработчиков ядра винды и прочих причастных, когда каждый первый фанат линуксов и прочего открытого ПО с пеной у рта пытается доказать насколько закрыта винда для пользователя, как сложно активировать ОС и сколько препон установлено для нормальной жизни пользователя. Но корпоративная этика не позволяет особо распространяться насколько это... неблизко к действительности "для знающих".

      Ну а к вопросу о легальности... вон в macos в принципе нет системы активации и запрета запуска не на маках, но это же не значит, что вы получаете юридическое право использовать эту ОС на хакинтоше, если смогли её там запустить.


    1. akibkalo Автор
      16.09.2024 14:54
      +2

      Использование ПО без лицензии нелегально, это очевидно.

      Однако, решить вопрос о том, является ли использование ПО без лицензии нелегальным может лишь правообладатель. В России правообладателя (Майкрософт) в настоящее время нет, против компании возбужены дела и многомиллионные штрафы, так что здесь на нарушения можно смотреть менее строго

      Технически ограничений практически нет. В EnterpriseG особенности.


    1. old_merman
      16.09.2024 14:54
      +1

      меняй все, что хочешь (учитывая, что все эти настройки установочные, которые менять в процессе работы системы вообще не нужно и странно, что от этого нет защиты).

      Ну вот например предназначенный для всяких сомнительных манипуляций с ОС NtLite давным-давно живёт и здравствует, и даже вполне официально продаётся за приличные деньги - видимо, юридически его существование как-то обосновано.


  1. old_merman
    16.09.2024 14:54
    +1

    Наконец, мне необходимо отключить службу sppsvc

    А отключение sppsvc разве не приведёт к ошибкам проверки активации ОС и другого софта от MS, использующего аналогичную систему лицензий (офис, ...) ?

    И кстати, WaasMedic случайно, его обратно не включит?


    1. akibkalo Автор
      16.09.2024 14:54

      Все зависит от способов активации, я не имел проблем с ОС и офисом. Про WaasMedic не знаю.