🤷♂️ Владельцы локализованных Windows должны страдать
Особенно те, кто устанавливают систему с локализованного дистрибутива, нежели накатывает языковой пакет поверх оригинальной английской системы. Ну, может, и не должны, но регулярно страдают :)
Этот тезис получил очередное подтверждение на прошлой неделе. Множество пользователей VMWare Workstation из разных стран не смогли установить новую версию. Всех их объединяло наличие локализованной системы. An error occurred while applying security settings. Authenticated Users is not a valid user or group.
Методом тыка страдальцы выяснили: установка проходит на ура, если создать в системе две группы с латинскими названиями - Authenticated Users
и Users
. Причем членство в этих группах не требуется.
Видимо, установщик просто проверял наличие этих групп по именам. Но такие имена будут только при установке с английского дистрибутива! А вот дальнейшая установка языкового пакета на имена групп уже не повлияет 👌
///
По совпадению я недавно разбирал похожую ситуацию на работе. Нас мигрируют в огороженную среду с правами обычного пользователя, поэтому повылезало много проблем с установкой бизнес-приложений. Детали опущу, но вкратце - некоторые программы легко ставятся мимо Program Files и нормально работают дальше. Прочие же этому противятся, причем нетрадиционными способами 🌈
Нормальные разработчики уже лет дцать используют манифест установщика. И если там указано requireAdministrator
, он будет запускаться только с правами администратора. А тут некое приложение с бородатых времен поставляется в самораспаковывающемся CAB-архиве. Я извлек содержимое командой expand и увидел несколько батников.
Первый батник сходу проверял наличие прав администратора, а при успехе вызывал другие файлы, устанавливающие службу и прочие штуки. Для проверки он искал в выводе команды whoami /groups
строку Mandatory Label\High Mandatory Level
🤦♂️
Сравните самостоятельно результат выполнения команды в консоли с правами обычного пользователя и администратора. Искомая строка будет только во втором случае, потому что процесс имеет высокий уровень целостности. У классических приложений обычного пользователя он средний (Medium).
🪲 Казалось бы, цель достигнута. Однако вывод команды локализован! Поэтому в русской или итальянской Windows вы с любыми правами такого не увидите. И соответственно вообще не сможете установить приложение этим инсталлятором.
Я предложил инженеру QA занести на это дефект, но он махнул рукой. Видимо, клиентская база использует исключительно английские ОС. Так-то даже на уровне батников можно было решить вне зависимости от языка. Например, такой костыль #PowerShell вызовет из одного батника другой с правами админа.powershell -command "Start-Process -FilePath '%~dp0batch2.cmd' -Verb RunAs"
Глагол RunAs
недавно был в канале. Я также показывал управление локальными пользователями и группами вне зависимости от языка ОС.
////
Я исторически использую Windows на английском языке, поэтому подобные проблемы мне не грозят. Если для вас такое невыносимо, хотя бы ставьте английский дистрибутив и накатывайте родной языковой пакет. Иначе - не забывайте так страдать ✌️
▶️ Windows 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 секунд работу, на которую раньше уходило полчаса. Иногда достаточно просто показать человеку путь на конкретном примере.
📢 В обсуждении поделитесь топом своих открытий! Не удивлюсь, если о каких-то вы узнали из моих публикаций ;)
Пивной бар-хоппинг для айтишников
12 сентября в 20:00
Финтех-компания Точка приглашает в пять московских баров в День программиста! Выпьем пива, пройдём квест про технологии и обсудим холиварные темы. Пройди задания, собери пасхалки и получи подарок — пивной бокал с гравировкой.
Подробнее что будет:
● Бесплатное пиво — по стакану в каждом из пяти баров.
● Квест по пяти барам — грохнем прод, поугадываем звуки ностальгии и найдём ошибки джуна с помощью УФ-фонарика.
● Холивары — обсудим наболевшее с инженерами из Точки:
– Свобода выбора в технологиях: рай разработчика, ад тимлида.
– Техдолг — копить или платить.
– Алгоритмы и задания на собеседованиях — кринж или база.
– 7 столпов ML — нужны ли они все.
– Куда исчезли сисадмины.
Ждём разработчиков, продактов, аналитиков и всех, кто работает в IT. Приходите сами и приводите друзей!
Зарегистрироваться и узнать больше про активности.
⚙️ Как быстро восстановить разрешения на файл или папку
Недавно в чат поддержки пришел человек, который собственноручно сломал разрешения файла 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
. Надеюсь, в будущем мы это увидим ✌️
Читать полностью…