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

Чат: @winsiders
Блог: outsidethebox.ms
Oбратная связь: @vsterkin
Поддержать ₽: boosty.to/sterkin
Download Telegram
⚙️ О подходах к диагностике - простых и сложных

Однажды я обнаружил, что у меня не работает магазин Windows: вместо содержимого - ошибки. Я очень редко открываю его, поэтому не знал, в какой момент возникла проблема. Но я ничего не менял у себя очень давно. Вместо диагностики я просто установил нужное приложение с помощью winget и пошел дальше.

Спустя какое-то время у меня возник ворох проблем, вызванных сбоем файловой системы. Решил их я следуя своему же любимому совету - переустановил систему поверх 🔃 Однако Магазин это не починило, что намекало на несистемную природу неполадок.

🌐 С сетью у меня было все ок. Я подключился к двум разным VPN, но ничего не изменилось. Oткрыл консоль и сделал сброс магазина, а затем полностью переустановил его. Не помогло. Тогда я зашёл в чистый аккаунт, и в нем такой проблемы не было. Значит, что-то с моим профилем 💯

Чтобы исключить влияние внешних факторов, я убрал все из автозагрузки и наконец перезагрузился. Магазин заработал! И только тут я связал сообщение о проблемах с сетью с установленным у меня клиентом прокси-сервера (SOCKS5). Разумеется, он стоял в автозапуске. Действительно, без прокси магазин заработал! 🎉

👉 7 лет назад я опубликовал тут пост "Простой прием диагностики Windows, о котором не надо забывать". Речь шла о загрузке в безопасный режим. Как и в тот раз, об этом приеме я сейчас успешно забыл :) Но в итоге фактически пришел к нему, потому что в безопасном режиме автозагрузка тоже не работает. Также, ее отключение - это часть режима "чистой загрузки" в терминологии Microsoft, см. KB929135.

////

ℹ️ На практике множество проблем в Windows легко решается простой двухходовкой:
1. Безопасный режим.
2. Если в нем воспроизводится - переустановка поверх, иначе - поиск проблемной программы или службы.

Но этому часто мешают разные факторы:
- нежелание перезагружаться
- знание, что "ничего не делал" смещает фокус диагностики - я чинил магазин, хотя проблема решалась в прокси
- переоценка своих навыков - я знаю #PowerShell и еще много страшных слов :)
- или наоборот недооценка знаний, которая сходу ведет в гуглояндекс, где на бестолковых и "сеошных" советах можно потерять кучу времени

В результате вместо простой диагностики получается квест из сложной 🤷‍♂️

В чате Артём Федотов заметил, что переустановка поверх не повышает уровень знаний, потому что остается невыясненной причинa проблемы. Это правда.

Однако не всегда нужно и целесообразно ее выяснять. Да и не факт, что понимание причины как-то повысит уровень знаний. Ок, узнал я, что проблема в прокси-сервере. Так у меня и раньше с ним внезапно отваливались сервисы Microsoft из-за изменений на их серверной стороне - то не работала Кортана, то блокировался русский голосовой ввод. Решение - тема для отдельного разговора.

В общем, я не имею ничего против сложных методов диагностики. Главное - не забывать о простых ✌️
😎 Глагол ухуренить уже прочно вошел в лексикон участников чата @winsiders!

На картинке #автоперевод статьи про среду восстановления в документации Microsoft.
🤦‍♂️ О фиаско CrowdStrike

Пока российские айтишники закидывались попкорном под видосики коллапса в аэропортах и офисах по всему миру, я помогал коллегам вернуть их системы к жизни 😎 У одного из наших клиентов CrowdStrike Falcon Sensor развернут на всех Windows. Виртуальные десктопы в облачной инфраструктуре стали головной болью техподдержки клиента. Но часть команды сидит по схеме BYOD под управлением Intune на локальных ВМ Hyper-V. И это уже наша сфера ответственности.

Вообще, сломались не все системы. Мой облачный десктоп Windows 365 и локальная ВМ поднялись после одной перезагрузки. Другим повезло меньше. Однако процедура восстановления несложная, и большинство коллег легко справились с ней, следуя моим инструкциям. К счастью, они не впадают в ступор от вида командной строки 🙏

Впрочем, всплыла пара интересных нюансов, которые скорее всего были следствием применения к нашим ВМ политик Intune. Причем неравномерного, что затрудняло диагностику.

🔐 Часть ВМ была зашифрована BitLocker. Я ранее инструктировал команду забэкапить 48-значный пароль восстановления, но сделали это примерно 0,5 человека ;) Этот пароль можно посмотреть в корпоративном личном кабинете. Однако туда нужно входить с авторизованного устройства, у которого... BSOD :)

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

Про креативный способ входа в безопасный режим в обход BitLocker я узнал позже.

🔁 На некоторых ВМ при входе среду восстановления не обнаруживалось локальных администраторов. Это легко обходилась загрузкой в среду восстановления с ISO. Но поведение было странным. Тем более что постфактум whoami /groups показывала принадлежность пользователя к группе администраторов.

По тексту ошибки нагулилась KB2957212 времен Windows 8.1. Там это поведение списывали как раз на политики и предлагали хотфикс. Возможно, в дальнейшем он так и не вошел в код ОС.

////

⁉️ CrowdStrike клянётся рассказать в своем блоге всю правду по итогам расследования. Но первая часть (недоступно с российских провайдеров) не содержит ответа на вопрос, которым многие задаются. Как такой дефект мог проскочить в прод, минуя автотесты? А точнее - это у них обычное дело или неудачное стечение обстоятельств выявило неочевидный изъян в процессах?

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

🛡 Семь лет назад я рассказывал про облачный компонент защитника Windows. Там антивирус заблокировал подозрительный файл, отправил его на анализ в облако и в ответ получил вердикт "малварь" и новые сигнатуры. Прошло всего 8 секунд! Никакие автотесты вы за это время не проведете.

Да, здесь не совсем такой сценарий. Свои поведенческие сигнатуры CrowdStrike обновляет не каждый день, хотя бывает и по несколько новых файлов за сутки. И в данном случае наверное они могли проверить, что система хотя бы не валится в BSOD, едва получив новый файл.

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

На фоне фиаско CrowdStrike сайты и паблики ИТ-тематики пошли вразнос в погоне за хайпом. Например, только ленивый не скопировал новость, что Microsoft для решения проблемы рекомендует 15 перезагрузок. Такую рекомендацию компания не публиковала, хотя формулировка была неудачной.

А как только схлынула первая волна новостей, эти же ресурсы быстро перешли к петросянству 🤦‍♂️ В наш чат вбросили новость, которая была на Yahoo, HN, Tom's Hardware, XDA Dev и в рунете, конечно.

Якобы американская авиакомпания SouthWest Airlines избежала коллапса, потому что до сих пор использует Windows 3.1 🛫

Основанием для статьи послужила чья-то шутка в Твиттере. Доказательством использования Windows 3.1 стала ссылка на позапрошлогоднюю статью. В ней чиновник из профсоюза пилотов утверждал, что некоторые системы авиакомпании выглядят настолько старыми, будто они были созданы во времена Windows 95.

Эти слова всколыхнули у меня воспоминания...

⌛️ В 2000-х я работал в США в управлении медицинской информацией одной здравоохранительной системы. Там было приложение для работы с базой данных пациентов - персональная информация, даты визитов, лечащие врачи. Без медицинских карт.

Это был терминал типа IBM 3270 (точнее его эмулятор) - как в старые добрые времена! С навигацией F-клавишами. Этих горячих клавиш было больше 12, конечно, что неизменно вводило в ступор новичков. На картинке другой, но очень похожий.

Терминал был очень быстрый. А при использовании горячих клавиш - космически быстрый 🚀

Более современная система с примерно той же информацией и медицинскими картами впридачу обладала красивым GUI. Но она и рядом не стояла по скорости работы 📉 А это критически важно, когда нужно срочно найти пациента по звонку с неполной информацией - имя-фамилия, пожилой, вроде был у вас. При таком раскладе в GUI даже не совались.

Но какой-нибудь клоун посмотрел бы на экран и сказал: ахаха у них DOS!

////

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

Недавно в чате обсуждали эту исторически болезненную тему. Приступы боли вероятнее при установке Windows с учетной записью Microsoft (MSA). В этом случае в качестве имени папки профиля берется первые 5-6 символов адреса электронной почты 🤷‍♂️

Потом пользователь обнаруживает это непотребство и пускается во все тяжкие, чтобы переименовать папку - с переменным успехом.

⌛️ Во времена Windows 7 я рекомендовал простое средство переноса данных, но так создавалась новая учетная запись. Кажется, у Microsoft никогда и не было явно поддерживаемого способа для переименования папки профиля. Потому что программы могут записывать в реестр абсолютные пути и потом работать некорректно с новым именем папки.

👌 Косвенно операция поддерживалась способом из KB2454362 - наряду с именем папки нужно изменить значение ProfileImagePath в реестре. Статья опять же времен Windows 7, но технически здесь вряд ли что-то изменилось.

Для переименования папки там подразумевается наличие еще одного администратора. Но без него можно обойтись, действуя в среде восстановления.

💡 В чате Niks предложил альтернативный и весьма креативный способ, который вас не устроит. Зато вы сможете выручить тех, кто не пользуется командной строкой и альтернативными файловыми менеджерами.

Можно задать желаемое имя папки в файле desktop.ini! Впрочем, здесь тоже есть подводные камни.

1️⃣ Создайте в корне профиля (папка %userprofile%) файл desktop.ini с таким содержимым:

[.ShellClassInfo]
LocalizedResourceName=МоеИмяПапки


2️⃣ В командной строке выполните
attrib +s +h %userprofile%\desktop.ini

3️⃣ Щелкните папку профиля правой кнопкой мыши, на последней вкладке (Настройка) задайте любой значок и примените изменения. Затем там же восстановите дефолтный значок. Иначе у этой папки имя не поменяется 🙄

////

✔️ Резюме
Лучше не доводить до нежелательного имени папки профиля. Я пользуюсь MSA, но всегда ставлю ОС с локальным аккаунтом, чтобы контролировать имя папки ✌️
🔐 В Windows 11 24H2 шифрование BitLocker можно легко включить и в домашних изданиях - на ПК с TPM

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

ℹ️ Включение и выключение шифрования в Параметрах домашних изданий было доступно с Windows 8.1, но только на компьютерах с определенным набором характеристик. Начиная с версии 24H2 сняли требования к Modern Standby / валидации HSTI и проверке портов DMA.

Поэтому теперь во время чистой установки Windows автоматически шифруются праактически любые компьютеры с TPM. То есть вручную включать и не надо даже! Хотя кто-то захочет и отключить 😎

Я подготовил огромный FAQ по нюансам автоматического шифрования BitLocker в Windows 11 24H2. И он уже давно доступен подписчикам на Boosty!

➡️ https://boosty.to/sterkin/posts/6390d301-6775-4915-afb1-1a9704a1437c

Вы можете прочесть этот материал не только по подписке, но и просто поддержав меня разовым взносом на Boosty↑ или еще проще на CloudTips 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Закончилась сага с проблемными обновлениями среды восстановления

Она началась в январе с массовой ошибки 0x80070643 при установке обновления Windows RE в Windows 10. Я публиковал в блоге большой FAQ по теме.

⌛️ Вкратце, ошибка возникла, когда не хватало места на разделе RE или он отсутствовал в принципе. Microsoft предлагала пользователям вручную увеличивать раздел, но даже в статье с инструкциями была эпичная ошибка. А скрипт для увеличения имеющегося раздела появился значительно позже.

За полгода компания прошла все пять стадий принятия неизбежного и в итоге заменила проблемные обновления. Например, KB5034441 -> KB5042320. Причем это не абсолютно новая статья, а обновление старой, в том числе новый номер и ссылка.

ℹ️ Исправление все так же призвано обновить RE. Однако логика его применимости к операционной системе поменялась так, чтобы ошибка не возникала. Теперь обновление не предлагается, если на разделе со средой восстановления мало свободного места или его нет вовсе.

Отмечу пару любопытных нюансов.

🔸 10 июля в текст исходной статьи KB5034441 внесли изменения, которые гласили, что при ряде условий↑ обновление не нужно (sic!) и не будет предлагаться. Однако месяц спустя все-таки перевыпустили исправления под новыми номерами.

🔸 Microsoft решила не просто оставить уязвимыми, но и не уведомлять об этом ошибкой системы с уже включенным шифрованием BitLocker. Более того, в логе изменений KB5042320 говорится, что убрана ненужная информация об уязвимости CVE-2024-20666. Она послужила триггером для выпуска обновления, и никто ее не отменял. Почему информация об уязвимости стала ненужной - загадка 🤷‍♂️

Так или иначе, все те, кого ошибка действительно беспокоила, за полгода разобрались с увеличением размера раздела RE. Для всего остального есть текущая рекомендация Microsoft. Она фактически сводится к одной фразе: Don't worry, be happy 🎶
⬇️ winget: быстрая установка своего набора программ на чистой системе

Недавно я рассказывал в блоге, как прицепить установку программ с winget к автоустановке Windows. (А заодно как установить winget в Windows Server и изданиях LTSC :) В статье был скрипт с ручной подборкой приложений для winget. Создание такого набора можно существенно автоматизировать!

👉 У winget есть команды export и import.

В настроенной системе эта команда сохранит json со списком программ в текущую папку:
winget export -o apps.json


В чистой системе эта команда установит приложения из списка:
winget import C:\temp\apps.json --ignore-unavailable --accept-package-agreements --accept-source-agreements


🤺 Теперь нюансы.

🔹 В список попадут только приложения, доступные в подключенных репозиториях. По умолчанию - это winget и msstore (репо магазина Windows).

🔹 Вы можете убрать ненужные приложения, открыв json в текстовом редакторе. По умолчанию winget пытается обновить приложения до новой версии. Если ее нет, он ничего не делает. Поэтому не тратьте время на удаление из списка предустановленных приложений и компонентов вроде "Microsoft.Edge" и "Microsoft.UI.Xaml.2.8".

🔹 Файл структурирован по репозиториям. Для экспорта конкретного репо есть ключ -s: -s msstore. К сожалению, в этом репо по идентификатору вида 9N8G7TSCL18R невозможно определить приложение. Можно подставить ИД в ссылку на веб-версию магазина или пройтись по json скриптом #PowerShell:

$json = Get-Content -Path "apps.json" -Raw | ConvertFrom-Json
$msstore = $json.Sources | Where-Object {$_.SourceDetails.Name -eq "msstore"} |
ForEach-Object {$_.Packages.PackageIdentifier}
$msstore | ForEach-Object {explorer https://apps.microsoft.com/store/detail/$($_); sleep 1}
# $msstore | ForEach-Object {Get-WinGetPackage -Id $_ -MatchOption Equals} | ft ID,Name -Wrap


Вместо открытия веб-версии магазина вы можете вывести названия с помощью модуля PowerShell (последняя строка).

🔹 Вы можете добавить в список прочие приложения, посмотрев их ИД командной search:
winget search nanazip

Разумеется, добавлять ИД нужно в раздел соответствующего репо, иначе при установке программа не найдется.

🔹 В список не попадут приложения, которые были установлены из образа вместе с системой (winget сообщает о каждом в процессе экспорта). Причем даже с помощью winget нельзя просто взять и получить список их магазинных ИД. Да и не все они доступны в репо магазина. Поэтому команда search в помощь.

✔️ Резюме
Команды import и export призваны ускорить создание привычной среды на чистой системе. И они неплохо с этим справляются! Да, не все программы есть в репозиториях, а перенос настроек приложений - отдельная большая тема. Но грех жаловаться на возможность одной командой установить несколько десятков любимых программ ✌️
▶️ Windows Terminal: перемещение курсора мышью и фрагменты кода

Хочу рассказать вам о паре новых возможностей терминала.

🖱 Перемещение курсора мышью

Нередко бывает, что надо изменить длинную команду. И чтобы перейти в нужное место, приходится давить ⬅️ или ➡️ либо нажимать их, удерживая Ctrl, что быстрее.

Казалось бы, перемещая руку от клавиатуры к мыши и обратно, ничего особо не ускоришь. Но по моим ощущениям иногда действительно быстрее просто ткнуть мышью в нужную позицию строки 🚀

Этой фичей я уже пользуюсь несколько месяцев в превью терминала, а вчера она стала доступна в стабильной версии. Настраивается для профилей в дополнительных параметрах. Можно включить это поведение для отдельных профилей или сразу для всех (Defaults). Разумеется, у ненужных профилей можно отключить.

Но есть нюанс © Функция экспериментальная, и работает она только в оболочках которые её поддерживают. Например, это PowerShell Core, но не Windows #PowerShell, идущий в комплекте с ОС.

#️⃣ Фрагменты кода (code snippets)

Это только что появилось в превью терминала (я попробовал еще в Canary). Можно сохранять команды и даже небольшие скрипты. И быстро запускать их!

🎦 Демо от ПМа терминала.

По сути осуществляется ввод символов, прописанных в настройках (JSON-файл). В раздел actions добавляйте действие Send Input с нужным фрагментом.

{ "command": 
{
"action": "sendInput",
"input": "ping 1.1.1.1\r ping colts.com\r"
},
"name": "Demo ping",
"keys": "ctrl+alt+p"
}


В этом примере последовательно пингуются два ресурса (\r эмулирует нажатие клавиши Enter).

Сейчас для вызова повторных команд в моем арсенале поиск по истории (Ctrl+R) и Predictive IntelliSense (п. 3, фича модуля PSReadLine). Однако оба способа нередко "замусориваются" вариациями одной команды. Плюс можно выполнять фрагмент заданным сочетанием клавиш. Поэтому я уже вижу применение фрагментам кода!

Попробуйте эти фичи и поделитесь впечатлениями в чате! ✌️
⚙️ Как быстро восстановить разрешения на файл или папку

Недавно в чат поддержки пришел человек, который собственноручно сломал разрешения файла hosts. Он творил полную дичь - пытался сделать этот файл только для чтения, чтобы не слетел некий кряк 🤦‍♂️

Зато у меня появился повод показать один из моих любимых примеров мощи конвейеров в #PowerShell. От имени администратора:

cd C:\Windows\System32\drivers\etc
Get-Acl networks | Set-Acl hosts


В оригинале была одна команда, но так нагляднее. Перейдя в папку с файлами, берем список контроля доступа (ACL) у соседнего файла networks и применяем его к поврежденному hosts. Это всё! Восстанавливаются разрешения на объект файловой системы и его владелец.

ℹ️ Параметр -Path для пути к файлу я опустил. У этих командлетов он первый позиционный, т.е. подразумевается, если не указан. Такие вещи описаны в справке.

Проблему автора вопроса это решило, но ничему не научило. Уже через 5 минут он спросил, как изменить владельца родительской папки etc. Потому что не получалось сохранить измененный файл hosts 🤦‍♂️🤦‍♂️ В его инструкциях же не уточнялось, что текстовый редактор надо запускать от админа...

Вообще, правка разрешений нужна крайне редко. А для внесения изменений в файлы или реестр она фактически не требуется. На такой случай у меня есть отличная #классика блога с быстрым и грамотным способом выполнения операций с правами SYSTEM и TrustedInstaller ✌️
Windows 11, 10, etc - Вадим Стеркин
Викторина: что делает команда 'ngen eqi' в Windows?
От подписчиков 😂 Очень рад, что канал читают люди с отличным чувством юмора!
🤷‍♂️ Владельцы локализованных Windows должны страдать

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

Этот тезис получил очередное подтверждение на прошлой неделе. Множество пользователей VMWare Workstation из разных стран не смогли установить новую версию. Всех их объединяло наличие локализованной системы.

An error occurred while applying security settings. Authenticated Users is not a valid user or group.

Методом тыка страдальцы выяснили: установка проходит на ура, если создать в системе две группы с латинскими названиями - Authenticated Users и Users. Причем членство в этих группах не требуется.

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

///

По совпадению я недавно разбирал похожую ситуацию на работе. Нас мигрируют в огороженную среду с правами обычного пользователя, поэтому повылезало много проблем с установкой бизнес-приложений. Детали опущу, но вкратце - некоторые программы легко ставятся мимо Program Files и нормально работают дальше. Прочие же этому противятся, причем нетрадиционными способами 🌈

Нормальные разработчики уже лет дцать используют манифест установщика. И если там указано requireAdministrator, он будет запускаться только с правами администратора. А тут некое приложение с бородатых времен поставляется в самораспаковывающемся CAB-архиве. Я извлек содержимое командой expand и увидел несколько батников.

Первый батник сходу проверял наличие прав администратора, а при успехе вызывал другие файлы, устанавливающие службу и прочие штуки. Для проверки он искал в выводе команды whoami /groups строку Mandatory Label\High Mandatory Level 🤦‍♂️

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

🪲 Казалось бы, цель достигнута. Однако вывод команды локализован! Поэтому в русской или итальянской Windows вы с любыми правами такого не увидите. И соответственно вообще не сможете установить приложение этим инсталлятором.

Я предложил инженеру QA занести на это дефект, но он махнул рукой. Видимо, клиентская база использует исключительно английские ОС. Так-то даже на уровне батников можно было решить вне зависимости от языка. Например, такой костыль #PowerShell вызовет из одного батника другой с правами админа.

powershell -command "Start-Process -FilePath '%~dp0batch2.cmd' -Verb RunAs"

Глагол RunAs недавно был в канале. Я также показывал управление локальными пользователями и группами вне зависимости от языка ОС.

////

Я исторически использую Windows на английском языке, поэтому подобные проблемы мне не грозят. Если для вас такое невыносимо, хотя бы ставьте английский дистрибутив и накатывайте родной языковой пакет. Иначе - не забывайте так страдать ✌️
🔎 Новое в блоге: Дело об окнах командной строки при входе в систему

Это могло бы стать новым делом Шерлока Холмса, однако он уже фактически раскрывал его дважды, как вы увидите дальше. Еще одна вариация не тянет на новую главу, но все-таки дело было любопытное ввиду сложных условий!

Однажды ко мне обратился читатель Максим с просьбой помочь вычислить источник окон командной строки, которые периодически появляются группой при входе в Windows и быстро исчезают. Я уверен, что многие из вас их тоже видели↓ и до сих пор наблюдают иногда.

Максим читал Дело об автозагрузке Windows, однако оно не совсем подходило под его случай. Установить ПО для записи загрузки он не мог. Да и вообще злосчастные окна появляются лишь иногда, причем нерегулярно.

➡️ Читайте в блоге: https://www.outsidethebox.ms/22296/
Вечерний опрос: выключаете ли вы на ночь свой основной домашний компьютер? Чтобы не усложнять, в вариантах ответа под сном понимаются любые режимы сна (S1-S3), гибернация (S4) и Modern Standby.
Anonymous Poll
35%
Выключаю, быстрый запуск отключен или неприменим
11%
Выключаю, но не в курсе быстрого запуска
20%
Вручную отправляю в сон
9%
Компьютер сам уходит в сон
18%
Компьютер работает всю ночь
3%
У меня нет домашнего компьютера
5%
Моего варианта тут нет
Новое в Windows 11 24H2: вкладка "Цифровые подписи" у всех файлов

Впервые нововведение было замечено в инсайдерских сборках еще в ноябре 2023 года. Изменение любопытное и несколько загадочное.

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

👉 Смысл эта функция обретает при просмотре свойств системных файлов и драйверов. У них теперь отображаются подписи каталогов!

Исторически файлы операционной системы не имели вкладки Digital Signatures (Цифровые подписи) в свойствах и поэтому выглядели неподписанными. Дело в том, что подписывается не каждый файл, а каталог, которому файлы принадлежат.

ℹ️ Каталоги хранятся в папке %windir%\system32\CatRoot. Открыв любой cat-файл двойным щелчком, вы увидите вкладки General и Security Catalog. На второй вкладке перечислены хэши всех файлов, которые подписаны посредством каталога.

В 24H2 именно к этим сведениям вы и переходите из раздела Catalog Signatures на вкладке Digital Signatures у системных файлов. Просто в этом случае содержимое каталога фильтруется по файлу, который вы просматриваете. Поэтому вы видите в списке только один хэш, а не полный набор хэшей, как при открытии cat-файла.

⚙️ Во время установки драйвера диспетчер PnP извлекает его подпись из каталога и расшифровывает ее, используя публичную часть ключа Microsoft для подписи драйверов. Затем он сравнивает полученный хэш с хэшем файла устанавливавемого драйвера. Если хэши совпадают, драйвер считается прошедшим тестирование WHQL. Иначе диспетчер PnP действует в соответствии с политикой подписи драйверов в операционной системе - отказ, предупреждение пользователя или тихая установка.

Возвращаясь к новой вкладке, я затрудняюсь определить ее практическую пользу. Особенно в этих крошечных древних окошечках Win32. Я также с трудом представляю запрос от пользователей на это. Но вреда никакого нет. Да и хорошо, что наконец закрыли логический пробел с якобы отсутствующей подписью у системных файлов ✌️
🔒 KeePass: автоматический ввод в приложениях с одинаковыми заголовками окна

Это третий пост серии про #autotype в KeePass. Ранее в канале:
🔹Основы автонабора и порядок записей в его окне
🔹Автоматический ввод учетных данных в браузере по URL страницы

Учетные данные приходится вводить не только в браузерах, но и в приложениях. И в рабочей среде у меня несколько приложений с одинаковым заголовком окна: Sign in. Соответственно, по сочетанию клавиш Ctrl+Alt+A вываливается список записей для разных приложений.

👉 Хотелось бы автоматически вводить имя пользователя и пароль соответственно приложению. И эту задачу решает плагин Disambiguator! С его помощью в настройках автонабора для каждой записи можно добавлять параметры {exe:} и/или {ctl:}.

🔶 Параметр {exe:} определяет приложение

Для заголовка окна вместо Sign in задается Sign in{exe:MyApp.exe}, например. В качестве значений этот параметр принимает имя файла с расширением и без оного, полный путь к файлу, в том числе с подстановочным символом *, а также регулярное выражение. Примеры в ридми.

В моем случае есть семейство Java-приложений, где одинаковые не только заголовки окон, но и имена исполняемых файлов - javaw.exe! Поэтому спасаюсь путем к файлу:

Sign in{exe:*\*folder-name*\javaw.exe}

🔶 Параметр {ctl:} проверяет наличие заданного поля в окне

Его можно указать по ID, имени или классу контрола. Чтобы выяснить их, переведите плагин в режим создания отчета: Tools - The Disambiguator Options - Report, задайте в поле с заголовком окна параметр {report} и выполните автонабор.

Плагин создаст отчет по всем контролам в окне. Фрагмент:
     Child ID: 112
Name : EnterPassword
Class : Static
Child ID: 113
Name : EnterPassword
Class : Edit

Это пример поля для ввода пароля. 112 - его название, а 113 - редактируемое поле, куда вводится текст. В KeePass для заголовка окна задается Sign in{ctl:113}. Не забудьте отключить режим отчета у плагина. При автонаборе он проверит не только заголовок окна, но и наличие в нем поля с этим ИД.

Пользуясь случаем, хочу передать привет коллегам, которые до сих пор копипастят учетные данные из блокнота или вводят их руками каждый раз ✌️