Авторский канал. Windows, безопасность, мобильный мир: • тайное знание • профессиональный ликбез • гадание по логам • срыв покровов • доставка пруфов Чат: @winsiders Блог: outsidethebox.ms Oбратная связь: @vsterkin Поддержать ₽: boosty.to/sterkin
⚙️ Как настроить открытие ссылок в приложении YouTube Revanced без рута и ADB
Мой друг на новом телефоне возжелал привычный YouTube с фоновым воспроизведением. С установкой клиента Revanced проблем не возникло. Однако ссылки на видео все равно открывались в официальном приложении, которое нельзя просто взять и удалить. Телефон Xiaomi с MIUI, но такое возможно и с другими оболочками.
В настройках Android есть управление ссылками, но пляски с бубном вокруг обоих клиентов YouTube ни к чему не привели. Я спросил чат - Niks
быстро доставил решение. И оказалось, что именно его я применил когда-то на своем телефоне, о чем успешно забыл 🤦♂️ Поэтому оставлю его здесь - в своей публичной записной книжке.
⏯ Процесс показан на видео, которое надо смотреть во весь экран.
1. Установите Better Open With.
2. В разделе Browser выберите из списка сайтов YouTube и задайте приложение для открытия ссылок.
Поскольку у обоих приложений одинаковые значки, Revanced определяется экспериментально. Чтобы не путаться, можно задать разные темы оформления✌️
🔒 KeePass: автоматический ввод учетных данных в браузере по URL страницы
Я уже рассказывал в канале про годную функцию автонабора у KeePass. И как выяснилось, почти половина пользователей этого менеджера паролей о ней не знала. Там речь шла о порядке записей в результатах поиска. Сегодня - о вводе в браузерах, причем без плагинов KeePass.
На картинке↓ настройки автоматического ввода, где цифрами отмечены ключевые. Пункты 2 и 3 по сути относятся только к браузерам. Давайте разберем их на примере входа в GitHub https://github.com/login
1️⃣ В заголовке окна есть совпадение с названием записи KeePass
Здесь заголовок - Sign in to GitHub · GitHub
. Поэтому сработает любое из этих слов в названии записи KeePass - например, Sign in
и GitHub
. Но во избежание ложных срабатываний лучше использовать что-то уникальное - строку целиком или ее существенную часть.
Это - самый удобный способ, но не лишенный недостатков. С ними я регулярно сталкиваюсь в рабочей среде. Например, заголовок страницы авторизации у разных внутренних веб-сервисов одинаковый - Sign in
. Или он более информативный, но одинаковый в разных средах разработки ПО - Dev, QA, Integration.
2️⃣ В заголовке окна есть URL целиком из записи KeePass
Это - большая редкость, т.к. сайтам нет смысла прописывать адрес страницы в её заголовок. И как раз это я разберу подробнее чуть ниже.
3️⃣ В заголовке окна есть домен, который присутствует в URL из записи KeePass
Это чаще встречается у иностранных сайтов. Допустим, прописав https://www.google.com/ в поле URL, вы сможете входить на любой странице сервисов компании. Потому что слово Google
есть в заголовке страницы и в поле URL. С GitHub та же история. Но у прочих сервисов Microsoft такое не сработает, равно как у Яндекс и Госуслуг.
////
В итоге пункт 2 выглядит самым бесполезным, однако он очень перспективный! Как справедливо заметил в чате dartraiden
, если в KeePass корректно заполнено поле URL, задача сводятся к тому, чтобы прописать URL веб-страницы в её заголовок 👈
И она элементарно решается с помощью расширений для Chromium и Firefox.
Однако мне не нравится, что только ради этого расширение получает право читать и изменять данные на всех сайтах. Поэтому я предпочел более контролируемый вариант - скрипт для Tampermonkey 🐵 Сходу нагуглился такой. Из коробки результат страшноват, но это легко допилить. И не забыть отключить автоматическое обновление скрипта!
С браузерами разобрались, но остается проблема с однотипными окнами Sign in
в других приложениях. Она, кстати, недавно обострилась у меня на работе. И я обязательно поделюсь решением в канале ✌️
🤦♂️ Ловушка MBR для продуктовой группы Microsoft
Сегодня в рубрике "Возвращаясь к напечатанному" эпичная ошибка в статье базы знаний (MSKB) KB5028997. А также на всех сайтах, которые перепечатали эту инструкцию по ручному увеличению раздела для установки обновления WinRE. Тысячи их ©
⌛️ История и контекст
В январе 2024 года Microsoft выпустила обновление безопасности для среды восстановления Windows 10. Однако у многих оно не устанавливалась из-за слишком маленького раздела RE. В связи с чем компании пришлось выпустить инструкцию по его увеличению.
Тогда же я опубликовал в блоге большой FAQ, который поможет вам освежить память. Чтобы проникнуться эпичностью ошибки в MSKB, нужно понимать, зачем RE размещают на отдельном разделе:
Это необходимо для восстановления при включенном шифровании BitLocker. Если среда на разделе с ОС, в нее невозможно загрузиться с зашифрованного раздела. В этом случае для входа в Windows RE понадобится установочный диск.
🐞 Суть ошибки
О ней мне рассказал читатель блога Артём. Он следовал инструкциям в разметке MBR и обнаружил, что в итоге среда восстановления оказывается вовсе не на увеличенном разделе RE, а на разделе с Windows! Сопоставив инструкцию Microsoft с материалами моего блога, Артём вышел на причину ошибки - она в шаге 5.
На шаге 5a создается новый раздел. И, что несколько необычно, в команде создания сразу указывается GUID, задающий тип раздела (управление служебными атрибутами я подробно разбирал в блоге). Дальше на шаге 5b раздел форматируется в NTFS.
В разметке GPT форматирование раздела не затрагивает его служебный идентификатор (см. строки 84-105). Но в разметке MBR ИД 0х27
после форматирования сбрасывается. И раздел становится обычным, с ИД 0х7
! 🙈 Я демонстрирую это на картинке↓
Дальше включается среда восстановления, и образ должен оказаться на разделе Windows RE. Но поскольку правильного ИД у него нет, по алгоритму образ размещается на разделе с ОС - в папке C:\Recovery
.
Разумеется, после этого злосчастное обновление RE устанавливается без проблем - ведь на разделе Windows полно места :) Но это делает бессмысленным всё мероприятие! Поскольку при таком раскладе в RE не загрузиться с зашифрованного диска.
⚙️ О важности тестирования
Я не случайно упомянул ресурсы, перепечатавшие инструкцию. Так, я ссылался на русскоязычный гайд COMSS в своем FAQ - там много картинок, всё как вы любите :)
Безымянный автор тщательно проследовал по шагам на MBR (!) и ничего не заметил. Хотя на первом и последнем скриншоте командной строки с выводом утилиты reagentc
видно, что среда восстановления в итоге переехала с partition3
(RE) на partitoin2
(Windows).
Я, кстати, протестировал инструкцию Microsoft, прежде чем советовать её. Но только на GPT. С MBR у меня сейчас и виртуалок-то нет. Видимо, так же обстоят дела и у продуктовой группы, которая опубликовала инструкцию в MSKB :)
В заключение я просто оставлю здесь практические советы по переходу с MBR на GPT ✌️
⚙️ Новое в блоге: Edge - быстрая настройка браузера и отключение раздражителей скриптом
Microsoft Edge — мой основной браузер, и в целом он меня устраивает. При этом есть набор параметров, которые я всегда изменяю на своих многочисленных системах, в том числе экспериментальных ВМ.
👉 Я предпочитаю групповые политики Edge по ряду причин:
- быстрое массовое применение настроек
- наличие параметров, не доступных в графическом интерфейсе (например, первый запуск браузера)
- блокирование маркетинговых функций (если фича отключена, ее и продвигать не должны)
Я неоднократно публиковал в канале отдельные политики в виде команд reg add. Сегодня я делюсь полным скриптом #PowerShell для быстрой настройки Edge 🎉
На картинке вид новой вкладки при первом запуске браузера (или нового профиля) после применения скрипта.
➡️ Читайте в блоге: https://www.outsidethebox.ms/22326/
💾 Об окне форматирования томов в Windows
На этой неделе все профильные и даже непрофильные каналы потешаются над Microsoft - мол, за 30 лет так и не обновили древний диалог 🤡
Отдельно доставило глумление над UX, который в этом окне абсолютно нормальный для классического Win32. Попадались даже придирки к непоследовательности двоеточий в названиях элементов. Да, техническим писателям или инженерам QA это бросается в глаза. Но предъявлять за такое махровому легаси... 🙄
Ноги у веселья растут из твита Дэйва Пламмера, бывшего разработчика Windows, который когда-то этот диалог и написал на коленке. Сейчас он на пенсии развлекает публику такими вот историями.
👉 При этом петросяны массово не в курсе, что диалог уже обновили! Вот же он на картинке↓ - с тёмной темой и масштабированием. Даже опция сжатия тома появилась. И с двоеточиями нет проблем.
Управление дисками начали добавлять в Параметры еще летом 2020 года, в сборке Windows 10 20197. Фичу долго мариновали в предварительных версиях, и в Windows 10 она уже не попала. Однако точный момент появления в Windows 11 трудно определить.
Разумеется, никто не будет вносить изменения в древний диалог. Ну, поправит вам разработчик двоеточия, сделает юнит-тест. А регрессионного тестирования-то нет. И вот уже ничего не форматируется 🤔
И убирать старое окно не стали намеренно. Потому что привычка вызывать его из контекстного меню диска у многих выработана годами. Можно автоматически перекидывать в Параметры, но в данном сценарии UX лучше не станет. А если еще и новый диалог сразу не открыть, пользователь точно отложит кирпич 🧱
Поэтому никуда не денется и оснастка управления дисками, не говоря уже о diskpart
. Microsoft много за что можно предъявить. Но компания точно впереди планеты всей по длительности поддержки старых функций и хранения в системе разнообразного легаси. Да, выглядит оно несовременно и не масштабируется. Зато лежит под рукой и работает ✌️
⚙️ Нюансы очистки записей в окне "Выполнить" (Run)
Сегодня в рубрике "Возвращаясь к напечатанному" очистка истории окна "Выполнить". Участник чата @Xodiak прочел в блоге мою статью и заметил, что там не раскрыта тема удаления отдельных записей из истории окна Run.
Статья в принципе была про адресную строку проводника, поэтому описывала только ее путь в реестре. Я добавил туда раздел реестра RunMRU
, дописал "Run" в заголовок статьи и счел тему закрытой.
Однако спустя пару дней Андрей Шубин
спросил, как удалить оттуда записи, которые начинаются с ms-
, типа ms-gamebar://
. История ввода в окно была очищена, но эти подсказки никуда не делись.
👉 Решение немедленно подсказал 4eL0wEk
- очистить журнал автозаполнения! В пуск поискать Internet Options (Свойства браузера), а дальше см. картинку↓
Вы догадались, об истории какого браузера тут речь? 😎 Да, это Internet Explorer, которого как бы уже нет в Windows. На самом деле он никуда не делся. Его несложно запустить и убедиться в наличии этих записей в истории "этого компьютера".
В журнал эти записи попадают при вызове различных приложений системы, связанных с той или иной ссылкой ms-
. Так, игровая панель Xbox связана в Параметрах с типом ссылки URL:ms-gamebar
. И каждый раз, когда я жму Win+G
, в журнал IE вносится запись об этом! Я нередко нажимаю это сочетание клавиш случайно, поэтому записей хватает :)
С момента обсуждения этой темы в чате прошло уже больше месяца. А пару дней назад я делился ссылкой на другую свою полезную статью - про автоматическую подсказку и подстановку команд. Я исторически включаю автоподстановку, чтобы максимально быстро 🚀 открывать из Win+R
оснастки (devmgmt, diskmgmt), regedit и прочие утилиты из PATH.
Внезапно я заметил, что в конце этой статьи таки раскрыта тема удаления отдельных записей из окна Run. Да и про историю IE там тоже написано... еще 13 лет назад! Как всегда, новое - это хорошо забытое старое ✌️
- К. научил вчера ночью делать скрин Виндоус+шифт+S и вставлять в телегу клавишей V, отлично работает!
- ОМГ ты же 3 года назад не хотела слушать про это ↑
- я и не буду пользоваться, это ж три клавиши нажать...
- в параметрах поищи Print Screen
и повесь на нее!
- 🙄
Так и живем :)
⚙️ Новое в блоге: Нюансы запуска проводника с полными правами
Недавно мой коллега Дмитрий с канала @winitpro_ru обновил свою классику блога про запуск проводника от имени администратора. Этот трюк в первую очередь ценен для корпоративных серверов. Дома-то можно и сторонний файловый менеджер с правами администратора запустить.
Но любопытно же покопаться в вопросе! Я ведь интересуюсь этой темой ещё с завещания мистера Гейтса, написанного в 2011 году. Сейчас Дмитрий добавил в свою статью альтернативный метод, который появился уже во времена Windows 10.
👉 Если завершить процесс explorer
и сразу же запустить его с ключом /NoUACCheck
, проводник получит полные права.
В Windows 11 я это не проверял. В статье Дмитрия говорилось, что должно работать. Но у меня не сработало!
➡️ Читайте в блоге: https://www.outsidethebox.ms/22306/
erid: LjN8KANvQ
В поисках надёжного корпоративного сетевого оборудования в условиях импортозамещения?
Регистрируйтесь на вебинар «Импортозамещение сетевого оборудования на базе Eltex», который пройдёт 19 марта в 12:00.
На вебинаре расскажем:
🔹 Об основных достижениях и направлениях развития компании Eltex;
🔹 Про сетевое оборудование Eltex: коммутаторы и маршрутизаторы;
🔹 Возможности, спецификации, ПО, гарантия, сервис сетевого оборудования Eltex;
🔹 Схемы применения сетевого оборудования Eltex;
🔹 Сравнение сетевого оборудования Eltex с иностранными аналогами.
Регистрируйтесь на вебинар «Импортозамещение сетевого оборудования на базе Eltex»
Реклама. ООО "ИНФРАТЕХ". ИНН 5024197250.
⚙️ О развитии утилиты diskusage
Сегодня в рубрике "Возвращаясь к напечатанному" утилита для анализа дискового пространства, входящая в поставку Windows. Три года назад я публиковал в блоге подробный разбор ключевых функций.
На тот момент утилита только появилась в предварительных сборках, и у меня был ряд нареканий. С тех пор основные недочеты устранили. Давайте пройдемся по улучшениям!
⚙️ Определение размера системных файлов
На смену ключу /systemAndReserve
пришли два:
• /systemFile[:N]
для отображения служебных системных файлов
• /reserved
для зарезервированного пространства
Ключ /systemFile[:N]
отображает системные файлы, которые обычно не видны в файловых менеджерах:diskusage /systemFile:15 /humanReadable
Результат команды на картинке↓ В отчет входят служебные файлы NTFS, включая $MFT
и $UsnJrnl
. В целом очень похоже на вывод: fsutil volume allocationreport C:
Этот ключ также закрыл вопрос с теневыми копиями, которые утилита изначально могла отображать только при запуске от имени системы. Пути вида C:\{GUID}{GUID}
— это теневые копии. Вроде, это первая комплектная утилита, которая показывает размер отдельных теней.
Да, хотелось бы видеть папку System Volume Information
в рамках вывода самых больших папок, /TopDirectory[:N]
. Но и на том спасибо 👌
⚙️ Определение объема зарезервированного пространства
Ключ /reserved
, как и его предшественник, не срабатывает в сочетании с [некоторыми] другими. Если смотреть отдельно, быстрее всего натравить утилиту на пустую папку:diskusage C:\new /reserved /humanReadable
У меня в одной из систем объем зарезервированного пространства по сведениям утилиты отличается от цифры в параметрах на 1.5 GB. При этом он почти совпадает с объёмом первой из трёх зарезервированных областей:fsutil storagereserve query C:
В остальных тестовых системах вывод в целом соответствует значению в параметрах. Да и так известно, что резервируется около 7 GB. Но такие разночтения не повышают доверие к результатам.
🔗 Переход по символическим ссылкам и соединениям
Изначально это было поведением по умолчанию, а выключалось оно ключом /skipReparse
. Я отметил, что логично было сделать наоборот.
Действительно, впоследствии стали игнорировать символические ссылки и соединения, для явного перехода по ним добавили ключ /reparse
, а ключ /skipReparse
убрали из справки.
📃 Изменения в синтаксисе
Для указания значений перешли от знака равно к двоеточию. Было /TopDirectory=25
, стало /TopDirectory:25
. Впрочем, старый синтаксис пока тоже работает.
Все ключи: было | стало.
////
Я стараюсь поддерживать все материалы блога в актуальном состоянии. Вот и на сей раз #классика блога обновлена.
И да, я знаю, о чем вы сейчас думаете: "Зачем все это, если есть TreeSize, WinDirStat, Scanner и т.д." 🤔
Однако у встроенной консольной утилиты есть два неоспоримых преимущества:
🔹 работа в огороженной системе, где нельзя просто взять и скачать стороннее ПО
🔹 дистанционная помощь без лишних телодвижений: "выполни команду - покажи результат"
Сегодня у меня для вас #рекомендация — два полезных канала для системных администраторов:
📚 infosec — Литература для системных администраторов и ИБ специалистов любого уровня и направления. Читайте, развивайтесь, практикуйте.
👨🏻💻 Social Engineering — Авторский Telegram канал, посвященный информационной безопасности, OSINT и социальной инженерии.
🙄 Про Microsoft PC Manager
- Вадим, почему вы ничего не пишете про новую утилиту от Майкрософт? Уж поинтереснее чем этот ваш американский футбол, хе-хе.
- Да ладно... чем интереснее-то?
- Ну... это же официальное приложение для оптимизации системы.
О, да! Теперь этот образчик унылого китайского софтостроения получил перевод на другие языки и стал "официальным" 🤦♂️ На самом деле я оставлял краткий отзыв в чате. Но раз у читателей есть интерес, расставлю точки над i в канале.
🔹 UI/UX
Убогий "телефонный" вид окна без возможности изменить его размер. В режиме очистки даже не видно целиком названий элементов.
🔹 Защита
Четыре элемента из шести ссылаются на функции ОС или дублируют их. В остатке - восстановление панели задач непонятно от чего и блокировка всплывающих окон в (магазинных?) приложениях.
🔹 Хранилище
Очистка диска частично дублирует встроенный контроль памяти (storage sense). Единственный бонус - удаление кэша RDP и сторонних предложений. Там же поиск больших файлов в проводнике и переход в тот же контроль памяти, который я всем советую поставить на автомат и забыть про очистку 👈
🔹 Приложения
Две функции дублируют диспетчер задач, еще две - открывают страницы параметров.
🔹 Инструменты
Солянка из ярлыков на функции системы и всякую ерунду в интернете.
🔹 Smart Boost
Есть еще такое чудо. Оно автоматически удаляет временные файлы, если их больше 1 ГБ, дублируя контроль памяти. А также непонятно что делает с RAM. Наверное, очищает кэшированную память, чтобы ухудшить производительность приложений. Подкину отзыв Руссиновича из книги Windows Internals на такой класс оптимизаторов. И добавлю скучные ссылки на его же статьи о преодолении границ физической и виртуальной памяти.
❌ Резюме
Удалено сразу после ознакомления ✌️
🪚 О скорости выпиливания устаревших функций из Windows
Недавно в чате PowerShell я упомянул, что в октябре 2023 года VBScript присвоили статус deprecated (смысл термина я объяснял ранее). Встречный вопрос был: "А когда уберут совсем?" Дату не объявляли, но можно сделать осмысленный прогноз, опираясь на историю аналогичных фич.
ℹ️ Microsoft с 2015 года ведет список устаревших функций Windows. Поэтому там есть и уже удаленные из системы компоненты, хотя для них предусмотрена отдельная страница.
В списке вперемешку идут корпоративные и потребительские функции. Это разделение отчасти условное, но понятно, что Windows To Go не позиционировалась для дома в отличие от Print 3D. В менее очевидных случаях можно прикинуть, широко ли используется компонент для административных и/или потребительских задач в организациях 👈
В случае с VBScript самим разработчикам Windows для начала нужно разобраться со скриптами, входящими в поставку системы. Сразу приходит в голову slmgr.vbs
для управления активацией. Но помимо него в ОС из коробки еще добрый десяток скриптов VBS 🤔
Не влияющие на бизнес приложения и технологии убирают быстрее. В сентябре 2023 года я разбирал уникальные фичи WordPad, когда ему присвоили статус deprecated. Не прошло и четыре месяца, как приложение полностью убрали из сборки 26040 канала Canary 👀
Удаляя корпоративные функции, можно много чего сломать в организациях, поэтому подход более взвешенный. Иногда дату окончательного удаления объявляют заранее, как в случае с диагностическими пакетами (MSDT). Из статей базы знаний их стали убирать еще в 2019 году, устаревшими объявили в январе 2023, а удаление платформы из системы назначили на 2025.
👉 Для оценки оставшейся жизни VBScript неплохой моделью будет утилита wmic
:
• 21H1 - объявлена устаревший в клиентской Windows (в серверной еще в 2016)
• 22H2 - стала компонентом по требованию, включенном по умолчанию
• 24H2 - компонент по требованию будет выключен по умолчанию
• ???? - полное удаление
Таким образом, от объявления утилиты wmic
устаревшей до ее полного удаления пройдет не меньше четырех лет. И ведь её относительно несложно заменить в скриптах командлетом PowerShell Get-CIMInstance
.
Зависимость бизнеса от VBScript куда сильнее. И затраты на переписывание скриптов более существенные. Поэтому предположу, что его выпилят полностью не раньше чем через 4-5 лет после объявления устаревшим ✌️
▶️ PowerShell: выборка в Get-ChildItem
-LiteralPath
vs. -Path
vs. -Filter
На прошлой неделе я показывал исследование путей вида \\?\GLOBALROOT\device
в #PowerShell с помощью командлета Get-ChildItem
(он же gci
, dir
, ls
). Параметр -LiteralPath
передает пути в API "как есть", и для такого странного пути это вполне понятно.
Но есть менее очевидный и, наверное, более распространенный случай - квадратные скобки в именах файлов и папок.dir -Path C:\[ab]folder
Такая команда не найдет папку с именем [ab]folder
, нужен -LiteralPath
.
Параметр -Path
обрабатывает [ ]
как часть регулярного выражения, пытаясь найти afolder
и bfolder
. Можно избегать этого бэктиками, но там свои подводные камни. Когда имя папки точно известно, проще использовать -LiteralPath
.
👉 Также -Path
поддерживает подстановочные символы *
и ?
, что очень удобно для быстрой выборки по имени и/или расширению:dir -Path *.txt
По странному совпадению на днях я столкнулся одновременно с *
и [ ]
. Искал мои рецензии на статьи, где я добавлял в начало имени файла свои инициалы: [VS] blah-blah.docx
. Без задней мысли я ввел в консоль:dir '[VS*' -Recurse
И получил ошибку синтаксиса ❌ Параметр -Path
тут не указан, но подразумевается, поскольку это первый позиционный параметр командлета. И по умолчанию он обрабатывает текущую папку. Параметр -LiteralPath
тоже не подходит. Он не работает с подстановочными символами, а для выборки мне нужен *
.
ℹ️ На помощь пришел параметр -Filter
. Он есть у 20+ командлетов, которые взаимодействуют с поставщиком FileSystem. Строка с путём фильтруется на уровне файловой системы нежели обрабатывается в PowerShell, поэтому такой запрос считается наиболее эффективным. Однако в данном случае важнее поддержка подстановочных символов *
и ?
.
✅ Такая выборка отлично сработала:dir -Filter '[VS*' -Recurse
Покопавшись в канале, я нашел упоминание этого параметра в загадке PowerShell четырехлетней давности. Желаю удачи в поисках разгадки! 😎
⚙️ Как получить доступ к служебному разделу, не изменяя его свойства - дубль 2
Сегодня в рубрике "Возвращаясь к напечатанному" альтернатива способу, который я показывал пару месяцев назад. Там для выборки в #PowerShell я взял атрибут служебного раздела (GUID). Сегодня я покажу, как обойтись без него.
Неудачная попытка Microsoft обновить среду восстановления вынесла на берег множество безумных конфигураций. Именно такую принёс мне в блог читатель Александр, см. картинку↓ 👀 Здесь на дисках 3 и 4 установлены Windows 10 и 11 соответственно.
Первичным анализом я установил, что в обеих ОС на диске 4 зарегистрирована среда восстановления от Windows 11, а шифрование BitLocker не используется. Поэтому мой совет был не морочить себе и другим голову и скрыть обновление Windows 10. Но читатель оказался перфекционистом 🦩 Он заявил, что отключал все диски кроме 3 (с Windows 10), увеличивал раздел со средой, но так и не смог установить обновление.
Действительно, в конце обоих дисков есть какие-то разделы без букв. При этом на диске 4 нет пометки "Раздел восстановления". Значит, ему не присвоены правильные атрибуты, что ставит под сомнение грамотность действий читателя 🤔 Я хочу проверить, есть ли на диске 3 файл winre.wim
, раз он там якобы включал среду.Get-ChildItem -Force -Recurse -LiteralPath \\?\GLOBALROOT\device\harddisk3\partition4\Recovery
Get-ChildItem -Force -Recurse -LiteralPath \\?\GLOBALROOT\device\harddisk3\partition3\Windows\System32\Recovery
Get-ChildItem -Force -Recurse -LiteralPath \\?\GLOBALROOT\device\harddisk3\partition3\Recovery
Вы могли видеть такие пути в выводе команд reagentc /info
и vssadmin. Они глубоко уходят корнями в пространства имён NT и хорошо просматриваются в утилите WinObj от Sysinternals.
Первая команда показывает содержимое раздела восстановления (номер 4), обходя отсутствие назначенной ему буквы. Вот мы и получили доступ к служебному разделу, не изменяя его атрибуты! 🎉
Раздел с RE - просто пример. Вот конфигурация загрузки на разделе EFI - в разметке GPT он первый:Get-ChildItem -Force -LiteralPath \\?\GLOBALROOT\device\harddisk0\partition1\EFI\Microsoft\Boot
ℹ️ Вторая и третья команды исследуют раздел 3 (ОС) на диске с Windows 10. Причем даже в том случае, если человек будет выполнять их из Windows 11! В этом отличие от пути с буквой диска или переменной среды. Здесь параметр -LiteralPath
обрабатывает путь "как есть", передавая его в API напрямую. Заметьте, что с тем же путем параметр -Path
ничего не выдаст.
В итоге на диске с Windows 10 файла winre.wim
не нашлось . Поэтому мой совет перфекционисту был извлечь образ из дистрибутива и зарегистрировать на выделенном разделе. Так, пройдя пять стадий принятия неизбежного, читатель последовал моему совету и... у него все получилось ✌️
Хотите сэкономить деньги, выбрав квартиру в Москве?
Подписывайтесь на закрытый канал независимого аналитика Андрея Негинского о столичном рынке недвижимости.
1️⃣ Тут каждый день появляются варианты квартир, которые для вас не найдет ни один риэлтор.
2️⃣ Негинский дает подробное описание каждого объекта вместе с ценами, плюсами и минусами проекта.
3️⃣ Еще он публикует разборы новостей рынка, которые помогут купить квартиру на лучших условиях.
У Негинского вышел подробный гайд по ипотеке в 2024. Все льготные программы, условия и причины отказа банков. Подписывайтесь на канал neginskiy_msc и забирайте руководство в закрепе.
⚙️ Облачная переустановка поверх в параметрах Windows 11
Осенью 2019 года в Windows появилась функция облачного сброса. Тогда я доставил ПМу, что куда полезнее была бы функция переустановки поверх, которая сохраняет программы и настройки в отличие от сброса.
По его просьбе я отправил развёрнутые аргументы в центр отзывов, и ныне удаленное предложение набрало более 100 голосов 👍 Это очень много для такой технической функции. На русском языке я озвучил тезисы в канале. Прочтите их, чтобы прочувствовать важность фичи!
🎉 И спустя 4.5 года в параметрах появилась облачная переустановка поверх!
Фичу доставили в рамках обновления Moment 5. Она описана в статье базы знаний KB5036436. Помимо прочего там:
• отмечается, что в центре обновления может появиться предложение выполнить облачную переустановку в случае неудачной установки исправлений
• приводится список условий и групповых политик, при наличии которых функция недоступна
🔄 Прогресс загрузки установочных файлов и ход установки отображаются в центре обновления. В целом - это стандартный процесс переустановки поверх, хотя и без присущих ему экранов. Кстати, в РФ фича обретает дополнительную ценность на фоне препятствий загрузке MCT и ISO.
Но есть и ложка дегтя 🤷♂️ Поскольку процесс завязан на Windows Update, неподдерживаемые конфигурации блокируются. И не прокатит обходной путь AllowUpgradesWithUnsupportedTPMOrCPU, т.к. он для установки с флэшки.
Так или иначе, фича ценная, и новость отличная! #Классика блога про переустановку поверх обновлена ✌️
▶️ Простой пример оптимизации скрипта #PowerShell с помощью хэш-таблицы
Первые два отзыва на мой скрипт для настройки браузера Edge с помощью политик были критические. Мне попеняли на его перегруженность множеством вот таких↓ однотипных команд. Действительно, в них отличаются только названия параметров и значения, а всё остальное неизменно.New-ItemProperty -Path $path -Name HideFirstRunExperience -Type Dword -Value 1 -Force | Out-Null
Но эта история изначально была не про PowerShell, а про коллекцию политик. В скрипте же я исходил из того, что многих заинтересуют лишь некоторые твики. И такие люди будут копипастить отдельные строки прямо с веб-страницы в консоль. Я сам так неоднократно делал :)
👉 Если же не думать об этих людях и задействовать фирменные возможности PowerShell, скрипт получится намного аккуратнее и компактнее. К таким фичам относятся хэш-таблицы. Причём дальше примера из справки ходить не надо.[hashtable]$hash = @{
HideFirstRunExperience = 1
AutoImportAtFirstRun = 4
BrowserSignin = 0
}
foreach ($key in $hash.keys) {
New-ItemProperty -Path $path -Name $key -Type Dword -Value $($hash[$key]) -Force | Out-Null
}
Хэш-таблица создается первой строкой и далее наполняется парами "параметр = значение". В реестр изменения вносятся с помощью выражения foreach
- перебором всех пар.
Все прочие аспекты скрипта неизменны. Я добавил в архив версию с хэш-таблицей ✌️
📉 О производительности оболочки Windows
К сожалению, в Windows 11 обертка проводника получилась тормозной. И новые контекстные меню тому лучшее свидетельство. Они открываются с заметной задержкой, а пункты некоторых приложений иногда даже не отображаются с первого раза 🤦♂️
С видимыми лагами сопряжен и прямой вызов старого меню, в том числе из сторонних файловых менеджеров. При этом в моих замерах классика появляется примерно на треть быстрее нового меню 👈
Хотя с первого выпуска Windows 11 прошло уже больше двух лет, существенных улучшений в производительности не наблюдается. Прикручивание к проводнику бессмысленных вкладок только усугубило ситуацию. И окончательно подвигло меня к возврату на 💾Total Commander после многолетнего перерыва.
🙄 Однако команда оболочки Windows делает вид, что проблемы нет, и такие тормоза — нормально!
Недавно я заинтересовался темой удаления ненужных приложений из контекстного меню. Изначально я даже не думал об ускорении - просто кто-то спросил в чате, как убрать лишние пункты. Но реализовав решение, я не преминул сравнить скорость открытия меню до и после удаления всех зарегистрированных в нем программ.
Исключение шести программ из меню ускорило его открытие в проводнике примерно в три раза❗️ У классического меню, вызываемого из Total Commander, разница была не столь драматичная, но все равно без программ оно открывалось на 23% быстрее.
Я тестировал MP3-файлы вне сферы облачного диска OneDrive. Конкретно с этим типом файлов были связаны две программы из шести. Остальные четыре были сопоставлены с любыми файлами.
Разумеется, скорость может сильно варьироваться в зависимости от железа, набора программ в меню и типа файлов. Но у меня нет никаких сомнений, что сейчас производительность вывода программ и прочих элементов контекстного меню ниже плинтуса 👎
Отдельно доставляет, как значки команд подгружаются уже после отображения всех пунктов меню. В ролике↓ скорость воспроизведения сначала 100%, а потом замедлена до 30%, чтобы получше рассмотреть происходящее. Первый вызов меню всегда неприемлемо тормозной, даже если несколькими минутами ранее я уже открывал его в том же окне.
📊 Недавний опрос читателей показал, что как минимум 6 из 10 человек не устраивает скорость открытия меню и/или лишние пункты в нем. Скоро я опубликую в блоге статью с подробными инструкциями по зачистке от ненужных программ контекстного меню в Windows 11 и 10. Там будет скучный ручной метод и быстрый скрипт для тех, кто не боится консоли.
Но в любом случае полная очистка контекстного меню ради ускорения не имеет смысла. Многие программы там нужны, их выпиливание лишь замедлит выполнение пользовательских задач. Проблему должны решать разработчики Windows! ✌️
Как создать 9 цифровых сотрудников за 5 уроков?
Нейросети могут стать вашими незаменимыми сотрудниками. Особенно если вы знаете, как обучить их выполнять свои задачи.
📎 Вы сможете делегировать:
– планирование рекламной кампании
– создание постов для соцсетей
– генерацию картинок
– анализ целевой аудитории
– рекламные креативы
– и многое другое
Регистрируйтесь на бесплатный курс от команды Университета искусственного интеллекта.
🤖 За 5 уроков по ChatGPT вы научитесь грамотно составлять промпты и узнаете, как создать своего нейро-помощника для продаж, маркетинга и других задач. Бесплатный доступ сразу после регистрации
Реклама. ООО "ТЕРРА ЭЙАЙ". ИНН 9728019395. erid: LjN8KFrZg
⚙️ winget: исключение приложений из массового обновления
Сегодня в рубрике "Возвращаясь к напечатанному" команда pin
менеджера пакетов winget. Разбирая нюансы автоматического обновления приложений осенью 2022 года, я сетовал на отсутствие такой фичи в winget. Ее добавили летом 2023 года в качестве отдельной команды.
Документация имеется, но ввиду ее автоматического перевода на русский язык прокомментирую три варианта исключений тут.
🔹 Закреплениеwinget pin add powertoys
Вместо имени пакета можно использовать --id
. Команда исключает приложения из обновления командой winget upgrade --all
, но позволяет включить их разово ключом --include-pinned
. Также работает обновление отдельного пакета: winget upgrade powertoys
.
🔹 Блокировкаwinget pin add powertoys --blocking
В этом случае обновление пакета (отдельно или массово) возможно лишь с ключом --force
либо после снятия закрепления: winget pin remove powertoys
🔹 Диапазон версийwinget pin add --id powertoys --version 0.70.*
Здесь все версии 0.70.ххх
не будут обновляться. Обход ключом --force
.
Наконец, можно посмотреть все исключения:winget pin list
А также массово сбросить их:winget pin reset --force
#Классика блога обновлена. Но помимо команды pin
есть и другие улучшения. В ближайшее время я еще раз обновлю статью и расскажу об этом в канале ✌️
▶️ PowerShell vs. CMD: управление пользователями и группами
Читателям канала со стажем этот пост покажется знакомым, потому что я уже поднимал похожую тему в рубрике #PowerShellvsCMD. Однако там лейтмотивом была независимость команд от языка интерфейса ОС. А здесь в форум пришёл человек с просьбой помочь ему написать батник для отключения всех локальных юзеров, входящих в группу "Пользователи удаленного рабочего стола".
Он знал, как вывести всех пользователей и отключить отдельного:net localgroup "Пользователи удаленного рабочего стола"
net user "Username" /active:no
И хотел связать это воедино. Впрочем, в течение часа он сам опубликовал решение, уложившись всего в 8 строк с помощью FOR
и FINDSTR
- классика жанра!
Между тем, на #PowerShell задача легко и надежно решается в одну строку:Get-LocalGroupMember -SID S-1-5-32-555 | ForEach-Object {Disable-LocalUser -SID $_.SID}
Здесь S-1-5-32-555
- известный идентификатор группы пользователей удаленного рабочего стола. Выборка по SID в первой части конвейера позволяет не зависеть от языка системы, а во второй - исключает любые неожиданности с именами пользователей ✌️
🕑 Как определить, является ли происходящее следствием запущенного из планировщика задания
Или наоборот - как исключить задание из списка подозреваемых в каком-то поведении системы.
Серебряной пули не существует, но есть подходы.
1️⃣ Запись активности процессов
Если процесс запущен из планировщика, его родительским процессом будет taskeng.exe
. Однако он завершается после отработки задания, поэтому отследить его можно только записью. Например, с помощью WPR или Process Monitor, как в деле об автозагрузке Windows. Там из планировщика запускался промежуточный процесс, кстати.
2️⃣ Журнал событий планировщика и аудит процессов
Иногда можно косвенно определить связь по времени, когда поведение наблюдается сразу после выполнения запланированного задания. Аудит процессов помогает сопоставить время выполнения задания и запуск процесса. Однако надо держать в уме, что после — не значит вследствие.
По умолчанию история планировщика отключена, но ее можно активировать в правой панели оснастки. Это действие эквивалентно включению журнала событий Microsoft-Windows-TaskScheduler/Operational
. Именно в него пишется история планировщика.
Дальше можно смотреть в журнале событий или #PowerShell. Ниже пример отбора заданий, запущенных за последний час. Я уже разбирал в канале такую выборку с хэш-таблицей. Get-WinEvent -ErrorAction 0 -FilterHashTable @{
LogName='Microsoft-Windows-TaskScheduler/Operational'
ID='100'
StartTime=(Get-Date).AddMinutes(-60)
#TaskName='\CreateExplorerShellUnelevatedTask'
} | ft -wrap
Здесь закомментировано имя конкретного задания. Выборка по нему сработает только в PowerShell Core. Там можно фильтровать по именованным полям событий, тем самым обходясь без передачи по конвейеру в Where-Object
и ускоряя процесс.
Эти поля отображаются в XML-представлении задания↓ Помимо документации см. также мои скрипты для поиска событий аудита реестра и процессов.
Через пару дней в блоге выйдет статья, для которой я сопоставлял историю заданий планировщика и запуска процессов ✌️
❄️ TechNet Wiki - в архиве документации!
11 лет назад на MVP Open Days 💨 нас зазывали в авторы новоиспеченной TechNet Wiki под соусом “Пишите, и о вас узнает весь мир!”. На вопрос, как этому помогут фактически обезличенные записи, последовал незамысловатый ответ: “Ваши материалы будут на сайте Microsoft! И вообще, индусы и китайцы с радостью!”
👉 Архив https://learn.microsoft.com/en-us/archive/technet-wiki/
Спасибо за наводку Вадимсу Подансу - говорит, там было что-то годное про PKI.
Архив не индексируется поисковиками, а внутренний поиск еще совсем недавно был сломан примерно год. Но не уничтожили, и на том спасибо!
#Классика блога и канала по теме:
🔹 Сохраняем исчезающие блоги Microsoft MSDN и TechNet
🔹 Как найти исчезнувшие статьи базы знаний Microsoft
🔹 Архив видео Channel 9
💉 На игле
Можно сколько угодно проповедовать грамотные подходы к обслуживанию системы, но четверть твоей аудитории все равно будет чистить реестр 🙄 Однако прогресс есть - 5 лет назад таковых было аж 46%! Тот опрос был привязян к доставке пруфа, что Microsoft не поддерживает использование программ для чистки реестра. Но кого это останавливало? :)
Разумеется, иногда нужна точечная ручная зачистка реестра для устранения возникшей проблемы - например, от остатков установленных программ. Вот свежая тема форума про сломанные точки восстановления. После удаления приложений для бэкапа их фильтры остались в реестре и нарушили работу теневых копий. Это, кстати, распространенный кейс! Заметьте, что диагностика сразу ведется целенаправленно 🎯
⌛️ В 2005 году Марк Руссинович в статье Registry Junk: A Windows Fact of Life тоже разбирал случай, когда точечная очистка помогла устранить конкретную проблему. В заключении он написал, что мусор в реестре [от удаленных программ] надо принять как данное. А значит, чистильщики всегда будут входить в арсенал одержимых наведением порядка в ОС сисадминов. Здесь он наверняка имел в виду не профессию, а занятие - ведь "обычные пользователи" администрированием своих систем не утруждаются.
Последний раз я массово зачищал реестр "шампунем" лет 20 назад. Но в какой-то момент я заметил, что при удалении приложения снимок реестра сильно отличается от сделанного на момент установки. Что намекало на бесполезность мероприятия. "Шампунь" отправился на мороз ❄️ И некому было уже почистить реестр за ним ;)
В те времена еще имела смысл аргументация, что раздутый от мусора реестр, загружаясь в память, замедляет запуск системы / загрузку профиля и отнимает драгоценные килобайты RAM. А значит чистка могла хоть как-то увеличить производительность 📈 Сейчас, когда система грузится с SSD, а одна вкладка браузера забирает сотни мегабайт, говорить об этом несерьезно.
Но Марк не ошибся в прогнозе - программы для очистки реестра живее всех живых. Однако цели у них немного сместились 🕶
Платные программы разводят чайников на деньги (пользователи взломанных чистильщиков - особая каста:) Бесплатные - хорошо, если обходятся без малвари. Но они вполне могут собирать столь ненавистную целевой аудитории телеметрию и продавать данные пользователей на сторону 💰 Если этим не гнушаются крупные антивирусные вендоры, чего ожидать от программ, впаривающих продвинутым пользователям ненужную оптимизацию, которая еще и систему может сломать.
На картинке письмо, которое ввиду исключительной важности темы было отправлено всем администраторам OSZone... Через 5 лет я проведу следующий опрос. Не переключайте каналы ✌️
🐧 Акция в Отус: курс "Linux для начинающих" теперь всего за 10 ₽, вместо обычных 7000 ₽!
➡️ Запишитесь на курс сейчас: https://otus.pw/FIWY/?erid=LjN8KAny8
Познание базовых возможностей и умение работать с Linux станет ключом к успешному карьерному росту, учитывая популярность этой операционной системы в мире.
🖥 Курс включает:
- 3 модуля с видеолекциями,
- Обширные знания по основам Linux,
- Возможность обучения в любом месте с доступом в интернет,
- Тесты для закрепления полученных знаний.
Не упустите шанс обучиться под руководством эксперта по UNIX-вселенной, Андрея Буранова, и воспользоваться уникальной акцией на курс "Linux для начинающих" в Отусе.
🏈 О технологиях Microsoft в американском футболе
В это воскресенье пройдет Супербоул, финал чемпионата по американскому футболу. Игры, на которую я давно и плотно подсел в качестве болельщика. Она практически неизвестна за пределами США, хотя про Супербоул вы могли слышать. Билеты на него начинаются от $8000, ложа стоит $2.5 млн, а 30 секунд ТВ-рекламы - $7 млн. Плюс в этом году еще и Тэйлор Свифт в качестве главной болельщицы 🎉
Казалось бы, при чем тут мой канал? 🤔 Однако его тематика - Microsoft, а у этой компании есть прямая связь с национальной футбольной лигой (NFL) - планшет Surface!
Microsoft заключила первый контракт с NFL на 5 лет в 2013 году. Поначалу некоторые не разобравшиеся медийные персоны называли Surface айпэдом, что сильно напрягало Редмонд 😡 Но постепенно все приучились говорить хотя бы Microsoft tablet.
Surface - это не просто спонсорство, а важный атрибут игры. И не потому что лучший футболист всех времен и народов Том Брэди мог выместить злость на планшете. А потому что игрок на его позиции (самой важной, quarterback - распасовщик атаки), берёт в руки планшет, едва уступив место на поле защите.
📸 На Surface он смотрит фотографии расстановки игроков на поле до и после начала розыгрышей. Фото делаются с двух верхних точек стадиона - вид вдоль поля от зачетной зоны и вид поперек поля - все 22 игрока.
Да, лига настолько консервативна, что даже после 10 лет применения планшетов не разрешает видео🤦♂️ Планшет заменил черно-белые фотографии, которые отправляли термопринтеру на бровке и складывали в папку на кольцах. Есть даже эпичная история о проблемах на линии. Тогда пришлось печатать наверху и нанять курьеров из числа зрителей, чтобы они относили фото вниз и... возвращались наверх за новой пачкой 🏃♂️
Классические фотографии до сих пор в ходу, но теперь ими пользуются только деды. Планшет добавляет интерактива! Фото передаются на серверы, где обогащаются метаданными - порядковый номер розыгрыша, требуемые и реально набранные ярды. Фото можно увеличить и рассмотреть происходящее в деталях 🔍
Планшет снабжен стилусом, чтобы взаимодействовать с ним в перчатках - игры нередко проходят в холодную погоду ✍️ Поддерживается и совместная работа - можно рисовать разными цветами, обсуждая происходящее по отдельной голосовой связи.
Профессиональный футбол стремится к максимальной честности игры, и это вполне применимо к Surface. Чтобы исключить преимущество той или иной команды, все планшеты игрового дня сконфигурированы одинаково и не подключены к интернету. Лига полностью контролирует их - выдает перед игрой и забирает после.
🎬 Видео с историческим экскурсом и демонстрацией фич планшета (12 мин, EN) https://player.vimeo.com/video/521107788?h=50b869e08b
Разумеется, тренеры - главные пользователи планшета. С его помощью они дают указания игрокам по ходу игры. Ниже↓ эпизод из текущего сезона, где тренер указывает защитнику на шаблонное поведение атаки в определенной расстановке. Он говорит, что для перехвата мяча нужно просто выдвинуться перед принимающим. И прямо в следующем розыгрыше, распознав комбинацию соперника и следуя инструкциям тренера, игрок делает несколько шагов вперед и ключевой перехват 🏈
////
Моя любимая команда не вышла в плей-офф, поэтому в финале я нейтральный болельщик. Но посмотрим, что принесёт следующий сезон. Go Colts!
erid: LjN8K12ZD
В поисках надёжной корпоративной SIEM-системы в условиях импортозамещения?
Регистрируйтесь на вебинар «Импортозамещение систем безопасности: всё о MaxPatrol SIEM», который пройдёт 13 февраля в 12:00.
На этом вебинаре расскажем и продемонстрируем:
🔹 Как MaxPatrol SIEM собирает данные об IT-активах и как работает технология детальной инвентаризации.
🔹 Как MaxPatrol SIEM идентифицирует IT-активы даже в меняющейся инфраструктуре.
🔹 Как правильно подключать источники к системе.
🔹 Что из себя представляют пакеты экспертизы и правила корреляции.
🔹 Как модуль VM может расширить возможности MP SIEM по контролю уязвимостей.
🔹 Что нового в MaxPatrol SIEM 8.0 и VM 2.0.
Регистрируйтесь на вебинар «Импортозамещение систем безопасности: всё о MaxPatrol SIEM»
Реклама. ООО "ИНФРАТЕХ". ИНН 5024197250.
💣 Как администратору Windows автоматизировать рутинные задачи?
Узнайте на бесплатном практическом уроке «PowerShell — быстрый старт в скрипты» от OTUS.
💻 После вебинара вы сможете:
— Создавать простые скрипты на PowerShell для автоматизации управления Windows инфраструктурой
— Оптимизировать процессы и ускорить выполнение рутинных задач
— Улучшить свои навыки в области автоматизации и управления задачами в операционной системе Windows
👉 Занятие пройдёт 31 января в 20:00 мск и будет приурочено к старту курса «Администратор Windows». Доступна рассрочка на обучение!
🔥 Регистрируйтесь прямо сейчас, чтобы занять место на открытом уроке и получить запись: https://otus.pw/5Pa4b/?erid=LjN8KKa5L
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
⚙️ Гадание по логам: диагностика ошибки обновления Windows RE
Проблема с обновлением RE может возникать не только из-за недостатка места на выделенном разделе. Участник чата Zubastic
получил в WU другую ошибку - 0x800f0922
. На диске GPT три раздела, среда восстановления выключена. При включении:REAGENTC.EXE: образ среды восстановления Windows не найден.
При отключенной среде образ вероятно в dir /ah C:\Windows\system32\Recovery
, но стоит проверить папку \Recovery\WindowsRE
на разделах с ОС и средой, где он и оказался.
Включаем среду восстановления с логом:reagentc /setreimage /path d:\Recovery\WindowsRE /logpath %temp%\reagent.log
REAGENTC.EXE: сбой операции: 3bc3
В логе 2024-01-15 12:45:13, Info
ReAgentConfig::ReadBcdAndUpdateEnhancedConfigInfo
WinRE disabled, WinRE Guid could not be determined (0x3bc3)
Утилита не смогла прочесть BCD и определить GUID среды для конфигурации загрузки. Ведь в RE надо грузиться с помощью BCD. Этот GUID прописан в BCD (параметр recoverysequence
) и файле конфигурации RE:%windir%\system32\Recovery\ReAgent.xml
.
Короче, что-то не так с BCD. В GPT она на разделе EFI с FAT32. Но такого раздела в системе не видно, первый - какой-то NTFS на 540 MB. Zubastic
вспоминает, что конвертировал MBR в GPT.
Наверное, это бывший раздел System Reserved
. Я предлагаю отформатировать в EFI и пересоздать BCD. Теперь раздел FAT32, но bcdedit
выдает:Не удается найти данные конфигурации загрузки
.
При этом утилита открывает хранилище, если указать прямой путь. Система тоже грузится 🤔
Дальше автор вопроса гуглил уже сам и вышел на неверный идентификатор раздела. Оказалось, он просто отформатировал раздел в FAT32. Поэтому сохранился старый ИД!
👉 В блоге и доках скрипт diskpart
создает раздел EFI, тем самым назначая правильный ИД, затем форматирует:create partition efi size=100
format quick fs=fat32 label="System"
Идентификатор (GUID) здесь соответствует EFI.DISKPART> det par
Partition 1
Type : c12a7328-f81f-11d2-ba4b-00a0c93ec93b
Hidden : Yes
Required: No
Attrib : 0X8000000000000000
Offset in Bytes: 1048576
Как только первому разделу задали этот ИД, bcdedit
выдала все как надо. А с reagentc
получилось задать расположение образа среды восстановления на последнем разделе и включить ее ✌️