🚀 Ускорение работы в консоли с помощью псевдонимов и функций
▶️ PowerShell
В моей подборке Ускорение ввода команд в PowerShell я поставил псевдонимы (aliases) первыми в списке. Одновременно указав, что не создаю свои, чтобы не страдать за пределами привычной среды.
Более того, в PowerShell псевдоним - это просто альтернативное имя для существующего командлета или исполняемого файла. В него нельзя внедрить сквозные аргументы. Поэтому не получится создать псевдоним, например, выполняющий
👉 Альтернатива - функция в профиле!
После перезагрузки профиля командой
🐧 Bash
В отличие от PowerShell, Bash поддерживает аргументы и объединение команд в рамках псевдонима. И я этим пользуюсь.
Пример псевдонима для отображения списка логов сервера.
Далее
Для объединения нескольких команд тоже можно задействовать псевдоним. Но можно и функцию! Пример функции для перезапуска сервера, отображения его статуса и последующего мониторинга лога в консоли:
А какие у вас любимые псевдонимы и функции, ускоряющие ввод команд?
▶️ PowerShell
В моей подборке Ускорение ввода команд в PowerShell я поставил псевдонимы (aliases) первыми в списке. Одновременно указав, что не создаю свои, чтобы не страдать за пределами привычной среды.
Более того, в PowerShell псевдоним - это просто альтернативное имя для существующего командлета или исполняемого файла. В него нельзя внедрить сквозные аргументы. Поэтому не получится создать псевдоним, например, выполняющий
Get-ChildItem C:\ -Force. Не говоря уже о последовательном запуске нескольких команд. 👉 Альтернатива - функция в профиле!
function nr {
Get-NetAdapter -Name "Ethernet" |
Restart-NetAdapter -Confirm:$False
}После перезагрузки профиля командой
. $PROFILE (спасибо, Илья) или перезапуска консоли команда nr будет вызывать одноименную функцию и выполниять заложенные в нее команды.🐧 Bash
В отличие от PowerShell, Bash поддерживает аргументы и объединение команд в рамках псевдонима. И я этим пользуюсь.
Пример псевдонима для отображения списка логов сервера.
# открыть профиль
nano ~/.bashrc
# вписать псевдоним, затем сохранить файл
alias xl='sudo ls -l /var/log/myserver'
# применить изменения к текущему сеансу
source ~/.bashrc
Далее
xl будет выполнять sudo ls -l /var/log/myserver.Для объединения нескольких команд тоже можно задействовать псевдоним. Но можно и функцию! Пример функции для перезапуска сервера, отображения его статуса и последующего мониторинга лога в консоли:
xr() {
sudo bash -c "systemctl restart myserver && \
systemctl status myserver && \
tail -f /var/log/myserver/access.log"
}А какие у вас любимые псевдонимы и функции, ускоряющие ввод команд?
Telegram
Windows 11, 10, etc - Вадим Стеркин
🚀 Ускорение ввода команд в #PowerShell
Делюсь четырьмя простыми приёмами для ускорения работы в консоли.
1️⃣ Псевдонимы
У многих командлетов есть псевдонимы из двух-трех символов. Посмотреть их можно так:
Get-Alias -Definition Get-Childitem
Можно повесить…
Делюсь четырьмя простыми приёмами для ускорения работы в консоли.
1️⃣ Псевдонимы
У многих командлетов есть псевдонимы из двух-трех символов. Посмотреть их можно так:
Get-Alias -Definition Get-Childitem
Можно повесить…
👍33❤3👌2
⚙️ Как задать порядок дисплеев при подключении по RDP
Намедни я отключил мониторы от ноутбука, а потом подключил их обратно. И не замечал ничего необычного пару часов, пока не подключился к локальной виртуальной машине посредством файла
При подключении по RDP в параметрах удалённой машины нет настроек дисплеев, т.к. они задаются с хоста. Я перезагрузил виртуалку, но ничего не изменилось. Поменял на хосте порядок дисплеев и вернул назад - тоже безрезультатно.
Тогда я просто запустил
👉 Порядок дисплеев определялся параметром selectedmonitors. У меня было прописано:
ИД дисплеев выводит команда
Основной монитор тогда имел номер 3, а сейчас стал 4. Я поменял в параметре цифры местами, сохранил файл и всё заработало! ✌️
Намедни я отключил мониторы от ноутбука, а потом подключил их обратно. И не замечал ничего необычного пару часов, пока не подключился к локальной виртуальной машине посредством файла
.RDP. В ней оказались перепутаны основной и дополнительный дисплеи. Соответственно, все приложения стали открываться на другом мониторе 🤷♂️При подключении по RDP в параметрах удалённой машины нет настроек дисплеев, т.к. они задаются с хоста. Я перезагрузил виртуалку, но ничего не изменилось. Поменял на хосте порядок дисплеев и вернул назад - тоже безрезультатно.
Тогда я просто запустил
mstsc и при подключении к ВМ поставил флажок "Использовать все мониторы". В этом случае проблема не наблюдалась. Стало понятно, что она кроется именно в файле .RDP!👉 Порядок дисплеев определялся параметром selectedmonitors. У меня было прописано:
selectedmonitors:s:3,4ИД дисплеев выводит команда
mstsc /L. Три года назад она фигурировала в посте Как подключиться к RDP во весь экран на несколько мониторов, но не на все.Основной монитор тогда имел номер 3, а сейчас стал 4. Я поменял в параметре цифры местами, сохранил файл и всё заработало! ✌️
Docs
Supported RDP properties - Azure Virtual Desktop
Learn about the supported RDP properties you can set to customize the behavior of a remote session, such as for device redirection, display settings, session behavior, and more.
2👍72🔥30❤6
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍82👀11🔥4❤1
⚙️ Зачистка меню "Открыть с помощью" от хвостов удалённого приложения и массовая смена файловых ассоциаций
Я удалил приложение nomacs для просмотра картинок и обнаружил в меню "Открыть с помощью" две проблемы:
1. Приложение осталось вверху списка в качестве дефолтного.
2. Для других приложений отсутствовала кнопка Always, чтобы всегда открывать в них.
Можно пойти в Параметры - Приложения и задать для нужных графических форматов желаемую программу. Но у картинок множество типов, и никогда не знаешь, какой понадобится послезавтра. Каждый раз лезть в Параметры не хочется. Да и сам факт мусора неприятен. Вот как я это решал.
🧹 1. Отмена регистрации приложения для типов файлов
Это приложение прописалось в разделе реестра
Задача решается перебором в скрипте #PowerShell (в командах удаления добавлен параметр
🪚 2. Удаление пользовательских ассоциаций
Здесь сложнее. У каждого расширения в разделе реестра FileExts есть два подраздела:
•
•
Здесь слева имена подразделов, справа - их параметров. Поэтому надо перебрать скриптом все подразделы, где эти параметры содержат записи о несуществующем приложении, и удалить их. Для экономии места я вынес скрипт в Pastebin.
🔬 Нюансы
Скрипты на перебор простенькие, создание таких я давно делегирую нейронке. Выдав скрипт, Gemini предупредила, что удаление из FileExts может не сработать. И тогда нужно запускать скрипт от имени SYSTEM или TrustedInstaller (TI) с помощью psexec от Sysinternals.
В моем случае параметры nomacs удалились без проблем. Хотя в целом нейронка права: там нельзя просто взять и удалить. Но есть нюанс © Её обходной путь тоже не сработает 😎
Во-первых, если вы запускаете редактор реестра от имени другой учётной записи, даже системной, то видите её раздел реестра HKCU, а не свой. Другими словами, ваших параметров там не будет. И, кстати, psexec не позволяет запускать исполняемые файлы от имени TI, хотя других вариантов полно.
Во-вторых, параметры в разделе FileExts защищены не столько посредством ACL (это можно было менять скриптом), сколько специальным драйвером UCPD, User Choice Protection Driver. Microsoft добавила его в 2024 году для дополнительной защиты файловых ассоциаций от изменений без ведома пользователя (подробнее: раз, два).
На это есть несколько обходных путей.
🪟 Встроенными средствами вы можете:
• войти в другую учётную запись или Windows RE и подключить в HKU ваш
• временно изменить способ запуска службы UPCD, чтобы после перезагрузки ОС не активировался драйвер
🧰 Сторонняя утилита SetUserFTA позволяет сразу задать желаемые ассоциации.
Примеры:
• настройка png:
• импорт конфигурационного файла:
И сам файл:
Здесь создаётся новая связь с конкретным приложением. Причём в обход работающего драйвера UCPD ✌️
Я удалил приложение nomacs для просмотра картинок и обнаружил в меню "Открыть с помощью" две проблемы:
1. Приложение осталось вверху списка в качестве дефолтного.
2. Для других приложений отсутствовала кнопка Always, чтобы всегда открывать в них.
Можно пойти в Параметры - Приложения и задать для нужных графических форматов желаемую программу. Но у картинок множество типов, и никогда не знаешь, какой понадобится послезавтра. Каждый раз лезть в Параметры не хочется. Да и сам факт мусора неприятен. Вот как я это решал.
🧹 1. Отмена регистрации приложения для типов файлов
Это приложение прописалось в разделе реестра
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 ✌️
❤33👍17🔥16👏12👌1
😎 Спустя 5 лет в Windows снова можно размещать панель задач у любого края экрана. И это просто Наивысший #автоперевод
😁128🔥33🙈12👍5🏆3🦄2❤1👏1
⚙️ Параметры: как диагностировать сообщение "Некоторыми параметрами управляет ваша организация"
Без гуглояндекса и нейронок
Некоторые настройки в Параметрах могут быть заблокированы, а вверху страницы отображаться вынесенное в заголовок сообщение. Его английский вариант: Some settings are managed by your organization.
ℹ️ Это означает, что настройку контролирует какая-то групповая политика. Но анализ результирующих политик может не помочь, если изменения вносились напрямую в реестр.
Например, вы применили твик и забыли, какой именно 😎 В моём случае захотелось сменить картинку на экране блокировки, но выбор был недоступен.
👉 Вам понадобятся Process Monitor, знание английских названий элементов интерфейса, чёткий порядок действий и немного терпения.
1. Запустите Process Monitor, отключите захват (
2. Откройте фильтр (
• Process is: SystemSettings.exe
• Path contains: часть названия элемента интерфейса
В моём примере настройка Lock Screen, я вписываю
3. Перезапустите Параметры и перейдите на страницу, предшествующую той, которая контролируется политиками. Без перезапуска приложение может не обратиться к реестру заново.
4. Включите захват (
5. В списке ищите (
6. Выделите найденный путь, перейдите в реестр (
////
📽 В ролике↓ сразу видно, что проверяются два параметра реестра в разделе
•
•
Действительно, я рассказывал в канале, как отключить экран блокировки во избежание лишних телодвижений при входе в ОС ✌️
Без гуглояндекса и нейронок
Некоторые настройки в Параметрах могут быть заблокированы, а вверху страницы отображаться вынесенное в заголовок сообщение. Его английский вариант: Some settings are managed by your organization.
ℹ️ Это означает, что настройку контролирует какая-то групповая политика. Но анализ результирующих политик может не помочь, если изменения вносились напрямую в реестр.
Например, вы применили твик и забыли, какой именно 😎 В моём случае захотелось сменить картинку на экране блокировки, но выбор был недоступен.
👉 Вам понадобятся Process Monitor, знание английских названий элементов интерфейса, чёткий порядок действий и немного терпения.
1. Запустите Process Monitor, отключите захват (
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Действительно, я рассказывал в канале, как отключить экран блокировки во избежание лишних телодвижений при входе в ОС ✌️
👍78👏9❤7🔥4🎉1👌1
⌨️ Как ввести пароль или ПИН-код на экране входа, если клавиатура не работает
Намедни после выхода из сна отвалился клавиатурный ввод. Подсветка есть, а символы не набираются. Поэтому не могу ввести ПИН-код. Разумеется, проблема решилась бы живительной перезагрузкой системы. Но хотелось этого избежать.
👉 На помощь приходит экранная клавиатура!
Главное - войти в систему, а там есть варианты. На практике даже это не понадобилось. После входа физическая клавиатура заработала нормально ✌️
Намедни после выхода из сна отвалился клавиатурный ввод. Подсветка есть, а символы не набираются. Поэтому не могу ввести ПИН-код. Разумеется, проблема решилась бы живительной перезагрузкой системы. Но хотелось этого избежать.
👉 На помощь приходит экранная клавиатура!
Главное - войти в систему, а там есть варианты. На практике даже это не понадобилось. После входа физическая клавиатура заработала нормально ✌️
👍44😁7❤6👏1🫡1
🌐 Автоматическое переключение браузеров и их профилей на десктопе
Сегодня речь про автопереключение между профилями одного браузера или несколькими браузерами в зависимости от текущей задачи. Например, в сценариях:
• работа / дом
• напрямую / через прокси
• сертификат Минцифры / без него
Разумеется, можно открывать конкретный браузер и ходить в нём на нужные сайты. Но надо всегда об этом помнить. К тому же UX ломается, когда вы переходите по ссылке из почты или мессенджера.
Мы уже обсуждали решения для таких сценариев на смартфоне. Сегодня - десктоп!
🦔 Профили в Microsoft Edge
Edge - потому что в нём есть уникальные настройки профилей. Наиболее активно я использовал автопереключения между профилями, когда у меня на работе было два разных тенанта Windows 365. Это было больно, и Edge спасал!
Стандартно в Chromium вы переходите из других программ в последний использовавшийся профиль. И зачастую не в тот 🤷♂️
В Edge есть:
🔹 Выбор, в какой профиль переходить из внешних программ: последний или конкретный заданный.
🔹 Настройки для поведения в зависимости от входа в браузер с корпоративной или личной учётной записью, а также от типа сайта (Интранет, шоппинг).
🔹 Тонкая настройка переключения профилей. Вы можете связать тот или иной домен с любым профилем и дополнительно указать, нужно переключаться в этот профиль или нет. И это будет работать во всех случаях: при открытии ссылок из других программ, веб-серфинге, вставке URL в адресную строку. Очень удобно!
Ложка дёгтя: настройки доменов недостаточно гибкие. Хотелось бы иметь возможность указать подстановочные символы (
🐻 BrowserSelector
Магазинное приложение BrowserSelector подкинул в чате Alexey. Оно решает те же задачи, но на уровне браузеров. Впрочем, на уровне профилей тоже может: достаточно дописать в пути к браузеру ключ запуска конкретного профиля.
Работает похоже на решения для Android. Приложение становится браузером по умолчанию, а дальше разруливает ваши переходы по ссылкам в зависимости от настроек доменов.
Из принципа работы вытекает и главный недостаток: применение BrowserSelector ограничено переходами из внешних программ. Да и UX у приложения так себе. Оно запускается каждый раз, когда вы переходите по ссылке - значок появляется на панели задач и пропадает. Реализация с фоновой службой могла бы избавить от такого моргания.
////
У меня дефолтный браузер - Edge. И пока не возникало необходимости в стороннем решении для автопереключения. Но хорошо, когда есть выбор! ✌️
Сегодня речь про автопереключение между профилями одного браузера или несколькими браузерами в зависимости от текущей задачи. Например, в сценариях:
• работа / дом
• напрямую / через прокси
• сертификат Минцифры / без него
Разумеется, можно открывать конкретный браузер и ходить в нём на нужные сайты. Но надо всегда об этом помнить. К тому же UX ломается, когда вы переходите по ссылке из почты или мессенджера.
Мы уже обсуждали решения для таких сценариев на смартфоне. Сегодня - десктоп!
🦔 Профили в Microsoft Edge
Edge - потому что в нём есть уникальные настройки профилей. Наиболее активно я использовал автопереключения между профилями, когда у меня на работе было два разных тенанта Windows 365. Это было больно, и Edge спасал!
Стандартно в Chromium вы переходите из других программ в последний использовавшийся профиль. И зачастую не в тот 🤷♂️
В Edge есть:
🔹 Выбор, в какой профиль переходить из внешних программ: последний или конкретный заданный.
🔹 Настройки для поведения в зависимости от входа в браузер с корпоративной или личной учётной записью, а также от типа сайта (Интранет, шоппинг).
🔹 Тонкая настройка переключения профилей. Вы можете связать тот или иной домен с любым профилем и дополнительно указать, нужно переключаться в этот профиль или нет. И это будет работать во всех случаях: при открытии ссылок из других программ, веб-серфинге, вставке URL в адресную строку. Очень удобно!
Ложка дёгтя: настройки доменов недостаточно гибкие. Хотелось бы иметь возможность указать подстановочные символы (
*.sberbank.ru). Это есть в решении, которое я рассмотрю дальше.🐻 BrowserSelector
Магазинное приложение BrowserSelector подкинул в чате Alexey. Оно решает те же задачи, но на уровне браузеров. Впрочем, на уровне профилей тоже может: достаточно дописать в пути к браузеру ключ запуска конкретного профиля.
Работает похоже на решения для Android. Приложение становится браузером по умолчанию, а дальше разруливает ваши переходы по ссылкам в зависимости от настроек доменов.
Из принципа работы вытекает и главный недостаток: применение BrowserSelector ограничено переходами из внешних программ. Да и UX у приложения так себе. Оно запускается каждый раз, когда вы переходите по ссылке - значок появляется на панели задач и пропадает. Реализация с фоновой службой могла бы избавить от такого моргания.
////
У меня дефолтный браузер - Edge. И пока не возникало необходимости в стороннем решении для автопереключения. Но хорошо, когда есть выбор! ✌️
👍44❤4🤣4🔥1👌1
☕️ Гадание на кофейной гуще: какая версия ОС у автора письма?
Сегодня в рубрике "Вы нам писали" некто Иван, у которого выдался тяжелый день 😂 Писал он мне примерно два года назад. Просто я на днях наткнулся на старый скриншот :)
ℹ️ В письме речь про Дело о восстановлении реестра, которое выручило множество людей. При этом заголовок в поисковиках: "Как восстановить реестр, когда Windows не загружается".
Автор письма неадекватен не только потому, что оскорбил меня. К откату реестра прибегают, когда все прочие средства уже исчерпаны. А исходя из сообщения, после восстановления удалось дойти до экрана входа, то есть система загрузилась! Это же прогресс 🎉
Дальше можно было из среды восстановления править реестр для автологона и входить в систему. Глядишь, там бы и средства ввода поднялись.
////
Пост не случайно выходит в пятницу. В описании моего канала заявлено гадание по логам. Но я могу и по одной фразе погадать! 😎 Свой разбор я уберу под спойлер - вдруг вы тоже захотите вычислить версию ОС у Ивана.
Судя по тону, человек впервые и только что узнал об автоматическом бэкапе реестра из моего блога. Видимо, нашёл статью в поисковиках.
Причём, если бы он сам заранее включил бэкап реестра, то вряд ли откладывал бы кирпичи 🧱 Ну, не вышло, бывает, но по крайней мере грамотно подготовился и хорошо боролся!
Какие-то резервные кусты реестра у него явно были, иначе он вообще не смог бы откатиться. Но автоматический бэкап отключили ещё в 1803 !
Значит, у него более старая ОС. Все каналы Windows 10 кроме долгосрочного уже давно принудительно обновили. В остатке LTSC 1511 и 1607 🌈 Но адепты этого издания при первой возможности переходят на свежий выпуск. А их два появилось с тех пор.
Остаются уже лишившиеся поддержки Windows 8.1 и Windows 7. Ретроград и плитки - понятия плохо совместимые 😃 Поэтому ставлю на Windows 7! ✔️
А бэкап реестра включите, вдруг пригодится! ✌️
Сегодня в рубрике "Вы нам писали" некто Иван, у которого выдался тяжелый день 😂 Писал он мне примерно два года назад. Просто я на днях наткнулся на старый скриншот :)
ℹ️ В письме речь про Дело о восстановлении реестра, которое выручило множество людей. При этом заголовок в поисковиках: "Как восстановить реестр, когда Windows не загружается".
Автор письма неадекватен не только потому, что оскорбил меня. К откату реестра прибегают, когда все прочие средства уже исчерпаны. А исходя из сообщения, после восстановления удалось дойти до экрана входа, то есть система загрузилась! Это же прогресс 🎉
Дальше можно было из среды восстановления править реестр для автологона и входить в систему. Глядишь, там бы и средства ввода поднялись.
////
Пост не случайно выходит в пятницу. В описании моего канала заявлено гадание по логам. Но я могу и по одной фразе погадать! 😎 Свой разбор я уберу под спойлер - вдруг вы тоже захотите вычислить версию ОС у Ивана.
Причём, если бы он сам заранее включил бэкап реестра, то вряд ли откладывал бы кирпичи 🧱 Ну, не вышло, бывает, но по крайней мере грамотно подготовился и хорошо боролся!
Какие-то резервные кусты реестра у него явно были, иначе он вообще не смог бы откатиться. Но автоматический бэкап
Значит, у него более старая ОС. Все каналы Windows 10 кроме долгосрочного уже давно принудительно обновили. В остатке LTSC 1511 и 1607 🌈 Но адепты этого издания
Остаются уже лишившиеся поддержки Windows 8.1 и Windows 7. Ретроград и плитки - понятия плохо совместимые 😃 Поэтому ставлю на Windows 7! ✔️
А бэкап реестра включите, вдруг пригодится! ✌️
👍38😁6❤5
⚙️ Как получить доступ к служебному разделу EFI, не изменяя его свойства
Это продолжение сериала про получение доступа к служебным разделам без изменения свойств. В предыдущих эпизодах главным героем был раздел восстановления (WindowsRE). К нему пробирались за счёт:
• идентификатора раздела (GUID)
• путей пространства имен NT (
Оба способа сработают и с разделом EFI с поправкой на другой идентификатор:
Но есть и более простой метод, с которым не нужно знать идентификатор раздела или помнить сложный синтаксис пути!
У команды
Разумеется, буква диска должна быть свободной, и для примера я выбрал ту же
#Классика блога в тему: Что произойдет, когда в Windows закончатся буквы дисков✌️
Это продолжение сериала про получение доступа к служебным разделам без изменения свойств. В предыдущих эпизодах главным героем был раздел восстановления (WindowsRE). К нему пробирались за счёт:
• идентификатора раздела (GUID)
• путей пространства имен NT (
\\?\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 (Windows PowerShell only, not Core)
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 .#Классика блога в тему: Что произойдет, когда в Windows закончатся буквы дисков✌️
👍46🤝7🔥2❤1👌1
⌛️ Об архивах OSZone и ценности сообщества
Я в чате делился ссылкой на архивы OSZone, но в канал так и не написал. А тут повод появился, который навёл меня на разные мысли...
🔃 Об актуальности и ценности информации
Когда чуть более года назад появилось объявление о закрытии OSZone, многие стали выкачивать форум локально. Я этого не делал, потому что офлайн-копия для меня технической ценности не представляет по ряду причин.
1️⃣ Информация устаревает по мере эволюции ОС и ПО
Это ведь только кажется, что Windows 11 - та же Windows 10 с другим оформлением. Да и Windows 10 в 2015 и 2021 годах - очень разные системы.
Разумеется, множество аспектов передаётся из поколения в поколение Windows. Но такие знания вполне общедоступны и без форума. При этом архивные темы вам не дают четкого понимания, применимо ли то или иное решение к современной реализации.
2️⃣ В офлайн-копии нет поиска
Форум без хорошего поиска бесполезен. Даже в живом форуме я применял очень специфические запросы, основанные на моей памяти - автор поста, фрагменты текста, особые ключевые слова. Без этого в огромном массиве данных невозможно было найти нужные темы, а скорее - сообщения в многостраничных темах. Нужно точно знать, что ищешь. И тогда, возможно, найдётся и в другом месте.
В общем, почитать старые темы, чтобы поностальгировать и смахнуть скупую мужскую слезу или наоборот улыбнуться - для этого офлайн-копия годится. Но не более.
3️⃣ Нейронки эффективнее архивов форума
Сейчас вообще бессмысленно пытаться решить проблему, листая древние темы. В лучшем случае в шапке будут инструкции - примерно как с медленной загрузкой. То есть конкретное руководство к действию.
Нейронки же отвечают моментально, не токсичны. Да, они могут врать и предлагать дичь. Так этого и в форумах без жёсткой модерации хватает :)
Основную массу тем в осевых форумах составляли одни и те же простые вопросы. Их нейронки могут порешать, в том числе с помощью наших же архивов.
📢 О важности сообщества
Когда закрывался OSZone, было много запросов на передачу базы данных. Поступали они мне, потому что я много лет администрировал сообщество. Но я не был владельцем, и мог лишь транслировать его отказ. Наверное, я был единственным человеком, кому владелец мог бы передать или продать ресурс. Но мы с ним это не обсуждали.
Недавно мне написал некто Олег. Он сообщил, что поднял живой форум на основе офлайн-архивов. Дескать, в форуме много актуальной информации (sic!). Я в курсе нескольких таких проектов, но он был первый, кто сообщил мне.
И действительно доменное имя было почти наше, а форум выглядел до боли знакомо: логотип, оформление, ники пользователей, содержимое тем 💔
Олег предложил мне администрировать свой форум. Причём под моим ником
Мы, кстати, очень щепетильно относились к принадлежности сообщений. При удалении участника все его посты становились от имени гостя. Их невозможно было унаследовать при новой регистрации ника. Конечно, в цитатах и ответах исходный ник был виден, но это уже сообщения других людей.
Глядя на этот ресурс, я не мог отделаться от ощущения, что человек не только присвоил себе чужое, но и раскопал могилы и пляшет на костях. Да ещё и приторговывает местами на кладбище 😡 Мой ответ был достаточно жёстким.
Я вполне допускаю, что такие проекты реализуются из лучших побуждений. Но их создатели не осознают, что является главной ценностью ресурса. Для постоянных участников значимость OSZone (да и вообще форумов) не в тоннах тем с разрозненной информацией. Куда важнее атмосфера! 👈 Её создают люди, составляющие ядро сообщества. Без них это будет совсем другой форум. И бессмысленно наклеивать на него наш логотип.
Все попытки возродить форум OSZone без преемственности сообщества обречены на провал. Наш OSZone теперь может существовать лишь в режиме "только для чтения".
🤐 Архивы
Онлайн: https://os-zone.net/
Версии тем для печати. Реализовано и поддерживается ветеранами форума. Спасибо, Goletsa, OlD_NiK, Piter Pen.
Офлайн:
• Форум и сайт в HTML (спасибо, Констатин с safezone.cc)
• Форум и сайт в CHM (спасибо, Ostap K)
• Мой учебник по автоустановке Windows (CHM в 7z SFX). Также все наши CHM внедрены в файл Остапа↑
Я в чате делился ссылкой на архивы OSZone, но в канал так и не написал. А тут повод появился, который навёл меня на разные мысли...
🔃 Об актуальности и ценности информации
Когда чуть более года назад появилось объявление о закрытии OSZone, многие стали выкачивать форум локально. Я этого не делал, потому что офлайн-копия для меня технической ценности не представляет по ряду причин.
1️⃣ Информация устаревает по мере эволюции ОС и ПО
Это ведь только кажется, что Windows 11 - та же Windows 10 с другим оформлением. Да и Windows 10 в 2015 и 2021 годах - очень разные системы.
Разумеется, множество аспектов передаётся из поколения в поколение Windows. Но такие знания вполне общедоступны и без форума. При этом архивные темы вам не дают четкого понимания, применимо ли то или иное решение к современной реализации.
2️⃣ В офлайн-копии нет поиска
Форум без хорошего поиска бесполезен. Даже в живом форуме я применял очень специфические запросы, основанные на моей памяти - автор поста, фрагменты текста, особые ключевые слова. Без этого в огромном массиве данных невозможно было найти нужные темы, а скорее - сообщения в многостраничных темах. Нужно точно знать, что ищешь. И тогда, возможно, найдётся и в другом месте.
В общем, почитать старые темы, чтобы поностальгировать и смахнуть скупую мужскую слезу или наоборот улыбнуться - для этого офлайн-копия годится. Но не более.
3️⃣ Нейронки эффективнее архивов форума
Сейчас вообще бессмысленно пытаться решить проблему, листая древние темы. В лучшем случае в шапке будут инструкции - примерно как с медленной загрузкой. То есть конкретное руководство к действию.
Нейронки же отвечают моментально, не токсичны. Да, они могут врать и предлагать дичь. Так этого и в форумах без жёсткой модерации хватает :)
Основную массу тем в осевых форумах составляли одни и те же простые вопросы. Их нейронки могут порешать, в том числе с помощью наших же архивов.
📢 О важности сообщества
Когда закрывался OSZone, было много запросов на передачу базы данных. Поступали они мне, потому что я много лет администрировал сообщество. Но я не был владельцем, и мог лишь транслировать его отказ. Наверное, я был единственным человеком, кому владелец мог бы передать или продать ресурс. Но мы с ним это не обсуждали.
Недавно мне написал некто Олег. Он сообщил, что поднял живой форум на основе офлайн-архивов. Дескать, в форуме много актуальной информации (sic!). Я в курсе нескольких таких проектов, но он был первый, кто сообщил мне.
И действительно доменное имя было почти наше, а форум выглядел до боли знакомо: логотип, оформление, ники пользователей, содержимое тем 💔
Олег предложил мне администрировать свой форум. Причём под моим ником
Vadikan, с унаследованием всех сообщений. Более того, в специальной теме он предлагал каждому проходимцу подать заявку на владение любым историческим аккаунтом 🤦♂️
Мы, кстати, очень щепетильно относились к принадлежности сообщений. При удалении участника все его посты становились от имени гостя. Их невозможно было унаследовать при новой регистрации ника. Конечно, в цитатах и ответах исходный ник был виден, но это уже сообщения других людей.
Глядя на этот ресурс, я не мог отделаться от ощущения, что человек не только присвоил себе чужое, но и раскопал могилы и пляшет на костях. Да ещё и приторговывает местами на кладбище 😡 Мой ответ был достаточно жёстким.
Я вполне допускаю, что такие проекты реализуются из лучших побуждений. Но их создатели не осознают, что является главной ценностью ресурса. Для постоянных участников значимость OSZone (да и вообще форумов) не в тоннах тем с разрозненной информацией. Куда важнее атмосфера! 👈 Её создают люди, составляющие ядро сообщества. Без них это будет совсем другой форум. И бессмысленно наклеивать на него наш логотип.
Все попытки возродить форум OSZone без преемственности сообщества обречены на провал. Наш OSZone теперь может существовать лишь в режиме "только для чтения".
🤐 Архивы
Онлайн: https://os-zone.net/
Версии тем для печати. Реализовано и поддерживается ветеранами форума. Спасибо, Goletsa, OlD_NiK, Piter Pen.
Офлайн:
• Форум и сайт в HTML (спасибо, Констатин с safezone.cc)
• Форум и сайт в CHM (спасибо, Ostap K)
• Мой учебник по автоустановке Windows (CHM в 7z SFX). Также все наши CHM внедрены в файл Остапа↑
Telegram
Windows 11, 10, etc - Вадим Стеркин
💔 OSZone - всё.
Я пришёл на форум осенью 2002 года. Не знал, как скачать на диск медиафайлы по ссылке - они открывались в плеере. Мне быстро и лишь с лёгким подколом подсказали нажать правую кнопку мыши и выбрать "сохранить как" 🤦♂️
Я начал иногда заходить…
Я пришёл на форум осенью 2002 года. Не знал, как скачать на диск медиафайлы по ссылке - они открывались в плеере. Мне быстро и лишь с лёгким подколом подсказали нажать правую кнопку мыши и выбрать "сохранить как" 🤦♂️
Я начал иногда заходить…
👍61❤18🤷♂8🔥5🤯2
⚙️ Как создать псевдоним для приложения
В личку написал читатель Эльдар с вопросом, почему у меня не раскрыта тема псевдонимов приложений. В ответ я сослался на рассказ пятилетней давности. Но оказалось, что он хотел узнать, как самому создать псевдоним.
В Windows псевдонимы для магазинных и вообще упакованных (packaged) приложений реализованы посредством точек повторной обработки (reparse points) особого типа. Они представлены файлами нулевого размера в папке WindowsApps вашего профиля.
По идее, если упакованное приложение подразумевает запуск из командной строки, псевдоним уже реализован разработчиком в манифесте с помощью элемента AppExecutionAlias. Тогда при установке приложения псевдоним автоматически создается в папке WindowsApps, которая в свою очередь добавлена в PATH. Благодаря этому приложение запускается из командной строки просто по псевдониму.
Средствами системы создание псевдонимов не предусмотрено. Если разработчик тугой, возможны только обходные пути запуска. В общем случае вы можете закрепить приложение в Пуске, перетащить его оттуда в любую папку из PATH и далее запускать созданный тем самым ярлык из CMD-файла с желаемым именем и таким содержимым:
Аналогично может работать и запуск по протоколу.
С классическими Win32 приложениями эти ухищрения не нужны. Можно создать символическую ссылку на программу: с любыми именем и хоть в той же папке WindowsApps - будет почти как настоящий псевдоним :) CMD-файл в PATH или раздел реестра App Paths тоже решают вопрос - #классика блога в помощь.
Наконец, если очень хочется именно псевдоним, можете воспользоваться модулем #PowerShell за авторством известного исследователя безопасности James Forshaw: NtObjectManager. Пример команды в его же статье с глубоким разбором псевдонимов ✌
В личку написал читатель Эльдар с вопросом, почему у меня не раскрыта тема псевдонимов приложений. В ответ я сослался на рассказ пятилетней давности. Но оказалось, что он хотел узнать, как самому создать псевдоним.
В Windows псевдонимы для магазинных и вообще упакованных (packaged) приложений реализованы посредством точек повторной обработки (reparse points) особого типа. Они представлены файлами нулевого размера в папке WindowsApps вашего профиля.
cd $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. Пример команды в его же статье с глубоким разбором псевдонимов ✌
Telegram
Windows 11, 10, etc - Вадим Стеркин
🤦♂️ О псевдонимах магазинных приложений
Участник чата Ника установил Python, выполнил в командной строке python и отложил кирпичную кладку 🧱🧱🧱 Потому что у него открылся магазин! Будучи человеком опытным, он сразу понял, что дело в псевдонимах запуска магазинных…
Участник чата Ника установил Python, выполнил в командной строке python и отложил кирпичную кладку 🧱🧱🧱 Потому что у него открылся магазин! Будучи человеком опытным, он сразу понял, что дело в псевдонимах запуска магазинных…
👍31❤3
Викторина. Какие функции доступны в Параметрах, либо в оснастке управления дисками (diskmgmt.msc) или вызываются из нее? Подразумевается, что Windows 11 установлена штатно, а диски не трогали.
Final Results
9%
Создание VHD(X)
6%
Подключение раздела в пустую папку NTFS
9%
Просмотр разметки диска
5%
Изменение разметки диска (MBR -> GPT)
1%
Назначение буквы разделу EFI
30%
Все эти функции доступны
3%
Только пункты 1, 2
17%
Только пункты 1, 2, 3
21%
Только пункты 1, 2, 3, 4
🔥8❤7🤔6🤣6
Windows 11, 10, etc - Вадим Стеркин
Викторина. Какие функции доступны в Параметрах, либо в оснастке управления дисками (diskmgmt.msc) или вызываются из нее? Подразумевается, что Windows 11 установлена штатно, а диски не трогали.
🧩 Экспресс-уточнение по викторине
В чате Alexey Kamanin справедливо заметил, что у чистого диска можно изменить разметку.
В четвертом пункте я подразумевал диск с ОС - задача ведь обычно там возникает. И не учел этот момент в формулировке.
Технически возможны первые четыре варианта. Поэтому правильный ответ - последний ✌️
В чате Alexey Kamanin справедливо заметил, что у чистого диска можно изменить разметку.
В четвертом пункте я подразумевал диск с ОС - задача ведь обычно там возникает. И не учел этот момент в формулировке.
Технически возможны первые четыре варианта. Поэтому правильный ответ - последний ✌️
🤣18❤9😁6👍2😎2👏1🦄1
▶️ PowerShell: как определить свободную букву диска
В посте про mountvol я упомянул, что для подключения диска нужна свободная буква. Не всегда она известна заранее. В скриптах эта типовая задача решается конвейером в одну строку:
1/ Создание списка букв
2/ Проверка существующих путей (занятых букв) перебором по списку
3/ Выбор свободной буквы
Второй и третий этапы почти всегда одинаковые:
Иногда вместо
А вот на первом этапе бывают варианты. Часто используют оператор Range для диапазона букв. Тут, кстати, два этапа конвейера.
Мне также встречалось перечисление символов ASCII, где 65 - А, 90 - Z. Но оно менее естественное.
🔥 А недавно мне попался, пожалуй, самый любопытный способ:
В этой команде:
🔹
🔹
🔹
Полная команда для получения первой свободной буквы диска в заданном диапазоне. Для краткости я заменил названия командлетов на их псевдонимы.
Этот метод должен быть самый быстрый, хотя разница всё равно измеряется долями секунды - в скрипте это не существенно. Тут скорее играет роль, что вы помните или быстрее вводите. На мой взгляд, вариант с диапазоном букв посложнее набирать.
////
Наконец, мне в комментариях к посту про mountvol подписчик Алексей доставлял, что все свободные буквы могут быть заняты разнообразными дисками. Хотя к тому моменту я уже добавил ссылку на статью блога с решением именно этой задачи - подключением диска в папку NTFS.
Впрочем, это не сработает именно для раздела EFI! У
В посте про mountvol я упомянул, что для подключения диска нужна свободная буква. Не всегда она известна заранее. В скриптах эта типовая задача решается конвейером в одну строку:
1/ Создание списка букв
2/ Проверка существующих путей (занятых букв) перебором по списку
3/ Выбор свободной буквы
Второй и третий этапы почти всегда одинаковые:
<буквы> | 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 логичнее освободить букву на время✌Telegram
Windows 11, 10, etc - Вадим Стеркин
⚙️ Как получить доступ к служебному разделу EFI, не изменяя его свойства
Это продолжение сериала про получение доступа к служебным разделам без изменения свойств. В предыдущих эпизодах главным героем был раздел восстановления (WindowsRE). К нему пробирались…
Это продолжение сериала про получение доступа к служебным разделам без изменения свойств. В предыдущих эпизодах главным героем был раздел восстановления (WindowsRE). К нему пробирались…
👍28❤7🔥3👌1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91❤11🔥9🤣5👌1
😎 Дождь начнётся через около 2.5 ч. Но это не точно!
Этот #автоперевод Виталий скинул в чат с вопросом: "погоду тоже что ли ИИшкой переводили?"
Я думаю, дело здесь не в нейронках, а в отсутствии контекста при переводе. В оригинале скорее всего
Дело осложняется ещё и тем, что фраза
Вырванные из контекста фразы сложно переводить хоть ИИ, хоть человеку. Я уже поднимал эту тему в посте о трудностях перевода ✌️
Этот #автоперевод Виталий скинул в чат с вопросом: "погоду тоже что ли ИИшкой переводили?"
Я думаю, дело здесь не в нейронках, а в отсутствии контекста при переводе. В оригинале скорее всего
in about. И эти слова вполне могут быть представлены отдельной строкой (string). Потому что предшествующие им слова варьируются (снег начнётся, гроза закончится).Дело осложняется ещё и тем, что фраза
in about несколько разговорная. Она абсолютно допустима во множестве сфер, но в юридических или технических документах вы её вряд ли увидите. Там бы написали in approximately, И тогда перевод "в лоб" был бы лучше: через примерно. Хотя правильнее поменять эти слова местами. Вырванные из контекста фразы сложно переводить хоть ИИ, хоть человеку. Я уже поднимал эту тему в посте о трудностях перевода ✌️
👍35🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍43❤6🔥6🤔3👌1🙈1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4❤2