Windows 11, 10, etc - Вадим Стеркин
13.8K subscribers
279 photos
5 videos
8 files
1.04K links
Авторский канал. Windows, безопасность, мобильный мир:
• тайное знание
• профессиональный ликбез
• гадание по логам
• срыв покровов
• доставка пруфов

Чат: @winsiders
Блог: outsidethebox.ms
Oбратная связь: @vsterkin
Поддержать ₽: boosty.to/sterkin
Download Telegram
💩 Новое в блоге: О приложении Windows Backup и резервном копировании Windows в 2023 году

На протяжении последних двух лет, с момента первого выпуска Windows 11, Microsoft занимается перенаправлением резервного копирования с локальных дисков в облако.

Кульминацией стали релиз бессмысленного приложения Windows Backup и деструктивные изменения в проводнике, приуроченные к выходу версии 23H2.

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

➡️ Читайте разбор в блоге: https://www.outsidethebox.ms/22119/
⚙️ Новая вкладка в Chromium: как заменить содержимое на свою страницу

Сегодня в рубрике "Возвращаясь к напечатанному" полная замена содержимого новой вкладки в браузерах на основе Chromium. В 2017 году я публиковал два способа:

🔹 свое расширение
🔹 стороннее расширение New Tab Redirect с перенаправлением на локальную HTML-страницу с фоновой картинкой

От первого способа я давно отказался. Кажется, Chrome задолбал подопечного пользователя предупреждениями или вообще заблокировал расширение. Второй способ работал отлично, но недавно вместо любимой картинки на вкладке стал отображаться чистый белый холст 🤔

👉 Быстрое тестирование выявило, что проблема возникает исключительно с локальной веб-страницей. Это я выяснил, закинув её вместе с картинкой на сервер своего блога. Видимо, в Chromium закрутили какие-то гайки.

Решение понятно. Но поскольку ссылка на страницу отображается в адресной строке новой вкладки, пользователь запросил что-то более нейтральное / анонимное. Задача сводится к тому, как бесплатно создать свой статичный веб-сайт за 5 минут 🌐

Я выбрал такой вариант:

1. Создал аккаунт на GitHub с именем типа g5LBWB5NQ0TnDecF

2. Создал новый публичный репозиторий с именем g5LBWB5NQ0TnDecF.github.io (совпадение с именем пользователя обязательно)

3. Прямо в браузере загрузил в корень репо файл index.html и прописанную в нем картинку pic.jpg

<!DOCTYPE html>
<html>
<title>New Tab</title>
<!-- Своя картинка -->
<body style="background-image: url(pic.jpg);
background-repeat: no-repeat;
background-position: center center;
background-attachment: fixed;
background-size: cover;">
</body>
<!-- Просто цвет
<body style="background-color:#333333;"> </body>
-->
</html>


4. В расширении New Tab Redirect указал https://g5LBWB5NQ0TnDecF.github.io

Готово! ✌️
🔐 О состоянии шифрования BitLocker по умолчанию в Windows

Второй день из каждого утюга вещают, что в Windows 11 Pro по умолчанию включено шифрование BitLocker, что влечет снижение производительности SSD до 45%. Первоисточник - Tom's Hardware, а дальше уже может зависеть от фантазии переводчика.

Я хочу прокомментировать заявления автора статьи, касающиеся работы BitLocker в ОС Windows. В разных местах материала он делает массу обтекаемых и неверных заявлений. Я не буду цитировать, а просто изложу их своими словами.

Эти утверждения в совокупности вводят в заблуждение:

• Windows 11 Pro форсирует включение шифрования, а на Windows 10 Pro шифрование скорее всего не включено.

• Если у вас [в Windows 11] локальный аккаунт нежели учетная запись Microsoft (MSA), шифрование не включается.

• Windows 11 Home не поддерживает BitLocker, поэтому там шифрование не включается. (Однако автор тут же оговаривается: кажется, на некоторых ноутбуках включено :)

👉 У меня есть подробная #классика блога на эту тему: Автоматическое шифрование BitLocker в Windows. И подзаголовок там в самый раз :) Рекомендую вам прочесть рассказ целиком, а здесь задействую некоторые моменты.

ℹ️ На самом деле шифрование устройств с помощью BitLocker автоматически включается начиная с Windows 8.1 во всех изданиях. Но происходит это только на устройствах, соответствующих определенным требованиям, которые со временем слегка ослабили. Поддержка автоматического шифрования проверяется элементарно.

🔓 Если устройство подходит, BitLocker включается во время установки с незащищенным ключом и приостанавливается. В английской терминологии это состояние называется Suspended, и задать его можно командлетом #PowerShell Suspend-Bitlocker. На картинке↓ шифрование включено, но приостановлено - диск зашифрован, но не защищен. Поэтому неверно заявление автора тестов, что с локальным аккаунтом диск не шифруется.

🔑 Когда первый вход выполняет администратор с MSA или компьютер вводится в домен, шифрование активируется и защищается TPM. Одновременно 48-значный пароль восстановления сохраняется в облачных настройках MSA, а в домене – в Entra ID или AD DS при включенной политике.

Проверка заявлений, касающихся производительности, тоже не помешала бы. Но я оставляю ее вам. С помощью CrystalDiskMark можно относительно быстро прикинуть влияние любого программного шифрования на свою систему. Только, пожалуйста, тестируйте производительность диска, а не его кэша ✌️
🗒 О сохранении и восстановлении сессий в Блокноте

Microsoft постепенно раскатывает всем нововведение в блокноте (версия 2309.28+). С настройкой на картинке↓ при запуске восстанавливаются все открытые в прошлый раз файлы, в том числе не сохраненные. Равно как при закрытии блокнота не задается вопрос, сохранить файлы с изменениями или нет. И уж тем более блокнот перестанет блокировать завершение работы или перезагрузку 😎

Внешне это похоже на Notepad++, но есть нюансы.

1️⃣ Блокнот не сообщает об удалении или перемещении файла. Закрыв удаленный файл, вы потеряете его без предупреждения.

2️⃣ Синхронизация сессий между разными системами не предусмотрена. В N++ облачную папку можно указать в настройках. В блокноте такого нет, разумеется. Файлы сессии находятся в папке

%localappdata%\Packages\Microsoft.WindowsNotepad_8wekyb3d8bbwe\LocalState\TabState\

Однако в отличие от N++, файлы блокнота хранятся не в текстовом формате. У них расширение BIN, а содержимое закодировано. Если переименовать папку, блокнот воссоздает ее после запуска. Но игнорирует подкинутые в нее файлы из старой папки. Поэтому не имеет смысла перенос папки в облако символической ссылкой 🤷‍♂️

Вряд ли все позитивные нововведения в блокноте за последние годы способны подвигнуть людей к переходу на него с более мощных редакторов. Но в наличии таких функций из коробки кроме пользы нет вреда ✌️
⚙️ Как получить доступ к служебному разделу, не изменяя его свойства

Сегодня в рубрике "Возвращаясь к напечатанному" получение доступа к разделу со средой восстановления. Чуть менее года назад я разбирал это в блоге наряду с тем, как предотвратить назначение буквы диска. Там решение крутилось вокруг снятия и присвоения служебных свойств с помощью diskpart.

А тут я изучал содержимое раздела Windows RE на разных системах. Менять свойства туда-сюда утомило с третьего раза, и я посмотрел в сторону #PowerShell. С целью прямого доступа нежели изменения свойств, потому что у Set-Partition не реализовано свойство Required.

ℹ️ В блоге я приводил GUID - идентификатор раздела восстановления, поэтому легко сделать выборку из списка разделов. Нас интересует свойство AccessPaths, т.е. путь доступа. (Его также можно посмотреть нативной командой mountvol, но в списке может оказаться без буквы также раздел MSR - на глаз не отличить.)

$id = "{de94bba4-06d1-4d40-a16a-bfd50179d6ac}"
Get-Partition | where GptType -eq $id | select Type,AccessPaths

Type AccessPaths
---- -----------
Recovery {\\?\Volume{9896bfe9-69de-4db1-a6f4-ba4630addab3}\}


Теперь легко вывести содержимое раздела - рекурсивно, включая скрытые папки и файлы. Можно даже ванлайнером, но так нагляднее:

$id = "{de94bba4-06d1-4d40-a16a-bfd50179d6ac}"
$lpath = (Get-Partition | where GptType -eq $id).AccessPaths[0]
Get-ChildItem -Force -Recurse -LiteralPath $lpath


Меня интересовало содержимое winre.wim, и скопировать его не составило труда:

Copy-Item -LiteralPath "\\?\Volume{9896bfe9-69de-4db1-a6f4-ba4630addab3}\Recovery\WindowsRE\Winre.wim" -Destination C:\temp\

В данном случае файл скрытый и системный, но про управление атрибутами файлов в PowerShell я уже рассказывал ✌️
👤 Пользователи: продвинутые vs. опытные

Словосочетание advanced users пришло к нам из английского языка в двух вариантах. Литературный перевод - опытные пользователи, а разговорный - продвинутые, просто калька с английского. Я, однако, исторически не ставил знак равенства между этими значениями.

👉 Для меня продвинутый пользователь - это тот, кто считает себя опытным, но таковым не является! :)

Тезис проще пояснить на примерах (П - продвинутый, О - опытный).

⚙️ Настройка системы

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

О: имеет скрипт / REG-файл, втч применяемый во время установки; не парится по поводу потребления памяти службами лет дцать

💾 Программы

П: устанавливает программы и утилиты на каждый чих, втч из сомнительных источников; предпочитает портативный софт на другом разделе

О: хорошо знает встроенные возможности ОС, задействует скрипты; утилиты держит в папке, где на запись нужны права админа

🔬 Изучение ОС и программ

П: экспериментирует на живой системе, что нередко заканчивается проблемами и даже переустановкой начисто

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

Список можно продолжать, но идея понятна. А вы какой пользователь?

💪 - продвинутый
👌 - опытный

Ожидаю подавляющее преимущество опытных! :)
⚙️ Групповые политики Windows 11 23H2

🔷 ADMX Windows 11 23H2 - административные шаблоны.

🔷 XLSX Windows 11 23H2 - все параметры реестра групповых политик. Незаменимая штука для домашних изданий. Если, конечно, политика в них срабатывает.

Кстати, после выпуска XSLX для 22H2 в центр загрузки выкладывали два его обновления - версии 2 и 3. По ним можно отфильтровать новый файл - все новинки за год на картинке ↓

🔷 Веб: https://gpsearch.azurewebsites.net/ - новейшие политики появляются не моментально, зато удобно ссылаться.
▶️ Как массово удалить папки, распакованные из архивов

В чате участник Павел задал такой вопрос:
В папке ~450 разных файлов, папок и архивов *.rar. Периодически рары разархивируются, и получается папка с тем же именем, что и rar. Стоит задача удалить эти папки, оставив при этом архивы. Как отсортировать, чтобы снизу папки сразу был её родительский архив?

Очевидно, он рассматривал вариант сортировки в файловом менеджере. Хотя надо сразу смотреть в сторону #PowerShell. Для начинающих это отличное практическое упражнение! Впрочем, этому унылому занятию Павел предпочел ожидание поста в канале 😎

Я бы решал задачу в лоб:
1. Отбираем только папки.
2. Для каждой проверяем наличие архива с таким же именем, "приклеивая" к имени папки расширение.
3. При совпадении удаляем.

$folders = Get-ChildItem -Path "C:\test" -Directory
foreach ($folder in $folders) {
if (Test-Path "$($folder.FullName).rar")
{Remove-Item $folder -Recurse -WhatIf}
}


Василий Гусев предложил нестандартное решение - группировка! 🤔 Мне оно в голову не пришло, хотя я трижды показывал Group-Object в блоге:
поиск дубликатов драйверов
выборка уникальных ссылок с веб-страниц
замена дубликатов файлов на жесткие ссылки

Доработав идею, я получил такой конвейер:
1. Группируем по имени папки и файлы без расширения с помощью свойства BaseName.
2. Отбираем группы, где с одинаковыми именами ровно два объекта - файл и папка!
3. Из каждой группы выбираем папки и удаляем их.

Get-ChildItem -Path "C:\test" | Group-Object -Property BaseName |
Where-Object {$_.Count -eq '2'} | ForEach-Object {$_.group} |
Where-Object {$_.Attributes -eq 'Directory'} | Remove-Item -Recurse -WhatIf


⌛️ Примечательно, что с обоими способами перекликается #классика блога Как массово переименовать файлы по маске в PowerShell. Там я склеивал имя файла из фрагментов, одним из которых было свойство BaseName.

🤖 И неудивительно, что ChatGPT тоже задействовал это свойство, когда я поставил задачу перед ним. Он пошел тем же путем что и я, но выбрал перебор архивов нежели папок и создал побольше переменных. В свою очередь чат-бот Bing практически повторил мой способ. Но для определения папки он использовал старое свойство объекта PSIsContainer (параметр -Directory у dir доступен более 10 лет, с версии 3.0).

Короче, получив направление в PowerShell, Павел мог сразу спросить чат-бота. И не дожидаться, пока кожаный мешок опубликует решение его простенькой задачи в канале ✌️
🔎 О поиске на панели задач

На днях Noxy занес в центр отзывов любопытное предложение - переместить поле поиска в левую часть панели задач, рядом с кнопкой виджетов. Действительно, выравнивание панели задач по центру хорошо смотрится только у Microsoft на скриншотах чистой системы 😎

А на практике значки панели задач упираются в значки трея, в то время как слева остается пустое пространство. На картинке↓ типичный вид моей рабочей системы. Впрочем, здесь нет кнопки виджетов, и поиска тоже нет, и это не случайно!

👉 Я считаю предложение интересным, но не имеющим шансов на успех в краткосрочной перспективе. Более того, отдельный поиск на панели задач вообще не нужен!

Мы же обходились без него с Windows Vista, т.е. с 2006 года. Открывали Пуск и вводили запрос. (Для поиска программ это был огромный глоток свежего воздуха по сравнению с трехэтажными меню XP.) Windows 8 многим сломала привычный UX - там не было ни кнопки Пуск, ни поля поиска на начальном экране. Хотя мой процесс не поменялся - быстрее всего нажимать клавишу Win и тут же печатать запрос ⌨️

В Windows 10 меню Пуск довели практически до совершенства, в том числе по отзывам пользователей. Но поле поиска туда так и не добавили. Я видел несколько человек, пересевших с Windows 7 на 10 и поначалу входивших в ступор: "А куда вводить запрос?" Именно для них на панель задач воткнули кнопку поиска, которую с годами старательно разукрашивали. Оформляли её в виде фейкового поля поиска и внедряли туда разноцветную движуху 🎉

В Windows 11 поле поиска вернули в меню Пуск, но с панели задач поиск не убрали. Возможно, потому что с 2015 года уже приучили пользователей тыкать в эту ненужную кнопку. А еще скорее из-за маркетинга - цветное мельтешение на панели задач всегда перед глазами, а ведет оно в Bing! Не случайно одно из недавних обновлений включало убранный с панели задач поиск 🙄

Да, размещение поля поиска слева частично решит проблему с центрированием панели задач (хотя эффект будет минимальным, когда вместо поля - кнопка). Но это породит другую нестыковку: одна и та же панель с результатами поиска будет открываться совсем в разных местах - Пуск посередине, а поиск слева 🤷‍♂️

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

Наконец, есть еще одна причина, по которой поиск на панели задач скоро станет лишним - Copilot! Сейчас он не способен заменить локальный поиск, но должен же этому научиться. Иначе такой ИИ нам не нужен! Поэтому пока мы будем видеть поиск на нынешнем месте, а Copilot вполне может прописаться в трее - в инсайдерских сборках экспериментируют с этим. Но такое расположение лишь усугубляет проблему с перекосом панели задач! 🙈

Возможно, когда наступит время заменить поиск, поле Copilot действительно разместят слева и будут там же открывать боковую панель. Без заметных изменений Пуска и панели задач не обходится ни одна новая ОС Microsoft. Ждем новую волну смелых дизайнерских решений в Windows 12 ✌️
🛍 Как удалить новые приложения Dev Home и Outlook в Windows 11

Вчера был второй вторник, а следовательно в Windows 11 22H2 всем пришло накопительное обновление с функциями Момент 4 - KB5032190. Оно или его превью необходимы для обновления до версии 23H2 - KB5027397. Это опять #тумблер - номер версии меняется переключателем, потому что у них одинаковая кодовая база. Если вам не предлагают 23H2 в центре обновления, проверьте эти причины. 👈

Обновление до 23H2 отчасти формальное, потому что большинство новинок доставляет Момент 4. Именно после его установки через диспетчер доставки содержимого принудительно прилетают два магазинных приложения - превью Dev Home и Outlook for Windows (замена магазинной Почте). У некоторых от этого подгорит. А уж когда они обнаружат, что не могут удалить Dev Home в графическом интерфейсе... 🍑🔥

Эти две команды в #PowerShell от имени администратора решают вопрос:

Get-AppxPackage -AllUsers | where Name -match 'DevHome|OutlookForWindows' | Remove-AppxPackage -AllUsers
Get-AppxProvisionedPackage -Online | where PackageName -match 'DevHome' | Remove-AppxProvisionedPackage -Online


ℹ️ Первая команда удаляет пакеты из всех учетных записей, вторая - из локального хранилища (туда внедряется только Dev Home). Оно служит источником установки при первом входе в систему. Подробнее об этих командах читайте в блоге. И не поленитесь поискать названия командлетов в канале - там много любопытного.

Однако удаление не блокирует доставку этих приложений в новые учетные записи. Если вы знаете поддерживаемый способ предотвратить установку, сообщите мне. О кривых обходных путях я, возможно, напишу отдельно ✌️
Опрос: какие из этих элементов закреплены у вас на панели задач в основной ОС Windows? Можно выбрать несколько вариантов.
Final Results
37%
Поиск (кнопка или поле)
19%
Представление задач (Task View)
7%
Виджеты (мини-приложения)
2%
Чат (Teams)
42%
Никакие
20%
Другое / Моего варианта тут нет
▶️ Новое в блоге: Нюансы полной локализации Windows с помощью PowerShell

Сегодняшний рассказ продолжает серию публикаций о языковых настройках. Для управления ими в Windows 11 появились новые командлеты: Install-Language и Copy-UserInternationalSettingsToSystem. С ними стала возможна полная локализации системы командлетами #PowerShell. Но понадобятся еще пять других :)

👉 Цель упражнения — полностью локализовать установленную Windows на русский язык для текущего пользователя и всех созданных впоследствии аккаунтов.

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

➡️ Читайте в блоге: https://www.outsidethebox.ms/22149/
🔒 О ПИН-коде для удобства

Посмотрите на картинку↓ Это - варианты входа в Windows. Причем способы, относящиеся к Windows Hello, обозначены явно. Вроде все правильно, но есть нюанс © В левом верхнем углу написано, что вход выполнен с локальным аккаунтом. А в этом случае пометку "Windows Hello" с ПИН-кода следовало бы снять, потому что проверка подлинности работает иначе! 👈

Заметьте, что вход с паролем к Windows Hello не относится. Microsoft давно опубликовала статью Почему ПИН-код лучше пароля, хотя изначально в тексте пароль не имел приставки "онлайн". Там много говорится о преимуществах ПИН-кода над локальными паролями, но ни разу не упоминается локальный аккаунт.

👉 На самом деле при использовании локальной учетной записи ПИН-код служит для удобства. У Microsoft он так и называется - convenience PIN. Потому что процесс аутентификации отличается от учетной записи Microsoft (MSA) и аккаунтов Windows Hello for Business (WHfB).

ℹ️ Покровы срывает документ Common questions about Windows Hello for Business. Русский машинный перевод сойдет.

Удобный ПИН-код обеспечивает более простой способ входа в Windows, чем пароли, но он по-прежнему использует пароль для проверки подлинности. Если в Windows указан правильный удобный ПИН-код, сведения о пароле загружаются из кэша и проходят проверку подлинности пользователя.

⚙️ Не случайно, когда форсируется вход с Windows Hello, вариант входа с паролем пропадает и у локальных учетных записей, в том числе автологон. Это лишь в Параметрах написано, что Windows Hello требуется для MSA. А по факту настройка распространяется на всю систему.

Кстати, в том же документе Microsoft говорится, что технология WHfB не предназначена для работы с локальными учетными записями. И внезапно там же нашлось объяснение алгоритма, предотвращающего использование простых ПИН-кодов, о котором я писал в блоге.

В заключение, основная #классика блога по теме:
🔹 ПИН-код в Windows
🔹 Нюансы допустимых ПИН-кодов в Windows
🔹 Нюансы беспарольного входа в Windows
🔹 Как включить автоматический вход в Windows
😎 Этой зимой... на всех удаленных рабочих столах... от создателей триллера Выиграть... Вкладка!

На картинке, которую читатель Niks любезно прислал в нашу горячо любимую рубрику #автоперевод, приложение Microsoft Remote Desktop для Android.
⚙️ Настройка профиля пользователя с помощью Active Setup

Сегодня в рубрике "Возвращаясь к напечатанному" настройка профиля пользователи до первого входа в систему. Точнее, однократное выполнение команд для всех новых пользователей. Метод RunOnce из этой статьи пытался приспособить для решения своей проблемы читатель Дмитрий.

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

Проблема в том, что не применяются некоторые твики реестра, внесённые в профиль Default.

Дмитрий сообщил, что импорт в реестр из раздела RunOnce тоже не помог, а также доставил решение. Оказалось, его проблема стара как Windows, и решение тоже - Active Setup! 👈

ℹ️ На самом деле в профиль Default вносятся все параметры. Но при первом входе пользователя в систему выполняется настройка некоторых компонентов. При этом в реестре могут переопределяться значения, внесенные на более ранних этапах установки! Этот этап настройки называется Active Setup.

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

Решение - выполнить настройку на этапе Active Setup! В данном случае - импортировать твики реестра. Я не буду детально расписывать, но подкину полезные ссылки:

🔹 Выполнение задачи с помощью Active Setup - краткое, но достаточное руководство в блоге windowsnotes.ru. Учтите, что в параметре StubPath надо прописывать полный путь к исполняемому файлу, т.е. просто powershell.exe не прокатит.

🔹 Если параметры Active Setup вносятся в реестр уже после входа в систему (например, с FirstLogonCommands), можно немедленно инициировать его выполнение для текущего пользователя, не дожидаясь следующего входа:
%systemroot%\system32\runonce.exe /AlternateShellStartup

🔹Более подробные инструкции на форуме OSZone.

🔹Еще один пост на форуме, отсылающий к Windows XP, T12/T13 и применению твиков с помощью INF-файлов.

Кстати, на OSZone выложено, пожалуй, самое полное, хотя так и не дописанное руководство по работе с INF-файлами на русском языке. Ему 20 лет, но подозреваю, что почти всё изложенное там работает до сих пор ;)

Но допустим, вы не знаете про Active Setup. Диагностикой несложно определить, что метод RunOnce в целом работает. Проблема лишь с некоторыми параметрами и только при первом входе в систему.

Тогда можно запилить двойной RunOnce! Первый запуск из RunOnce просто прописывает команду для выполнения в... RunOnce. И она отработает при втором входе в систему! Это вполне в соответствии с девизом блога ✌️
💩 О современных "хороших" г-сборках

Читатель Андрей не смог пройти капчу в чате, пришел в личку за разъяснениями и получил ссылку на пост о г-сборках . В дальнейшей переписке он поднял вопросы дистрибутивов, в которых сделан минимум якобы безобидных и полезных изменений.

Например, в сборку только интегрированы последние обновления. Ну ладно, оказывается еще включен .NET Framework 3.5 и вырезаны магазинные приложения. И все равно читатель считает такую сборку хорошей и полезной 🙄

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

🤷‍♂️ Интеграция обновлений от сборщика - не имеет смысла

Microsoft ежемесячно обновляет дистрибутивы для организаций (aka "образы MSDN"), интегрируя туда последние накопительные исправления (CU). К сожалению, с потребительскими образами MCT и ISO компания скатилась до полугодовых обновлений (в октябре у Windows 11 были майские образы). Для них интеграция обновлений еще может иметь смысл. Но тогда уж вместо г-сборки проще взять с того же трекера свежий и не подвергавшийся изменениям образ MSDN.

Вообще, пытаться укрепить безопасность руками г-сборщика как-то странно. Вы настолько доверяете ему? Что ж, полно таких доверчивых людей, но... 🙈 Некоторые "мастера" не только ставят обновления, но и чистят после них, причем сторонними инструментами. Это еще одно ненужное и потенциально деструктивное действие.

В любом случае последний CU можно установить сразу после установки ОС. Если для вас такой уровень безопасности слишком низкий, интегрируйте динамические обновления самостоятельно. Microsoft вам даже скрипты подготовила!

🔓 Установка .NET Framework 2.0-3.5 - увеличивает поверхность атаки

Да, ежемесячно выходят исправления .NET 3.5 + 4.х. Но зачем прорубать в стене окно, чтобы защищать его шторами? Г-сборщик внедряет .NET 3.5 для неких масс, но так ли они широки и входите ли вы в их число – большой вопрос.

Мне .NET 3.5 уже много лет не нужен, это для очень старого ПО, от которого надо избавляться. Если что, он сам предложит установиться с WU.

✂️ Вырезание магазинных приложений – лишает контроля над набором фич

Если у вас нет приложений, вы можете не осознавать их пользы. Я вижу, что люди активно используют Snipping Tool - теперь и с записью видео, ваш телефон, фотографии, Paint в конце концов - уже и со слоями:) ОК, я даже слышу как вы кричите - мне они все равно не нужны!!!111

Но почему вы позволяете сборщику решать, можно вам ими пользоваться или нет? И уверены ли вы, что он не вырезал лишнего? 🤔

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

👉 Отсутствие контроля над дистрибутивом - недальновидно и рискованно

Выше я не случайно говорю о доверии и контроле. Я считаю целостность дистрибутива основополагающим фактором. Я сам никогда буду и вам категорически не советую устанавливать систему, в которой кто-то ковырялся.

Используя Windows, вы автоматически доверяете Microsoft, даже если отрицаете это :) Вы также вполне можете доверять квалификации и репутации г-сборщика. Но надо понимать, что его методы и контроль качества сборки кустарны. А он сам и используемые им инструменты подвержены компрометации и технически более уязвимы к ней, чем Microsoft.

Итого

Вы можете выполнить одну-две команды в официальном дистрибутиве, но вместо этого берете г-сборку, в которой кто-то устанавливал обновления и чистил после них, внедрял старые фреймворки, удалял пакеты. И при этом считаете себя опытным пользователем? Тогда у меня для вас плохие новости ✌️
⬇️ О Media Creation Tool (MCT) и размере установочного образа Windows

В установочных дисках Windows применяется два формата образа - WIM и ESD. Второй можно получить, указав при экспорте в DISM уровень сжатия /compress:recovery. При этом используется алгоритм LZMS нежели XPRESS (дефолт) или LZX (/compress:max), но основную экономию места дает непрерывный архив 🤐 Поэтому ESD нельзя подключить в отличие от файлового WIM.

Традиционно в ISO - install.wim, а в MCT формат образа поначалу менялся. Как-то раз даже просто поменяли расширение ESD на WIM. Но уже давно у MCT устаканился формат ESD. И дело тут было не только в экономии трафика, но и в способности уместить образ Windows на флешку FAT32.

ℹ️ В теории загрузиться можно и с флешки NTFS, но устройство должно поддерживать такую возможность. Пока это нормой не стало. А поскольку МСТ - универсальное средство для огромной пользовательской базы, годится только FAT32, т.е. образ не должен превышать 4 GB.

⌛️ До поры до времени всё шло хорошо. Даже WIM образы были небольшие, и у Microsoft получалось уложить их в 4 GB при выпуске новой версии Windows. Но дальше в них интегрировали ежемесячные обновления, что вело к увеличению размера образа и превышению предела. Я рассказывал в блоге о том, как обойти ограничение 4 GB еще в 2018 году, когда сам впервые наступил на грабли. Одно из решений - разделить WIM на несколько SWM файлов. Программа установки сама с этим разберется

Формата ESD проблема 4 GB не касалась вплоть до выпуска Windows 11 23H2. Но в день релиза выяснилось, что доступен только свежий ISO, а в MCT скачивается предыдущий образ 22H2 👀 В английском ISO файл install.wim стал на целый гигабайт больше, чем годом ранее!

• 4.51 GB в 22H2 v1 (октябрь 2022)
• 4.71 GB в 22H2 v2 (май 2023)
• 5.51 GB в 23H2 (октябрь 2023)

Трудно поверить, что всего 4 года назад разработчики Windows отключили бэкап реестра ради экономии на спичках 🤦‍♂️

Такой большой образ даже сжатие recovery уже не могло уместить в 4 GB! И тут же проскочила новость, что инженеры Microsoft работают над уменьшением размера образа. Но нельзя же просто взять и выкинуть какие-то файлы. Поэтому они пошли проверенным путем - распилили образ ESD на два файла SWM. Пока на два:)

👉 Но есть нюанс © Разделение на SWM происходит только в случае, когда с помощью MCT вы сразу создаете установочную флешку. А если делать ISO, единый install.esd превышает 4 GB (у английской 23H2 - 4.7 GB). То есть уже не получится подключить этот ISO и скопировать с него файлы на флешку FAT32.

Замечу, что в связи с огораживанием загрузки ISO/MCT, в РФ набрали популярность различные обертки MCT. Но, скажем, в MediaCreationTool.bat вас ждет тот же нюанс.

Морали здесь особой нет. Но есть предупреждение. И совет - в любой непонятной ситуации делите WIM на SWM ✌️