Windows 11, 10, etc - Вадим Стеркин
Авторский канал. Windows, безопасность, мобильный мир: • тайное знание • мощный ликбез • гадание по логам • срыв покровов • доставка пруфов Чат: @winsiders Блог: outsidethebox.ms ЛС: @vsterkin Донаты ₽: boosty.to/sterkin РКН: https://clck.ru/3LBugC
نمایش بیشتر📈 تحلیل کانال تلگرام Windows 11, 10, etc - Вадим Стеркин
کانال Windows 11, 10, etc - Вадим Стеркин (@sterkin_ru) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 15 648 مشترک است و جایگاه 8 201 را در دسته فناوری و برنامهها و رتبه 41 832 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 15 648 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 15 اکتبر, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر 73 و در ۲۴ ساعت گذشته برابر 0 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 33.43% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 13.34% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 5 231 بازدید دریافت میکند. در اولین روز معمولاً 2 088 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 47 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند microsoft, параметр, диск, object, мониторинг تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Авторский канал. Windows, безопасность, мобильный мир:
• тайное знание
• мощный ликбез
• гадание по логам
• срыв покровов
• доставка пруфов
Чат: @winsiders
Блог: outsidethebox.ms
ЛС: @vsterkin
Донаты ₽: boosty.to/sterkin
РКН: https://clck.ru/3LBugC”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 16 اکتبر, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
in about. И эти слова вполне могут быть представлены отдельной строкой (string). Потому что предшествующие им слова варьируются (снег начнётся, гроза закончится).
Дело осложняется ещё и тем, что фраза in about несколько разговорная. Она абсолютно допустима во множестве сфер, но в юридических или технических документах вы её вряд ли увидите. Там бы написали in approximately, И тогда перевод "в лоб" был бы лучше: через примерно. Хотя правильнее поменять эти слова местами.
Вырванные из контекста фразы ложно переводить хоть ИИ, хоть человеку. Я уже поднимал эту тему в посте о трудностях перевода ✌️<буквы> | Where-Object {!(Test-Path $_)} | Select-Object -First 1
Иногда вместо Select-Object используют Get-Random, но это менее эффективно.
А вот на первом этапе бывают варианты. Часто используют оператор Range для диапазона букв. Тут, кстати, два этапа конвейера.
'j'..'z' | ForEach-Object { "${_}:" }
Мне также встречалось перечисление символов ASCII, где 65 - А, 90 - Z. Но оно менее естественное.
65..90 | ForEach-Object { [char]$_ + ":" }
🔥 А недавно мне попался, пожалуй, самый любопытный способ:
Get-ChildItem function:[j-z]: -Name
В этой команде:
🔹 function: - трюк для получения готового списка букв дисков. Здесь #PowerShell обращается к поставщику функций. Выполните Get-ChildItem -Path Function: и вы увидите не только загруженные из профиля функции, но и список букв дисков!
🔹 [j-z]: - регулярное выражение, которое выбирает из списка функций только буквы в заданном диапазоне.
🔹 -Name - параметр форсирует получение только строковых значений, нежели полного объекта
Полная команда для получения первой свободной буквы диска в заданном диапазоне. Для краткости я заменил названия командлетов на их псевдонимы.
dir function:[j-z]: -Name | where {!(Test-Path $_)} | select -First 1
Этот метод должен быть самый быстрый, хотя разница всё равно измеряется долями секунды - в скрипте это не существенно. Тут скорее играет роль, что вы помните или быстрее вводите. На мой взгляд, вариант с диапазоном букв посложнее набирать.
////
Наконец, мне в комментариях к посту про mountvol подписчик Алексей доставлял, что все свободные буквы могут быть заняты разнообразными дисками. Хотя к тому моменту я уже добавил ссылку на статью блога с решением именно этой задачи - подключением диска в папку NTFS.
Впрочем, это не сработает именно для раздела EFI! У mountvol ключ /s предусматривает только подключение в букву диска, потому что у EFI файловая система FAT32! В такой ситуации надо действовать в зависимости от требуемых изменений. Например, для файловых операций можно обойтись без подключения раздела, но для команд bcdedit логичнее освободить букву на время✌@username и сообщение хочу билет на Kuber Confcd $env:localappdata\Microsoft\WindowsApps\
dir *.exe | ft Length,Attributes,Name
Length Attributes Name
------ ---------- ----
0 Archive, ReparsePoint 7z.exe
0 Archive, ReparsePoint 7zFM.exe
0 Archive, ReparsePoint 7zG.exe
0 Archive, ReparsePoint ActionsMcpHost.exe
0 Archive, ReparsePoint bash.exe
...
По идее, если упакованное приложение подразумевает запуск из командной строки, псевдоним уже реализован разработчиком в манифесте с помощью элемента AppExecutionAlias. Тогда при установке приложения псевдоним автоматически создается в папке WindowsApps, которая в свою очередь добавлена в PATH. Благодаря этому приложение запускается из командной строки просто по псевдониму.
Средствами системы создание псевдонимов не предусмотрено. Если разработчик тугой, возможны только обходные пути запуска. В общем случае вы можете закрепить приложение в Пуске, перетащить его оттуда в любую папку из PATH и далее запускать созданный тем самым ярлык из CMD-файла с желаемым именем и таким содержимым:
explorer <полный путь к.lnk>Аналогично может работать и запуск по протоколу. С классическими Win32 приложениями эти ухищрения не нужны. Можно создать символическую ссылку на программу: с любыми именем и хоть в той же папке WindowsApps - будет почти как настоящий псевдоним :) CMD-файл в PATH или раздел реестра App Paths тоже решают вопрос - #классика блога в помощь. Наконец, если очень хочется именно псевдоним, можете воспользоваться модулем #PowerShell за авторством известного исследователя безопасности James Forshaw: NtObjectManager. Пример команды в его же статье с глубоким разбором псевдонимов ✌
Vadikan, с унаследованием всех сообщений. Более того, в специальной теме он предлагал каждому проходимцу подать заявку на владение любым историческим аккаунтом 🤦♂️
Мы, кстати, очень щепетильно относились к принадлежности сообщений. При удалении участника все его посты становились от имени гостя. Их невозможно было унаследовать при новой регистрации ника. Конечно, в цитатах и ответах исходный ник был виден, но это уже сообщения других людей.
Глядя на этот ресурс, я не мог отделаться от ощущения, что человек не только присвоил себе чужое, но и раскопал могилы и пляшет на костях. Да ещё и приторговывает местами на кладбище 😡 Мой ответ был достаточно жёстким.
Я вполне допускаю, что такие проекты реализуются из лучших побуждений. Но их создатели не осознают, что является главной ценностью ресурса. Для постоянных участников значимость OSZone (да и вообще форумов) не в тоннах тем с разрозненной информацией. Куда важнее атмосфера! 👈 Её создают люди, составляющие ядро сообщества. Без них это будет совсем другой форум. И бессмысленно наклеивать на него наш логотип.
Все попытки возродить форум OSZone без преемственности сообщества обречены на провал. Наш OSZone теперь может существовать лишь в режиме "только для чтения".
🤐 Архивы
Онлайн: https://os-zone.net/
Версии тем для печати. Реализовано и поддерживается ветеранами форума. Спасибо, Goletsa, OlD_NiK, Piter Pen.
Оффлайн:
• Форум и сайт в HTML (спасибо, Констатин с safezone.cc)
• Форум и сайт в CHM (спасибо, Ostap K)
• Мой учебник по автоустановке Windows (CHM в 7z SFX). Также все наши CHM внедрены в файл Остапа↑\\?\GLOBALROOT)
Оба способа сработают и с разделом EFI с поправкой на другой идентификатор:
# GUID
$id = "{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}"
$lpath = (Get-Partition | where GptType -eq $id).AccessPaths[0]
Get-ChildItem -Force -Recurse -LiteralPath $lpath
# NT namespace
Get-ChildItem -Force -Recurse -LiteralPath \\?\GLOBALROOT\device\harddisk0\partition1\
Но есть и более простой метод, с которым не нужно знать идентификатор раздела или помнить сложный синтаксис пути!
mountvol S: /s
Get-ChildItem -Force -Recurse S:
mountvol S: /d
У команды mountvol предусмотрен специальный ключ /s, который назначает именно разделу EFI заданную букву диска. Ключ /d удаляет её. Мнемоника: /s означает system, /d - delete.
Разумеется, буква диска должна быть свободной, и для примера я выбрал ту же S ✌*.sberbank.ru). Это есть в решении, которое я рассмотрю дальше.
🐻 BrowserSelector
Магазинное приложение BrowserSelector подкинул в чате Alexey. Оно решает те же задачи, но на уровне браузеров. Впрочем, на уровне профилей тоже может: достаточно дописать в пути к браузеру ключ запуска конкретного профиля.
Работает похоже на решения для Android. Приложение становится браузером по умолчанию, а дальше разруливает ваши переходы по ссылкам в зависимости от настроек доменов.
Из принципа работы вытекает и главный недостаток: применение BrowserSelector ограничено переходами из внешних программ. Да и UX у приложения так себе. Оно запускается каждый раз, когда вы переходите по ссылке - значок появляется на панели задач и пропадает. Реализация с фоновой службой могла бы избавить от такого моргания.
////
У меня дефолтный браузер - Edge. И пока не возникало необходимости в стороннем решении для автопереключения. Но хорошо, когда есть выбор! ✌️Ctrl+E) и включите отслеживание реестра.
2. Откройте фильтр (Ctrl+L) и задайте условия:
• Process is: SystemSettings.exe
• Path contains: часть названия элемента интерфейса
В моём примере настройка Lock Screen, я вписываю lock
3. Перезапустите Параметры и перейдите на страницу, предшествующую той, которая контролируется политиками. Без перезапуска приложение может не обратиться к реестру заново.
4. Включите захват (Ctrl+E), перейдите на проблемную страницу и немедленно отключите захват.
5. В списке ищите (Ctrl+F) пути, в имени которых содержится Policies. Это разделы с групповыми политиками. Исключения есть, но крайне редкие.
6. Выделите найденный путь, перейдите в реестр (Ctrl+J) и проверьте наличие параметра, его смысл и значение.
////
📽 В ролике↓ сразу видно, что проверяются два параметра реестра в разделе HKLM\SOFTWARE\Policies\Microsoft\Windows\Personalization:
• Nolockscreen
• NoChangingLockScreen
Действительно, я рассказывал в канале, как отключить экран блокировки во избежание лишних телодвижений при входе в ОС ✌️HKCU\Software\Classes, создав для каждого типа графических файлов подраздел вида \nomacs.png.3. Если удалить разделы программы из классов, приложение не будет предлагаться в качестве дефолтного для Open with.
Задача решается перебором в скрипте #PowerShell (в командах удаления добавлен параметр -WhatIf для страховки от стрельбы в ногу :)
$classesPath = "HKCU:\Software\Classes"
$appKeys = Get-ChildItem -Path $classesPath | Where-Object { $_.PSChildName -like "nomacs.*" }
if ($appKeys) {
foreach ($key in $appKeys) {
Write-Host "Deleting class key: $($key.Name)" -ForegroundColor Yellow
Remove-Item -Path $key.PsPath -Recurse -Force -ErrorAction SilentlyContinue -WhatIf
}
}
🪚 2. Удаление пользовательских ассоциаций
Здесь сложнее. У каждого расширения в разделе реестра FileExts есть два подраздела:
• OpenWithProgids - ИД приложений, которые могут открывать тип файла
• UserChoice - выбор пользователя с ИД и хэшем приложения
Get-ChildItem HKCU:Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\
Hive: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png
Name Property
---- --------
OpenWithProgids nomacs.png.3 :
UserChoice ProgId : nomacs.png.3
Hash : fjmDvOs2rGo=
Здесь слева имена подразделов, справа - их параметров. Поэтому надо перебрать скриптом все подразделы, где эти параметры содержат записи о несуществующем приложении, и удалить их. Для экономии места я вынес скрипт в Pastebin.
🔬 Нюансы
Скрипты на перебор простенькие, создание таких я давно делегирую нейронке. Выдав скрипт, Gemini предупредила, что удаление из FileExts может не сработать. И тогда нужно запускать скрипт от имени SYSTEM или TrustedInstaller (TI) с помощью psexec от Sysinternals.
В моем случае параметры nomacs удалились без проблем. Хотя в целом нейронка права: там нельзя просто взять и удалить. Но есть нюанс © Её обходной путь тоже не сработает 😎
Во-первых, если вы запускаете редактор реестра от имени другой учётной записи, даже системной, то видите её раздел реестра HKCU, а не свой. Другими словами, ваших параметров там не будет. И, кстати, psexec не позволяет запускать исполняемые файлы от имени TI, хотя других вариантов полно.
Во-вторых, параметры в разделе FileExts защищены не столько посредством ACL (это можно было менять скриптом), сколько специальным драйвером UCPD, User Choice Protection Driver. Microsoft добавила его в 2024 году для дополнительной защиты файловых ассоциаций от изменений без ведома пользователя (подробнее: раз, два).
На это есть несколько обходных путей.
🪟 Встроенными средствами вы можете:
• войти в другую учётную запись или Windows RE и подключить в HKU ваш NTUSER.DAT (с корректировкой путей в скрипте, примерно так)
• временно изменить способ запуска службы UPCD, чтобы после перезагрузки ОС не активировался драйвер
🧰 Сторонняя утилита SetUserFTA позволяет сразу задать желаемые ассоциации.
Примеры:
• настройка png: setuserfta .png IrfanView.png
• импорт конфигурационного файла: setuserfta c:\file.cfg
И сам файл:
.png, IrfanView.png .jpg, IrfanView.jpg .jpeg, IrfanView.jpegЗдесь создаётся новая связь с конкретным приложением. Причём в обход работающего драйвера UCPD ✌️
