▶️ 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). Однако оба способа нередко "замусориваются" вариациями одной команды. Плюс можно выполнять фрагмент заданным сочетанием клавиш. Поэтому я уже вижу применение фрагментам кода!⚙️ Закончилась сага с проблемными обновлениями среды восстановления
Она началась в январе с массовой ошибки 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 🎶
🛑 Способы завершения зависших игр и приложений
Опытом в стиле девиза блога делятся участники чата @winsiders.
В актуальной версии Windows 11 есть кнопке завершения программы прямо в ее меню на панели задач. Кнопка включается в параметрах разработчика. Обнаружив ее, dartraiden порадовался:
До диспетчера [задач] не всегда доберешься, если программа особо &!#%^. Бывает, таскбар видно, а вот переключиться на окно диспетчера не получается.
Мне с этим рабочие столы помогают. Бывает, особенно если игра какая зависнет, что ни свернуть ни закрыть нормально, тогда Win+Ctrl+
➡️ и там уже нормально вызывается диспетчер и всё остальное, откуда можно ухуренить зависшее на первом столе.
Win+Ctrl+D
- это создание и переход в одном флаконе. Управление столами - Win+Tab
.Можно просто настроить появление диспетчера поверх всех окон, тогда [по Ctrl+Shift+Esc
] даже зависшая игра с эксклюзивным доступом к фулскрину не помеха.
⚙️ Как переименовать папку профиля
Недавно в чате обсуждали эту исторически болезненную тему. Приступы боли вероятнее при установке 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, но всегда ставлю ОС с локальным аккаунтом, чтобы контролировать имя папки ✌️
🖥 Про обманчивость внешнего вида интерфейсов
На фоне фиаско 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!
////
Этот рассказ изначально был моим комментарием к набросу в чате. И сразу несколько человек сказали, что хотели бы видеть такие байки в этом канале. Ваши реакции помогут мне определиться, стоит ли продолжать. Впрочем, я и раньше изредка подкидывал нечто подобное ✌️
😎 Глагол ухуренить
уже прочно вошел в лексикон участников чата @winsiders!
На картинке #автоперевод статьи про среду восстановления в документации Microsoft.
📷 Админские бубны
В конце двухтысячных российский офис Майкрософт начал активно взаимодействовать с сообществом. Это было интересное время - крупные конференции для разработчиков и ИТ-специалистов, встречи юзергрупп, конкурсы для потребителей.
Соответственно, появлялся различный мерч с символикой компании, который раздавали на мероприятиях или в качестве призов за победу в конкурсах либо вклад в сообщество. Кому-то пришла идея сделать бубны, и они отлично зашли 🔥 Думаю, бубен был самым желанным призом!
Например, в 2009 году на OSZone проходил конкурс статей про Windows 7, где бубен слева был призом за третье место наряду с пивным бокалом с символикой TechNet (да, их тоже есть у меня:). Этих небольших бубнов было относительно много.
А вот бубен справа, наверное, из самого первого и ограниченного (пробного?) тиража. Он большой, со слоганом Microsoft тех времен и еще без отсылки к российскому ресурсу TechNet.
И да, он работает! 😎
🎧 Android: почему в некоторых приложениях могут не работать наушники Bluetooth
Однажды мои беспроводные наушники перестали определяться в Teams. Это приложение я использую только в рабочем профиле. Проблема была только с беспроводными наушниками и только в этом приложении. И я даже не удивился, потому что в MIUI или даже в моей версии прошивки использование рабочего профиля напоминает игру "Сапер" 💣
Так, в шторке отсутствует кнопка включения и отключения рабочих приложений. Как я узнал недавно и случайно, для ее появления нужно включить второе пространство (потом можно отключить). Но куда хуже, что приложения Office 365 падают, стоит выделить текст в поле ввода. Разумеется весь набранный текст теряется 😡 И я вам скажу, что очень трудно отучить себя от привычки выделять текст!
Поэтому столкнувшись с проблемой наушников, я лишь пожал плечами и даже не стал разбираться в этом. Просто перешел на проводные для совещаний, тем более в них качество звука даже получше. Но недавно в чате мы обсуждали наушники Bluetooth, и Хартля вскользь упомянула, что у неё была такая же проблема с Zoom. И оказалось, что корень наших проблем одинаковый!
👉 Для работы беспроводной гарнитуры в Teams и Zoom приложениям нужно разрешение "Устройства поблизости" (Nearby devices). В картинках https://dzen.ru/a/ZdB_TNHxawyWtfWZ. Однако Android отбирает разрешения у редко используемых приложений. Соответственно, теряется это разрешение!
Поэтому, если долго не пользоваться приложением, наушники просто молча перестают работать 🤦♂️ Вообще, я пользовался Teams регулярно. Но, как недавно выяснилось, обновление MIUI (до HyperOS) тоже сбросило разшения! Вот и еще одна скрытая причина.
Отключить удаление разрешений можно только у каждого приложения индивидуально, см. на первой картинке по той же ссылке ↑ Причем эти приложения сами разрешение не запрашивают, в отличие от доступа к камере, например. Хотя API позволяет это делать.
Примечательно, что когда я для эксперимента сам отобрал у Teams разрешение Nearby devices, наушники не перестали работать в нем 🤔 Возможно, это разрешение требуется лишь однократно, чтобы обнаружить и запомнить устройство Bluetooth.
Наконец, судя по всему, проблеме подвержены только приложения, где беспроводные наушники используются в качестве гарнитуры - Teams, Zoom. В любом случае нестыковка абсолютно коллекционная! 🙄
⚙️ Автоматизация этапа установки OOBE
Сегодня одним выстрелом убиваем двух зайцев:
1. Ускоряем и упрощаем настройку новых компьютеров
2. На любых ПК обходим требование ученой записи Microsoft
Прочитав об экранах OOBE в Windows 11 24H2, товарищ Shirixae
принес в личку свои трудности с процессом установки 🤯
По работе ему регулярно приезжают новые ноутбуки, которые нужно настраивать и отдавать пользователям. Учетные записи Microsoft (MSA) им не нужны, поэтому требуется создавать локальный аккаунт. Первый шаг - всегда BypassNRO и перезагрузка. Дальше все экраны этапа OOBE, пусть у локального аккаунта их и поменьше чем у MSA
При этом чистая установка исключена по условиям задачи - ноутбуки должны быть в оригинальной комплектации, включая ОС. Продвинутых средств развертывания типа автопилота нет. Получается скучная и не интеллектуальная работа.
👉 Решение: запуск sysprep
с указанием на файл ответов и перезагрузкой в OOBE!
Утилита sysprep
входит в состав Windows и служит для подготовки образа к развертыванию. Она фигурировала в статье про создание настроенного образа системы. Там выполнялась операция обобщения образа, но здесь она не нужна.
📃 Задача решается в два шага:
1. Скопируйте в корень флешки файл ответов с именем UnattendOOBE.xml
, например.
2. На первом же экране OOBE (выбор региона) нажмите Shift+F10
, щелкните окно командной строки и введите команду:"C:\Windows\System32\Sysprep\sysprep.exe" /reboot /oobe /unattend:D:\UnattendOOBE.xml
Здесь C
- буква тома с Windows, D
- буква флешки. Во время установки определиться с буквами дисков можно с помощью diskpart
- lis vol
или блокнота.
Система перезагрузится и выполнит установку уже с учетом ваших параметров в файле ответов ✅
Чтобы не вводить длинную команду вручную каждый раз, рядом с файлом ответов создайте oobe.cmd
с таким содержимым:powershell -command "(Get-Volume).DriveLetter | Foreach-Object {if (Test-Path "${PSItem}:\UnattendOOBE.xml") {&"$pwd\Sysprep\sysprep.exe /reboot /oobe /unattend:$(${PSItem}):\UnattendOOBE.xml"}}"
Тогда достаточно выполнить в консоли: D:\oobe.cmd
.
Строго говоря, для этой задачи из моего файла ответов нужен только проход oobeSystem
. Но удалять раздел windowsPE
необязательно, он уже ни на что не повлияет.
👤 Если раскомментировать в моем файле ответов пароль учетной записи Admin
и однократный автологон, этап OOBE автоматизируется полностью. Именно так можно создавать локальную учетную запись, обходя требование аккаунта Microsoft. Причем в связи с новыми препонами в 24H2 ценность файла ответов лишь возросла.
Просто и эффективно! ✌️
👉 Сегодня у меня для вас #рекомендация - мероприятие Войти_в_IT от команды CyberYozh Academy.
На онлайн-конференции, которая пройдет с 20 по 28 июня, выступят руководители направлений VK, СберТех, HH, RuTube и других компаний.
🔥 Главная фишка в том, что вы сможете оставить заявку на стажировку или работу в этих компаниях!
Участие полностью бесплатное, а расписание можно посмотреть здесь.
📢 Об отзывах к документации Microsoft
Эпичную ошибку в статье базы знаний Microsoft исправили спустя пару недель после или даже вследствие моего поста. Читатель, рассказавший мне об ошибке, ранее сообщил о ней в Microsoft через форму обратной связи под статьей. Свой пост я опубликовал лишь через месяц после нашего разговора, и за это время никаких изменений в статье не было.
👉 Я в принципе не верю в эффективность форм отзывов под статьями - у них нет механизма отслеживания и публичной ответственности.
📃 Далее речь пойдет о статьях документации https://learn.microsoft.com/
TL;DR
Фидбэк в репозиторий команды документации больше не принимается. Вместо него новая форма обратной связи.
Long version
В документации исторически была упрощенная форма для отзывов. Но с покупкой GitHub компания решила переосмыслить подход к обратной связи. В некоторых разделах документации для продуктов с открытым исходным кодом появилась возможность открыть тикет по содержимому статьи. На сегодня пример можно посмотреть внизу этой страницы.
Такой тикет создается в репозитории продуктовой группы (ПГ). В репо команды документации можно было открывать тикеты на статьи, у которых не было прямой связи с ПГ. О подноготной этого процесса я узнал случайно.
Вадимс Поданс весной 2020 года занёс тикет, который спустя 9 месяцев бездействия закрыли, предложив создать новый, если проблема еще актуальна. Тезка отложил кирпич 🧱 мне в личке, а я - в Твиттере, пнув команду документации. И в итоге документ даже исправили.
🙉 Исходя из ответов доктим в Твиттере, порядок работы у них был такой:
1/ На каждую проблему в своем репо GitHub они создавали тикет во внутренней системе и пытались достучаться до ПГ.
2/ Если ПГ было наплевать, тикет висел мертвым грузом не только внутри, но и снаружи. А это плохой пиар!
3/ Поэтому таким нехитрым способом решили сократить количество открытых тикетов в GitHub.
Но проблему появления новых тикетов это не устраняло. В итоге придумали кардинальное решение. Отказались от тикетов в репо доктим, а взамен сделали расширенную форму обратной связи 👏
О планах сообщили ограниченному кругу лиц еще в декабре 2022 года. Сейчас под некоторыми статьями висит объявление, что в 2024 году постепенно заменят виджет GitHub на новую форму. Там в зависимости от выбора 👍Yes или👎No меняется список категорий (пример внизу этой страницы). Для локализованной документации есть пункт "Качество перевода".
Замечу, что вверху страниц есть кнопка 👍Feedback, которая открывает упрощенную форму. Однако она переобувается в расширенную форму, если хотя бы раз открыть таковую внизу этой же страницы 🤡
ℹ️ Об изменении подробнее рассказывают специальная страница. Для нескольких ПГ (втч .NET, PowerShell), желающих получать отзывы на документацию в свой репозиторий, все остается по-прежнему. Но у прочих разделов документации новая форма будет основным способом отправки фидбэка.
В некоторых разделах сохраняется возможность быстрого редактирования в браузере и отправки "запроса на вытягивание" ;) Но так можно исправить только опечатки либо явные ошибки, когда точно знаешь истину.
В общем, хорошая и актуальная документация - это очень сложно✌️
⏯ Как открыть конкретный файл в приложении, отличном от приложения по умолчанию
В чате Елена задала любопытный и на редкость четко сформулированный вопрос:
Необходимо всегда открывать конкретный файл в приложении, отличном от приложения по умолчанию для данного типа файлов. Все, что нашла - изменить приложение по умолчанию для данного типа файлов. Мне же нужно, чтобы только один единственный файл из всех файлов одного типа открывался в другом приложении.
И пояснила:
Например: все видеофайлы открываются в приложении VLC Media Player. Один файл нужно открывать всегда в приложении КИНО и ТВ. Все остальные в приложении VLC.
Первый ответ был: "это невозможно". Второй: "можно через батник". Это уже теплее, но есть нюанс © Даже три!
1. Пользователь батниками не владеет, т.е. писать его придется вам.
2. "Кино и ТВ" - это UWP-приложение. Их вы вряд ли запустите из командной строки без гугла.
3. Конкретно это приложение не принимает путь к файлу в качестве параметра командной строки ❌
Однако задача легко решается в соответствии с девизом блога!
1️⃣ Первым делом я посоветовал Елене одну из любимых фич Windows: перетаскивание - файла на плеер. Оказалась, она сама дошла до этого, но все-таки хотела бы назначить конкретное приложение.
2️⃣ Тогда я предложил другой вариант. Надо изменить расширение файла на такое, которое не связано с VLC. Или ассоциировано с ним, но у вас не в ходу. Тут главная хитрость в том, чтобы выбирать тип файла, для которого уже зарегистрировано приложение Кино и ТВ. Например: 3gp
, asf
, m2t
. А дальше - "Открыть с помощью", и в списке будет нужный плеер.
Если же указать случайное расширение abc
, Windows предложит↓ на выбор блокнот и... классический Windows Media Player! Идея в том что в непонятной ситуации первый справится с текстовыми файлами, а второй - с медиа. Может, когда-нибудь заменят его тут на современный WMP, бывший Zune Music 😎
Оставшиеся два варианта в диалоге "Открыть с помощью" бесполезны. Поиск в магазине просто открывает магазин. Обзор на компьютере рассчитан на классические исполняемые файлы. У Кино и ТВ есть exe
, но для него предусмотрена работа только в контейнере.
⚙️ Впрочем, вариант с abc
заработает, если клонировать HKCR\.3gp
в HKCR\.abc
. Это зарегистрирует тип файла в реестре и свяжет его с теми же приложениями. Наряду с 3gp
сгодится любое расширение, с которым уже связано Кино и ТВ.
Строго говоря, я предложил обходной путь нежели решение в лоб. Однако Елену результат очень обрадовал. Ведь она сама все легко сделала без плясок с батниками и реестром 🎉 Однако меня мучило любопытство, зачем это нужно.
Интерфейсы у плееров разные. Под кино и ТВ фитнесом занимаюсь, удобно. А VLC для учебы.
И тут нет ничего смешного. Так совпало, что в этот же день у меня из системы выпилили старый почтовый клиент UWP, а вместо него установился новый Outlook for Windows. Не то чтобы старый клиент был хорош, но новый совсем никуда не годен 🤦♂️
Взамен я настроил дома Outlook из состава Microsoft Office. Впервые в жизни (!) и скрепя сердце. Потому что он... для работы! Впрочем, для нескольких писем в неделю сойдет ✌️
💡 О каких фишках Windows и ПО Microsoft вы жалеете, что не узнали пораньше?
Я достаточно давно ковыряюсь в Windows, слежу за темой, поэтому меня трудно удивить. Бывает, нахожу новые фичи, о которых успел забыть! Иногда даже обнаруживаю их упоминания в своем блоге :)
Поэтому свой топ-3 я составил не без труда.
🥇 В MS Office двойной щелчок по значку "Формат по образцу" позволяет применять его многократно. Да, я достаточно долго тыкал в кнопку каждый раз 🤷♂️
🥈 В диалоговом окне "Открыть" в поле "Имя файла" можно вставлять скопированный файл по Ctrl+V
, и туда вставится его путь! Зачастую в файловом менеджере папка с файлом уже открыта или до него проще добраться, чем из диалогового окна. Я регулярно заливаю файлы в интернет таким способом, видео ⬇️ С файлами из интернета тоже работает!
🥉 Ctrl+Z
может работать даже там, где не указано явно. Например, в проводнике возвращает на место удаленный файл. Надо пробовать!
А это топ-3 реакций коллег по работе на мои советы.
1️⃣ История буфера обмена в Windows - Win+V
. Да, он в подметки не годится продвинутыми менеджерам вроде Charu или Ditto. Но даже это в разы лучше чем ничего.
2️⃣ Вертикальные вкладки браузера - например, в Edge. Когда у вас несколько вложенных сессий RDP, их панели вверху экрана либо постоянно перекрывают вкладки браузера, либо выезжают в ненужный момент. Перемещение вкладок вбок отлично решает эту проблему.
3️⃣ Скрипты #PowerShell. Даже простой однострочник может творить чудеса. Дзен наступает, когда скрипт выполняет за 10 секунд работу, на которую раньше уходило полчаса. Иногда достаточно просто показать человеку путь на конкретном примере.
📢 В обсуждении поделитесь топом своих открытий! Не удивлюсь, если о каких-то вы узнали из моих публикаций ;)
🏃♂️ Запуск программ от имени администратора из диалога Run (Выполнить)
Вопрос из форума. Срыва покровов тут нет, но всегда найдутся те, кто не в курсе новинок 6- и 15-летней давности :)
👉 Ctrl + Shift + Enter
!
Разумеется, запрос UAC появится. Это #классика канала, см. здесь контекст и дополнительное ускорение. Жаль, что в адресную строку проводника это не прикрутили. Ведь там текущий путь передается в консоль.
ТС однако ответ не устроил, ибо не работает в 1607 🤦♂️ Что ж, можно и поглубже копнуть. Есть классика времен в Windows 7 - запуск из планировщика, причем без запроса UAC! Поскольку ссылка не у всех откроется где надо, скопирую суть сюда.
🕑 В планировщике создаётся задание:schtasks /Create /RL Highest /TN Run /SC ONCE /ST 14:00 /TR "cmd.exe /c start %WINDIR%\SysWOW64\rundll32.exe shell32.dll,#61"
И запускается:schtasks /run /tn Run
Для этой команды можно сделать ярлык, закрепить на панели задач и/или повесить на него сочетание клавиш.
▶️ Вне диалога "Выполнить" для отдельных приложений запуск с полными правами можно форсировать так:
🔹 В свойствах EXE на вкладке "Совместимость" или в свойствах ярлыка - "Дополнительно" поставить флажок "Запускать от имени администратора".
🔹 Задействовать в #PowerShell командлет Start-Process
и его глагол RunAs
: powershell -ex bypass -command Start-Process notepad -Verb RunAs
Разумеется, для этой цели есть и другие встроенные способы (да хоть VBS с тем же глаголом), а также куча сторонних утилит.
#Классика блога в тему:
🔸 Как выполнять задачи с полными правами обычным пользователем без ввода пароля администратора
🔸 Как выполнять команды и скрипты от имени системы средствами Windows
🔸 Как выполнять скрипты с правами TrustedInstaller без сторонних утилит
⚙️ Как быстро восстановить разрешения на файл или папку
Недавно в чат поддержки пришел человек, который собственноручно сломал разрешения файла hosts
. Он творил полную дичь - пытался сделать этот файл только для чтения, чтобы не слетел некий кряк 🤦♂️
Зато у меня появился повод показать один из моих любимых примеров мощи конвейеров в #PowerShell. От имени администратора:
cd C:\Windows\System32\drivers\etc
Get-Acl networks | Set-Acl hosts
networks
и применяем его к поврежденному hosts
. Это всё! Восстанавливаются разрешения на объект файловой системы и его владелец.-Path
для пути к файлу я опустил. У этих командлетов он первый позиционный, т.е. подразумевается, если не указан. Такие вещи описаны в справке.etc
. Потому что не получалось сохранить измененный файл hosts
🤦♂️🤦♂️ В его инструкциях же не уточнялось, что текстовый редактор надо запускать от админа...⬇️ 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
-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
search
:winget search nanazip
search
в помощь.import
и export
призваны ускорить создание привычной среды на чистой системе. И они неплохо с этим справляются! Да, не все программы есть в репозиториях, а перенос настроек приложений - отдельная большая тема. Но грех жаловаться на возможность одной командой установить несколько десятков любимых программ ✌️
Читать полностью…
Сегодня у меня для вас #рекомендация — два полезных канала для системных администраторов:
🔐 infosec — литература для системных администраторов и ИБ специалистов любого уровня и направления. Читайте, развивайтесь, практикуйте.
👨💻 Вакансии в ИБ — актуальные предложения от самых крупных работодателей и лидеров рынка в сфере информационной безопасности.
🔐 В 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 🤝
Стоит ли переезжать в другую страну ради карьеры? И если да, то с какими сложностями придётся столкнуться?
Решили задать эти вопросы тем, кто пережил опыт релокации.
Присоединяйтесь к видеоподкасту — разберёмся, какие факторы должны помочь принять верное решение, и дадим советы по поиску работы за границей.
→ Бесплатно, 1 августа в 19:00 мск
Вы узнаете:
— в чём плюсы и минусы релокации;
— о чём стоит позаботиться, прежде чем собирать чемодан;
— сложно ли искать работу за границей и как это делать правильно;
— как оценить перспективы для развития карьеры в разных странах;
— на чём сфокусироваться при переезде в новую страну.
Спикеры:
◾️ Полина Димова — старший рекрутер в Яндексе
◾️ Викентий Экгарт — тимлид фронтенд-разработки в стартапе
→ Зарегистрироваться на онлайн-событие
🤦♂️ О фиаско 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, едва получив новый файл.
Но в антивирусной защите счет действительно идет на минуты и секунды. Поэтому с обывательскими представлениями о тестировании вряд ли стоит сюда подходить. Да и не все можно решить тестами. В идеале у программного обеспечения должны быть архитектурно какие-то предохранители, чтобы такая ситуация не возникала ✌️
⚙️ О подходах к диагностике - простых и сложных
Однажды я обнаружил, что у меня не работает магазин Windows: вместо содержимого - ошибки. Я очень редко открываю его, поэтому не знал, в какой момент возникла проблема. Но я ничего не менял у себя очень давно. Вместо диагностики я просто установил нужное приложение с помощью winget и пошел дальше.
Спустя какое-то время у меня возник ворох проблем, вызванных сбоем файловой системы. Решил их я следуя своему же любимому совету - переустановил систему поверх 🔃 Однако Магазин это не починило, что намекало на несистемную природу неполадок.
🌐 С сетью у меня было все ок. Я подключился к двум разным VPN, но ничего не изменилось. Oткрыл консоль и сделал сброс магазина, а затем полностью переустановил его. Не помогло. Тогда я зашёл в чистый аккаунт, и в нем такой проблемы не было. Значит, что-то с моим профилем 💯
Чтобы исключить влияние внешних факторов, я убрал все из автозагрузки и наконец перезагрузился. Магазин заработал! И только тут я связал сообщение о проблемах с сетью с установленным у меня клиентом прокси-сервера (SOCKS5). Разумеется, он стоял в автозапуске. Действительно, без прокси магазин заработал! 🎉
👉 7 лет назад я опубликовал тут пост "Простой прием диагностики Windows, о котором не надо забывать". Речь шла о загрузке в безопасный режим. Как и в тот раз, об этом приеме я сейчас успешно забыл :) Но в итоге фактически пришел к нему, потому что в безопасном режиме автозагрузка тоже не работает. Также, ее отключение - это часть режима "чистой загрузки" в терминологии Microsoft, см. KB929135.
////
ℹ️ На практике множество проблем в Windows легко решается простой двухходовкой:
1. Безопасный режим.
2. Если в нем воспроизводится - переустановка поверх, иначе - поиск проблемной программы или службы.
⏹ Но этому часто мешают разные факторы:
- нежелание перезагружаться
- знание, что "ничего не делал" смещает фокус диагностики - я чинил магазин, хотя проблема решалась в прокси
- переоценка своих навыков - я знаю #PowerShell и еще много страшных слов :)
- или наоборот недооценка знаний, которая сходу ведет в гуглояндекс, где на бестолковых и "сеошных" советах можно потерять кучу времени
В результате вместо простой диагностики получается квест из сложной 🤷♂️
В чате Артём Федотов заметил, что переустановка поверх не повышает уровень знаний, потому что остается невыясненной причинa проблемы. Это правда.
Однако не всегда нужно и целесообразно ее выяснять. Да и не факт, что понимание причины как-то повысит уровень знаний. Ок, узнал я, что проблема в прокси-сервере. Так у меня и раньше с ним внезапно отваливались сервисы Microsoft из-за изменений на их серверной стороне - то не работала Кортана, то блокировался русский голосовой ввод. Решение - тема для отдельного разговора.
В общем, я не имею ничего против сложных методов диагностики. Главное - не забывать о простых ✌️
⚡️ Кто хотел изучить Linux?
Забирайте скорей курс для начинающих всего за 1️⃣0️⃣ ₽.
➡️ Забрать курс: https://vk.cc/cyk7jx
Отус открыл для вас доступ к онлайн-курс 🖥«Linux для начинающих» почти бесплатно!
Обычно курс стоит от 7000₽
😯 Не упустите свою возможность!
Курс рассчитан для программистов и администраторов, которые хотят освоить ОС Linux с нуля!
Что из себя представляет курс?
— 3 модуля с видеолекциями
— Комплексные знания по основам Linux
— Можно учиться в любом месте, где есть доступ в интернет
— Закрепление знаний с помощью тестов
Наш спикер – Андрей Буранов, эксперт по UNIX-вселенной в компании Mail Group.
🎁 В подарок с курсом, бонусом для более эффективной учебы дарим "10 базовых команд Linux"!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
⚙️ Новое в блоге: Автоустановка приложений с winget по окончании установки Windows
WinGet — замечательное средство автоматической установки приложений. Не надо тратить время на скачивание актуальных инсталляторов и забивать себе голову тонкостями ключей тихой установки. Просто запускаешь скрипт с подборкой своих программ и готово! 🚀
Но есть нюанс © Установщик пакетов не входит в поставку Windows! Это не вполне очевидно, потому что winget «сразу» работает в начисто установленной ОС. Однако он не включен в WIM-образ, а скачивается уже по окончании установки системы с помощью магазина Windows. И временной интервал загрузки варьируется.
Поэтому нельзя просто взять и прицепить скрипт установки приложений к установке Windows 🤷♂️
Сегодня я расскажу, как автоматизировать процесс загрузки и регистрации winget, когда его нет в Windows.
➡️ Читайте в блоге: https://www.outsidethebox.ms/22436/
✔️ Как сверить контрольную сумму дистрибутива Windows с первоисточником
Технически контрольная сумма нужна, чтобы убедиться в целостности скачанного ISO. Но сначала его нужно найти. Для чего как раз идеально подходит контрольная сумма 😎
Контрольные суммы ISO есть в каждой торрент-раздаче - это для доверчивых. Более придирчивые смотрят в https://msdn.rg-adguard.net/. В идеале же надо сверять с первоисточником - Microsoft.
Когда-то контрольные суммы были в свободном доступе на сайте MSDN. Но их спрятали за подпиской в 2017 году одновременно с переездом на домен VisualStudio. Однако в какой-то момент публичный доступ вернули. Требуется лишь вход с учетной записью Microsoft. Спасибо ԤИОНЕР
за наводку!
⏺ Процесс показан на видео. Пример ссылки:
https://my.visualstudio.com/Downloads?q=Windows%2011
Выбрать утилиту для сверки вам поможет #классика блога: Как проверить контрольную сумму дистрибутива Windows ✌️
📋 Advanced Paste - вставка текста без форматирования
Сегодня в рубрике "Знаете ли вы" утилита Advanced Paste из комплекта PowerToys. Я уже упоминал о ней в канале 3.5 года назад, когда выпуск утилиты еще планировался. В посте был костыль на PowerShell и прочие способы вставки без форматирования. Сейчас у меня двойной повод вернуться к этой теме.
С одной стороны, утилита недавно обзавелась функциями вставки в формате JSON и Markdown. Я пишу посты канала в Markdown, поэтому фича мне к двору! Также внедрили кастомную обработку буфера обмена с ИИ, но нужна подписка OpenAI.
С другой стороны, на работе я мигрирую в сильно огороженную среду. И я не смогу туда протащить сторонний менеджер буфера обмена (Ditto), с помощью которого помимо прочего вставлял текст без форматирования. Однако в список разрешенного программного обеспечения входит PowerToys, и это просто праздник в тех спартанских условиях 🎉
В утилите дефолтное сочетание клавиш для вставки без форматирования Win+Ctrl+Alt+V
, но можно переназначить как угодно.
👍 - о, что-то новенькое!
👌- я все это знаю
💡Сисадмин без логирования — невостребованный сисадмин.
Именно через логи можно отслеживать работу приложений, находить и исправлять ошибки, анализировать производительность и многое другое.
Хотите построить успешную карьеру? Разберитесь в этом необходимом инструменте на открытом практическом уроке от OTUS, где мы рассмотрим:
- какие типы логов существуют и какие данные они содержат;
- как правильно организовывать логирование в приложении, чтобы облегчить отладку и анализ;
- передовые технологии и инструменты для эффективного управления и анализа;
- практические примеры.
Спикер — опытный системный администратор и инженер, сертифицированный специалист ITIL.
🎁 Встречаемся 10 июня в 20:00 мск в рамках курса «Администратор Windows». Все участники вебинара получат специальную цену на обучение!
👉 Регистрируйтесь прямо сейчас
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
☀️ С первым днем лета, дорогие друзья!
👀 Коллеги из Windows Central уже успели протестировать функцию Recall и сделали первичный обзор. Вышло довольно интересно.
🙂 Мы же любезно перевели данный материал и спешим поделиться им с вами — налетаем, изучаем и дискутируем.
🧡 Win1Leaks | #windows11
▶️ Модуль PowerShell для winget
Сегодня в рубрике "Возвращаясь к напечатанному" модуль #PowerShell для менеджера пакетов winget. Разбирая нюансы автоматического обновления приложений осенью 2022 года, я сетовал на неудобство командной строки. Потому что парсинг текста заведомо проигрывает управлению объектами в PowerShell.
Полгода спустя вышла альфа-версия официального модуля, и он продолжает развиваться. К сожалению, это не полноценный модуль, а обертка над утилитой winget 🤷♂️ Командлетов пока маловато, и до полного набора возможностей еще далеко. Но уж чем богаты...
📄 Основы
Рекомендуется использовать PowerShell Core нежели входящий в ОС PowerShell 5.1.
# установить модуль winget
Install-Module -Name Microsoft.WinGet.Client
# найти пакет в репозиториях по частичному имени
Find-WinGetPackage -Name 'Bitvise SSH'
*
. Наоборот с ним ничего не найдется. Одинарные кавычки необходимы при наличии пробелов в имени.# найти пакет только в репо магазина
Find-WinGetPackage -Name treesize -Source msstore
# обновить все пакеты IrfanView (приложения, плагины)
Get-WinGetPackage -Name irfanview | Update-WinGetPackage
# список всех установленных пакетов
$p = Get-WinGetPackage
# список пакетов с доступными обновлениями
$p | where IsUpdateAvailable
# список пакетов с доступными обновлениями из магазина
$p | where IsUpdateAvailable | where Source -eq msstore
# список пакетов в виде интерактивной таблицы
$p | Out-GridView
# список пакетов в CSV
$p | ConvertTo-CSV | Out-File -Path C:\temp\winget.csv
# обновить все пакеты при наличии новой версии, кроме указанных
$p | where IsUpdateAvailable | where Name -notmatch 'calibre|zoom'
| Update-WinGetPackage
pin
, которую я недавно разбирал в канале.# Обновить все, кроме терминала, если он запущен
$u = Get-WinGetPackage | where IsUpdateAvailable
if (Get-Process -ProcessName WindowsTerminal) {
$u | where id -notmatch 'WindowsTerminal' |
ForEach-Object {Update-WinGetPackage -id $_.Id}
}
else {
$u | ForEach-Object {Update-WinGetPackage -id $_.Id}
}
show
. Надеюсь, в будущем мы это увидим ✌️
Читать полностью…
🤷♂️ О трудностях перевода
В чате как-то всплыл вопрос об откате к предыдущей версии, и мы обратили внимание на странный заголовок сообщения на скриншоте: "Не заблокируйте". Звучит как одиннадцатая заповедь :) В оригинале "Don't get locked out".
К сожалению, за долгие годы у продуктовых групп Microsoft, по крайней мере Windows, не сложилось ясного понимания, что эти сообщения надо писать как можно проще. Потому что они переводятся на десятки языков!
В последние годы ситуация лишь усугубилась тем, что в мировой разработке ПО взят курс на менее формальный и как бы более человеческий стиль обращения к пользователям. Вот эти все "Ой, что-то пошло не так" 🙄
Однако цветастые выражения лишь затрудняют перевод, который выполняется с помощью инструментов, автоматизирующих процесс в той или иной степени. Допустим, здесь не #автоперевод. Но и человеку для таких "креативов" нелегко придумать ёмкий эквивалент. В чате предложили хороший вариант: "Не потеряйте доступ к ПК". Но есть нюанс ©
🤔 Локализатор зачастую не видит интерфейс и даже не всегда знает полный контекст. Нередко от продуктовой группы приходят только текстовые строки с кратким пояснением, где они отображаются (процедура отката). В данном случае переводчик мог бы и догадаться, если он был человеком и имел все строки из этого окна нежели только его заголовок.
Наконец, сообщение нередко еще и надо вписать в рамки по количеству символов (что переводчику не всегда очевидно, кстати). В этом примере места хватает. Но все равно здесь английский фразовый глагол, а они зачастую куда компактнее русского перевода.
Так что, увидев следующий кривой перевод, подумайте, стоит ли обвинять в нем локализаторов. Возможно, собака зарыта поглубже - в оригинале ✌️