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، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار 73، وفي آخر 24 ساعة بمقدار 0، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 33.43%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 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 ✌️
