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

Чат: @winsiders
Блог: outsidethebox.ms
Oбратная связь: @vsterkin
Поддержать ₽: boosty.to/sterkin
Download Telegram
😎 Про установку #Windows11 с локальной учетной записью методом BypassNRO

Прием не новый, но раньше мне на глаза не попадался. Встретился он в таинственной формулировке, примерно такой: во время установки не подключайтесь к сети, на первом экране OOBE нажмите Shift+F10 и введите oobe\bypassnro. Магия! 🪄

Ларчик открывается просто. Сочетание клавиш запускает командную строку в папке C:\Windows\System32. В подпапку oobe разработчики заботливо положили файл bypassnro.cmd. Именно он и запускается командой, ибо расширение исполняемого файла указывать необязательно.

В файле две команды - внесение в реестр параметра BypassNRO и перезагрузка, после которой снова OOBE. Похоже, NRO означает - Network Requirement Oobe, т.к. параметр отменяет требование к наличию сети при установке. Маркетинг - маркетингом, а соломку для нестандартных бизнес-сценариев надо подстелить 🥊 Перезагрузка же нужна для вступления изменения в силу.

⚙️ С целью автоматизации этот параметр можно внести в реестр из файла ответов синхронной командой на этапе specialize. Но разве что на случай, когда выбор имени локальной учетной записи делегируется пользователю. Иначе аккаунт прописывается сразу в ФО - #классика блога в помощь.

Что ж, еще один коллекционный костыль от создателей Windows для обхода системных требований, заложенных в программу установки. Впрочем, способ 1@1.ru все равно легче запомнить✌️
🪄 Про магию устранения неполадок в Windows

Иногда исправление относительно несложных проблем в Windows выглядит для непосвященных магически. И не всегда очевидны пути даже к озвученному решению.

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

В бот поддержки прислали такую проблему:
Появилась вторая учётка при входе - первая теперь требует пин-код
Пытался на приложении Mail добавить учётку Яндекса, ничего не получилось. Теперь при каждой перезагрузке появляется уведомление о неверном пароле и предложение выбрать из двух учёток с одинаковым именем.

Всегда полезно знать, что привело к проблеме. Но важно сфокусироваться на главном: две учетные записи (УЗ), ошибка при каждом старте ОС, неверный пароль.

Я запросил вывод Get-LocalUser и оказалось, что УЗ все-таки одна, если не считать служебные. Решение уже стало понятно 😎 Но я все-таки запросил фото проблемы↓ - хотелось убедиться, что автор все верно описал, а я - правильно понял. Дальше - внимание к деталями и простая логика.

#PowerShell можно верить - УЗ точно одна. При старте системы появляется ошибка - неправильные учетные данные. Получается, была попытка входа. Пользователь входить не пытался. Значит...

вход выполняет сама ОС...
при запуске...
автоматически...

💡 Автоматический вход не срабатывает! Для него задана неверная УЗ или пароль. И да, это написано на экране :)

Для устранения проблемы надо отключить автовход любым способом. Например, удалить параметр DefaultUserName в разделе
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

Вы же, наверное, настраивали автоматический вход в Windows. Думаете ОС проверяет имя УЗ и пароль? Нет, она просто сохраняет их, а потом при запуске ломится как лось 🦌

Кстати, прошлым летом была #классика блога об отключении автовхода последнего пользователя, если на УЗ нет пароля. Я тогда предложил нестандартное решение - задать юзеру неверный пароль.

Картинка в статье как две капли воды похожа на скриншот автора вопроса! Знанием этим я с вами делился. А опыт - дело наживное 👌

В чате расскажите, какую проблему из недавних вы смогли решить своими силами без гуглояндекса.
⚙️ Новое в блоге: О нативной загрузке в UEFI или что означает фраза «это не поддерживается»

«Посмотрел по ссылкам [ваши статьи], там одно широко распространённое заблуждение в очередной раз резануло глаз. А откуда, собственно говоря, вы (именно вы) его взяли?», поприветствовал меня в почте читатель Serge.

Его зацепила #классика блога Практические советы по переходу с MBR на GPT с фразой «В Windows для нативного UEFI требуется загрузочный том в разметке GPT».

Я в свою очередь запросил конкретики, подспудно ожидая спецификацию UEFI в ответ.

➡️ Читайте дальше в блоге: https://www.outsidethebox.ms/21649/
🔒 Двухфакторная аутентификация в Госуслугах (ГУ)

Случайно узнал, что в ГУ появилась возможность перейти от двухэтапной аутентификации через СМС к двухфакторной с одноразовыми кодами из аутентификатора. Про разницу есть #классика блога.

Учитывая широкие возможности ГУ, захват аккаунта злоумышленником может иметь печальные последствия. Использование одноразовых кодов страхует от взлома аккаунта путем перевыпуска SIM-карты.

👉 #2FA настраивается в Профиль - Безопасность - Вход в систему - Вход с подтверждением.

В мобильном приложении [для Android] пока переключиться нельзя. Однако в нем можно быстро перейти на портал из раздела Безопасность - Мобильные приложения (картинка) и все настроить.

Прямая ссылка на страницу управления настройками - https://lk.gosuslugi.ru/settings/safety/login, и ее лучше открывать на смартфоне. На десктопе в популярных браузерах будет ошибка получения кода и придется возиться с отключением CORS ✌️
🔒 Об отсутствии кодов восстановления в двухфакторной аутентификации Госуслуг (ГУ)

Читатель Yves Genie первым делом обратил внимание, что в ГУ при переключении на 2FA с одноразовыми кодами не предусмотрено создание резервных кодов. Они невероятно ценны в случае повреждения или утери аутентификатора. #Классика блога освещала этот вопрос.

ℹ️ На реализацию #2FA различными компаниями полезно смотреть через призму документа NIST 800-63B. Конечно, американский институт стандартов не указ российским Госуслугам. Однако публикации NIST не просто определяют стандарты для госсектора США, но и в немалой степени задают вектор развития мировой индустрии. Наряду с высотой потолка эти рекомендации обозначают и высоту пола, под которым уже начинает просматриваться дно.

👉 В разделе 6.1.2.1 говорится, что поставщик услуги должен рекомендовать клиентам использование двух аутентификаторов на каждый фактор. Например, если применяется устройство для генерации одноразовых кодов (OTP), можно выпускать коды восстановления (look-up secrets в терминологии документа). И соответственно такая возможность должна быть реализована в сервисе.

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

NIST не обозначает природу такого канала. Наверное, подразумевается дистанционный способ. Но в случае с ГУ таковым вполне может являться визит в МФЦ с паспортом 😎
⬇️ ISO с языковыми пакетами, FOD, Inbox Apps - без регистрации и SMS

👉 Скачать для Windows 11 | Windows 10. Пользователям из РФ понадобится прокси или VPN.

По ссылкам:
🔹 Языковые пакеты - наборы для локализации интерфейса.

🔹 FOD (Features on Demand) - дополнительные компоненты, которые можно установить в Параметрах (не путайте с теми, что в optionalfeatures.exe). Сюда также входят языковые компоненты: распознавание речи, OCR, рукописный ввод, etc.

🔹 Inbox Apps ISO - комплект магазинных приложений, входящих в поставку Windows.

Раньше все это было доступно только в VLSC, а также подписчикам MSDN (кроме Inbox Apps ISO). Но в 2022 году у Microsoft случился аттракцион невиданной щедрости, и все ISO выложили в публичный доступ 🎉 Причем даже ретроспективно для более старых версий Windows 10. Судя по принадлежности страниц документации, это понадобилось клиентам Azure.

Заодно обновлена #классика моего блога про установку выпиленного Магазина посредством Inbox Apps ISO. Впрочем, этот способ уже не представляет особой ценности, поскольку теперь можно вернуть магазин одной командой ✌️
🔎 Как искать и находить старую документацию Microsoft

Специальная подборка ко дню знаний ;)

Время от времени мне нужны старые доки. Например, для доставки пруфов в дискуссии, раздела "История вопроса" в статье блога или просто тайного знания, которое больше нигде не опубликовано. В моем арсенале три сценария поиска.

1️⃣ Веб-архив
Иногда конкретная страница документации сильно меняется, и возникает необходимость посмотреть, что там было раньше с помощью https://web.archive.org/. Но если просто вставить туда ссылку на текущую страницу, то архив покажет вам результаты лишь с 2022 года.

👉 Не забывайте менять домен! Сейчас - это https://learn.microsoft.com/, но раньше-то он был https://docs.microsoft.com.

В качестве примера такой сильно обновившейся страницы подкину документацию о том, какие параметры синхронизируются в Windows. Я публиковал эту ссылку в канале более 5 лет назад, но с тех пор содержимое страницы изменилось до неузнаваемости. И не в лучшую сторону: было - стало. Upd. Похоже, актуальная документация по этому вопросу теперь в статье KB5031715.

2️⃣ Раздел старой документации
Бывает, что ссылки и названия документа нет, а просто помнишь, что когда-то было описано на TechNet или MSDN.

👉 У Microsoft есть свой архив с документацией устаревших программных продуктов: https://learn.microsoft.com/en-us/previous-versions/

Там недавно починили долго не работавший поиск, хотя и сейчас он ищет через пень-колоду.

3️⃣ Гугление вайтпейперов :)
Некоторые документы [по тематике Windows] не публиковались на TechNet. Они выкладывались в центре загрузок в виде файлов DOCX или PDF.

Как-то раз я искал у себя на диске один такой whitepaper и никак не мог выйти на него. Решил просто найти все, а там видно будет. И понял, что один из общих знаменателей - слово Abstract в тексте.

👉 Поэтому можно искать в интернете так: abstract filetype:docx OR filetype:pdf site:microsoft.com. А дальше уже уточнять тематику, добавляя ключевые слова вроде performance.

Пример: подробнейший и до сих пор актуальный справочник по BCDEdit.

🍪 #Классика блога по теме:
PowerShell: сохраняем исчезающие блоги Microsoft MSDN и TechNet
Как найти исчезнувшие статьи базы знаний Microsoft
🖊 О выпиливании WordPad из Windows

На прошлой неделе проскочила драматическая новость о том, что Microsoft убивает WordPad после 28 лет службы верой и правдой 😱

Он и так уже является необязательным компонентом, однако установленным по умолчанию.

Get-WindowsCapability -Online | where name -like *wordp*

И конкретной даты удаления не озвучили. Пока WordPad получил статус deprecated (значение термина я объяснял в канале). Предположу, что какое-то время компонент будет поставляться в отключенном состоянии, прежде чем его совсем выпилят.

Но зачем вообще может понадобиться WordPad? Давайте представим Windows из коробки без подключения к интернету 👈

1️⃣ Сохранение текстовых файлов в кодировке MS-DOS (OEM-866)

Для пакетных файлов bat и cmd, обрабатывающих кириллицу в путях, это было нужно испокон веков. Размещение ответа в FAQ намекает, что наступавших на грабли было великое множество. А олды смахнут скупую слезу, увидев альтернативные редакторы :)

Кстати, несмотря на способность сохранять в кодировке OEM-866, WordPad некорректно отображает кириллицу при открытии файла, см. картинку ↓ Исправить это можно, выбрав шрифт Terminal (спасибо, Сергею Ткаченко за напоминание:).

Взамен Microsoft предлагает использовать Блокнот, но он не умеет в OEM-866. Однако в качестве замены подойдет #PowerShell. Командлеты Out-File и Set-Content умеют задавать кодировку.

Write-Output привет | Out-File oem.txt -Encoding oem

2️⃣ Открытие DOCX

Из коробки этот тип файлов даже ассоциирован с WordPad. И на практике мне это пригождалось несколько раз. Например, когда на чистой и огороженной системе приходилось заглядывать в документацию к программе в формате DOCX. Да и при наличии интернета не всегда хочется загружать туда файл.

Взамен Microsoft предлагает использовать Word. Видимо, будет стандартное предложение поискать в магазине.

И кстати вместе с WordPad надо будет выпилить еще и write.exe!

fsutil hardlink list c:\windows\write.exe

#Классика блога про это: Зачем Windows нужно два блокнота (и точно ли их два) ✌️
🔐 О состоянии шифрования 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 можно относительно быстро прикинуть влияние любого программного шифрования на свою систему. Только, пожалуйста, тестируйте производительность диска, а не его кэша ✌️
▶️ Как массово удалить папки, распакованные из архивов

В чате участник Павел задал такой вопрос:
В папке ~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, Павел мог сразу спросить чат-бота. И не дожидаться, пока кожаный мешок опубликует решение его простенькой задачи в канале ✌️