Авторский канал. Windows, безопасность, мобильный мир: • тайное знание • профессиональный ликбез • гадание по логам • срыв покровов • доставка пруфов Чат: @winsiders Блог: outsidethebox.ms Oбратная связь: @vsterkin Поддержать ₽: boosty.to/sterkin
🔍 Расследование: кто перезагрузил Windows
В чате участник A S.
сообщил, что в Windows 11 политика NoAutoRebootWithLoggedOnUsers
не предотвращает перезагрузку после установки обновлений. Статью про это я написал в 2018 году и с тех пор не перепроверял. Причем 4 года спустя эту политику наряду с другими объявили устаревшей и не поддерживаемой в Windows 11. И пообещали в будущем выпилить.
У ТС все подробности свелись к "отхожу на несколько часов". Обычно, так быстро сразу после установки обновлений перезагрузка не происходит. Стандартно - в 3 часа ночи, но дальше может в любой момент вне активных часов 🕒
Проще проверить всё самому, и я зарядил виртуалку. За несколько часов ничего не произошло, как и с утра. Однако ночью я сплю, и моя основная ОС тоже, т.е. ВМ в ней неактивны. Поэтому наутро я изменил часовой пояс ВМ и продолжил тест.
👉 Перезагрузка произошла! Но чтобы обвинить в ней обновление Windows, надо ответить на второй по важности вопрос всех времен и народов: какие ваши доказательства?
Они собраны в журнале событий, поэтому пост публикуется в рубрике "Гадание по логам" с помощью #PowerShell.
1️⃣ Смотрим время загрузки ОС - сразу после 3 часов ночи. Уже горячо!
(Get-CimInstance Win32_OperatingSystem).LastBootUpTime
Sunday, February 2, 2025 3:01:46 AM
1074
в журнале Система:Get-WinEvent -FilterHashtable @{LogName='System'; Id=1074} |
Select-Object TimeCreated, Message | Format-List
TimeCreated : 2/2/2025 3:00:03 AM
Message :
The process C:\WINDOWS\uus\AMD64\MoUsoCoreWorker.exe (DESKTOP-GQKOJ6B)
has initiated the restart of computer DESKTOP-GQKOJ6B on behalf of
user NT AUTHORITY\SYSTEM for the following reason:
Operating System: Service pack (Planned)
Reason Code: 0x80020010
Shutdown Type: restart.
MoUsoCoreWorker
. Время совпадает!Get-ScheduledTask | where TaskName -match 'Uso' | Get-ScheduledTaskInfo
LastRunTime : 2/2/2025 3:00:05 AM
LastTaskResult : 2147942402
NextRunTime : 2/3/2025 10:48:35 PM
NumberOfMissedRuns : 0
TaskName : USO_UxBroker
TaskPath : \Microsoft\Windows\UpdateOrchestrator\
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624,4634,4647} |
where message -match '1001' | Select-Object Id, TimeCreated, Message -First 15 |
ft -AutoSize
Id TimeCreated Message
-- ----------- -------
4634 2/2/2025 3:20:10 AM An account was logged off....
4624 2/2/2025 3:03:05 AM An account was successfully logged on....
4647 2/2/2025 3:00:05 AM User initiated logoff:...
4624 2/1/2025 11:33:32 PM An account was successfully logged on....
NoAutoRebootWithLoggedOnUsers
продолжает выполнять свою функцию. А в Windows 11 уже нет поддерживаемого способа предотвратить форсированный перезапуск после установки обновлений. Единственный обходной путь - ручное планирование перезагрузки, что позволяет отложить ее максимум на неделю ✌️
Читать полностью…
Бесплатно мигрируй в облако Serverspace 🔄
Мы поможем вам бесплатно мигрировать от другого провайдера и предложим скидку -30% на первый месяц!
VPS, GPU, S3, Удаленный рабочий стол и многое другое - уже в панели управления Serverspace!
▪️ Удобный калькулятор для расчёта стоимости
▪️ 9 дата-центров по миру
▪️ Безлимитный трафик
▪️ Поддержка 24/7
Сделаем переход в Serverspace комфортным:
1️⃣ Рассчитаем затраты и подберем оптимальную конфигурацию под ваш проект
2️⃣ Поможем перенести вашу инфраструктуру в облако бесплатно
3️⃣ Подарим -30% на месяц с промокодом VPS30
Миграция ещё никогда не была такой простой и выгодной!
📲 Начать переход
Erid
Математика — фундамент технологического прогресса.
Образовательный проект Popmath подготовил 4-х месячные онлайн-курсы для взрослой аудитории для всех, кому важно осмыслить математику, а не просто заучить набор формул.
На ваш выбор два курса:
📍Математика для взрослых: для желающих получить прочную математическую базу. Предварительные знания не требуются.
📍Линейная алгебра: для тех, кто хочет разобраться в предмете поглубже и выйти за рамки базовых знаний математики.
🔆 Формат курсов:
- 16 лекций и 16 семинаров через Zoom
- обратная связь с преподавателями в Телеграм
- яркие 2D- и 3D-анимации для лучшего восприятия материала
Старт групп: середина марта
По всем вопросам вы можете писать @popmath_support
Реклама. ИП Пясецкая Наталья Игоревна
ИНН 773714262272
erid: 2Vfnxxh86AC
Сегодня у меня для вас #рекомендация — два полезных канала для системных администраторов:
🔐 infosec — один из самых ламповых каналов для системных администраторов и ИБ специалистов, где говорят об истории ИТ, публикуют актуальные новости и пишут технический материал на разные темы.
👨💻 Вакансии в ИБ — актуальные предложения от самых крупных работодателей и лидеров рынка в сфере информационной безопасности.
😎 Знакомая прислала скриншот веб-редактора аудиофайлов
- какую кнопку нажать, чтобы выйти из этого режима?
- Esc
- сын то же самое сказал, не срабатывает... очень много работы сделала(((
- в смысле боишься потерять?
- да, уже было такое
- перетащи туда файл
- я никогда так не делала
- повод попробовать :)
- ура!!!
Я уже вижу, как вы прониклись чувством превосходства над неопытным пользователем :) Но в этой истории есть отличная мораль. В любой непонятной ситуации следуйте указаниям на экране! А внимательно читать и анализировать написанное - это высший пилотаж ✌️
🕒 Как получить сведения о запланированном задании в PowerShell
Смотрел тут свои старые скрипты, решил поделиться. Задача несложная, однако в зависимости от цели может понадобиться три разных запроса.
1️⃣ Состояние задания - Get-ScheduledTask
Годится запрос по имени задания, в том числе неполному. Заодно выведем чуть больше инфо - полное имя, состояние, адрес.
Get-ScheduledTask -TaskName '*sync*lang*' | fl TaskName,State,URI
TaskName : Synchronize Language Settings
State : Ready
URI : \Microsoft\Windows\International\Synchronize Language Settings
Get-ScheduledTaskInfo
-TaskPath
. Либо в качестве имени указывайте URI
из запроса выше.Get-ScheduledTaskInfo -TaskName '\Microsoft\Windows\International\Synchronize Language Settings
LastRunTime : 1/25/2025 10:22:22
LastTaskResult : 0
NextRunTime :
NumberOfMissedRuns : 0
TaskName : \Microsoft\Windows\International\Synchronize Language Settings
LastTaskResult
выводит код завершения предыдущего запуска. 0
означает успех, 1
- неудачу, остальное надо смотреть по коду.Where-Object
.Get-ScheduledTask -TaskName *backup*,*sync* | Get-ScheduledTaskInfo | fl TaskName,LastRunTime
Export-ScheduledTask
Export-ScheduledTask -TaskName '\Microsoft\Windows\International\Synchronize Language Settings'
[xml]$task = Export-ScheduledTask -TaskName '\Microsoft\Windows\International\Synchronize Language Settings'
$task.Task.Triggers.LogonTrigger.Delay
PT30S
schtasks
. Бывает проще импортировать подготовленный XML. Пример уже был на канале ✌️
Читать полностью…
🔁 Новое в блоге: Нюансы восстановления параметров и приложений из современного бэкапа Windows
Мой товарищ устанавливал систему на новенький Surface, и его заинтриговала возможность восстановить настройки и файлы со старого ПК уже в процессе установки. Правда, не прошло и полчаса, как его постигло жестокое разочарование. В системе не оказалось и половины ожидаемых настроек! 😡
Эта история побудила меня вернуться к теме современного резервного копирования и восстановления в Windows. Я поднял ее осенью 2023 года разбором приложения Windows Backup, но не касался восстановления. Теперь настал и его черед.
К сожалению, похвастаться там особо нечем 🤷♂️ Современное резервное копирование и восстановление в Windows – это фактически обертка, в которую завернут старый, хорошо обсосанный леденец.
➡️ Читайте в блоге, как я пришел к такому выводу: https://www.outsidethebox.ms/22565/
💩 Тревога В действии
Здесь на панели задач сошлись все звезды:
• #автоперевод Warning in effect
• коричневый оранжевый уровень опасности
• пиктограмма ветра (а не то что вы подумали :)
🤖 Об управлении уведомлениями Android для гиков
Думаю, вы видели у "обычных людей" ад уведомлений в шторке. Некоторым моим контактам бесполезно писать в Telegram в расчёте на быстрый ответ, потому что сообщение будет погребёно под уведомлениями десятков каналов.
⚙️ У меня, напротив, весьма специфический подход к управлению уведомлениями.
🔹 Сразу после установки приложения или его первого уведомления я отключаю все ненужные каналы.
🔹 Все важные уведомления идут на часы Amazfit Bip. A там с помощью приложения AmazFit Tools настроены разные шаблоны вибрации и отображения сообщений. Вплоть до регулярного выражения на смс/пуш банка, чтобы показывало только код подтверждения.
🔇 В результате у меня полностью отключены звуковые уведомления в телефоне. Только при звонке он вибрирует, что практически не слышно. Такой расклад повышает зависимость от часов, и у меня есть автоматизации для режима "Не беспокоить" (DND).
1. При выходе из DND часы должны чётко устанавливать соединение с телефоном.
2. Нужно предусмотреть сценарий, чтобы близкие люди могли дозвониться ночью. Разумеется, в телефоне есть приоритетный режим для избранных контактов. Но он бесполезен при полностью отключённых звуках и тихой вибрации / глубоком сне.
С первым пунктом в MIUI исторически было нестабильно. Поэтому я давно создал скрипт Tasker, который при выходе из DND запускает MiFit / Zepp и AmazFit Tools. Однако с обновлением до HyperOS это фактически перестало работать. Пришлось плясать с бубном, добавляя передёргивание Bluetooth, включение дисплея и форсирование подключения в Amazfit Tools посредством их родного плагина 🙄
С ночными же звонками всё "просто". В том же Tasker задано условие: если пропущен звонок от избранного контакта, запускай скрипт↑ И по второму звонку уже будут вибрировать часы.
Морали тут особой нет. Но есть возможности. И костыли, конечно, куда ж без них 🩼🩼 Эта тема первой пришла мне в голову, когда давеча мой друг спросил, что бы мне помешало перейти на iPhone. Впрочем, ему я рассказывать такое не стал - это же для гиков 😎
Спасибо, что читаете мой канал 👍 С наступающим Новым годом! 🎄 Продолжим в следующем году ✌️
Читать полностью…Мало разработать хороший продукт — важно защитить его от кибератак
Регуляторы требуют повышения киберустойчивости ПО, так что навыки информационной безопасности — маст хэв для развития карьеры в разработке. Получить их можно на совместном курсе ВШЭ и Нетологии «DevSecOps: практика безопасной разработки» За 5 месяцев вы научитесь:
🛡Понимать принципы безопасной разработки, внедрять подходы SSDLC, DevSecOps.
🛡Моделировать угрозы и оценивать риски.
🛡Применять в работе инструменты безопасности — GitLab CI и ArgoCD.
🛡Разбираться в нормативных требованиях и стандартах: ISO, NIST, OWASP и других.
Вы сможете выстраивать защиту от угроз на всех этапах и получите диплом ВШЭ. Для обучения понадобятся базовые знания Linux и Python, на старте вам предложат тест и, при необходимости, выравнивающий модуль.
Используйте промокод DEVSECOPSHSE на скидку 10 000 рублей до 30 декабря ➡️ https://netolo.gy/dLXb
Реклама. ООО "Нетология". ИНН 7726464125 Erid 2SDnjcLV22w
⚙️ О зачистке Windows от хвостов приложений
У меня на нескольких системах было установлено приложение VMWare Horizon для удаленного доступа к ВМ заказчика. Тот перешел на Windows 365, поэтому я штатно удалил клиент VMWare из всех ОС и забыл про него.
А спустя несколько месяцев случайно увидел запущенные службы VMWare. На одном компьютере их было три, а на другом аж пять 🤦♂️ Что ж, надо зачистить!
Я исторически не доверяю приложениям типа Revo Uninstaller ❌ Они в принципе не могут знать о программе больше, чем ее штатный установщик. А выполняя удаление по косвенным признакам, они могут зацепить что-то важное, о чем я знать не буду.
👉 В таких ситуациях я предпочитаю действовать руками. И первой отправной точкой всегда должен быть раздел реестра:HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall
Я не помню путь наизусть, поэтому всегда гуглю uninstall windows registry
и попадаю в KB247501. В этом разделе содержатся сведения обо всех установленных программах. Отсюда подтягивают данные классический апплет appwiz.cpl
и раздел Параметров с установленными приложениями.
У большинства подразделов в качестве имени используется GUID, но принадлежность к программе несложно определить визуально. Также можно сделать выборку скриптом #PowerShell за авторством ChatGPT.
Важны эти параметры:
• DisplayName
- название программы
• UninstallString
- команда для удаления
У VMWare Horizon в качестве инсталлятора используется Windows Installer. Поэтому для удаления вызывается msiexec
с ключом /x
, которому передается ИД программы в базе установщика Windows:MsiExec.exe /X{2B1D0F22-6025-409A-A248-7C10783FD5F2}
После выполнения всех команд из системы удалились службы и оставшиеся папки приложения Horizon✌️
📢 О важности обновления Windows в процессе установки и роли пользователя defaultuser0
После выхода поста о длительности установки обновлений пара человек попеняли мне в личке, что я учу читателей нехорошему - как пропустить установку обновлений безопасности! Один вроде и в шутку, но...
Я пообещал ответить в канале, и вот мои тезисы. Первые три я упоминал в исходном посте.
🔹 Файл ответов поддерживается. Пропуск обновлений с ним - решение Microsoft. (Метод BypassNRO если и поддерживается, то лишь для полностью оффлайн установки).
🔹 Если вы всерьез озабочены безопасностью, вам следует интегрировать динамические обновления в дистрибутив, нежели полагаться на обновление в процессе установки.
🔹 Опытным пользователям следует всегда брать свежий образ MSDN, поскольку он отстает максимум на последнее накопительное обновление (LCU).
🔹 Разница в безопасности между стандартным процессом и установкой свежего образа MSDN с пропуском обновления будет маргинальной. При условии, что сразу после установки вы скачаете и установите все обновления (автоматически это происходит в течение нескольких часов). А пока они устанавливаются, не будете делать глупостей.
👉 Форсирование обновлений до первого входа в систему - это в немалой степени защита от дурака!
Остановлюсь подробнее на последнем тезисе.
ℹ️ В процессе установки на этапе OOBE у вас система уже полностью установлена и подключена к интернету. Она работает в стандартном режиме. Единственное отличие - обычный пользователь может взаимодействовать лишь с экранами OOBE.
А если пользователь не совсем обычный? Давайте посмотрим, что можно сделать. Shift+F10
запускает командную строку. Тут уже можно много чего наворотить!
🔸 Команда whoami
покажет, что вы пользователь defaultuser0
. А whoami /groups
, что у вас есть права админа. В контексте этого временного пользователя вы проходите все экраны OOBE, пока сами не войдете систему впервые. Затем он удаляется вместе с профилем.
🔸 От имени defaultuser0
вы уже сейчас можете настраивать любые системные параметры, вместо того чтобы играть в Surf 🏄 И необязательно из консоли. Наберите в ней regedit
и твикайте HKLM сколько угодно. Введите control
- и вот вам в одном флаконе проводник и классическая панель управления, откуда перейти в Параметры проще простого.
🔸 Хотите полазить по Интернету и что-нибудь скачать? Запустите Edge по веб-ссылке в Параметрах или из проводника / консоли:"c:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
Список можно продолжать, но расклад понятен. Портьеры OOBE не ограждают от стрельбы в ногу!
////
☑️ Резюме
Форсирование установки обновлений на этапе OOBE - это правильное решение в масштабах экосистемы Windows. Однако оно значительно замедляет установку, что создает неудобства опытным пользователям в ряде сценариев.
Мне это мешает исследовать ОС и проверять работу различных ее аспектов. Отсутствие LCU на виртуальной машине, с которой я снесу систему через час или день после установки, меня не беспокоит.
Варианты пропуска установки обновлений - это не вредные советы, а информация для принятия взвешенного решения. Моим подписчикам оно по плечу ✌️
⚙️ Ускоренная диагностика методом половинного деления
В чате Sergey Kovalev попросил помочь продиагностировать проблему при установке своей сборки Windows Server. У него самописный скрипт берёт оригинальный образ Windows Server 2022 21H2 и интегрирует в него накопительные обновления ОС и .NET Framework, минимальный набор драйверов, а также скрипты для настройки системы.
Все это работало как часы по апрель включительно, а потом сломалось. На этапе установки WindowsPE во время применения WIM-образа к диску выводится ошибка 0x80070570
. Она означает:
The file or directory is corrupted and unreadable
.
Гугление по коду ошибки выдаст тонну сеошных и тупиковых советов, поэтому ходить туда бесполезно. Я сходу предложил покурить логи установки, и Сергей довольно быстро определил проблемный файл.
Его расположение в папке NativeImages_v4.0.30319_64
намекало на .NET, поэтому я предложил исключить интеграцию накопительного обновления .NET Framework. Вообще, Microsoft рекомендует обновлять дистрибутив динамическими обновлениями, а .NET туда не входит. Строго говоря, потому что не считается частью операционной системы, но тем не менее.
Сергей продолжил исследования и выяснил, что файл входит в состав дистрибутива изначально и не заменяется накопительными обновлениями. Наверное, после этого он быстро догадался о причине проблемы.
👉 Битый оригинальный образ! Контрольная сумма не совпадала с оригиналом. Предположительно, образ побился при перемещении из одного облака в другое, хотя его размер в байтах остался прежним.
В итоге в скрипт добавился шаг для проверки контрольной суммы :)
////
🤔 А где же тут половинное деление?
Я неоднократно показывал этот подход для диагностики проблем с работающей операционной системой (раз, два, три, четыре). Там вы загружаетесь в безопасный режим, исключая влияние сторонних программ, служб и драйверов.
✅ В общем случае первый шаг половинного деления - это создание как можно более чистой диагностической среды, не загрязненной внешними факторами.
Применительно к обсуждаемой ошибке, относительно чистая среда - это тестовая установка с оригинального дистрибутива без всяких изменений. Для диагностики достаточно было пройти этап WindowsPE. И это моментально сделало бы главным подозреваемым исходный образ, нежели его многочисленные модификации.
При этом не менее важно создать чистую среду в голове - абстрагироваться от лишних факторов и посмотреть на проблему с нуля. Я не так давно на разбирал ментальные помехи диагностике на своем примере. В том числе упоминал знание, что "ничего не делал". В данном случае Сергею мешало знание, что он ничего не менял в своей рутине.
В итоге можно было не гуглить и не курить логи. Вот вам и ускоренная диагностика! ✌️
😎 Как открыть "Мой компьютер" двойным щелчком по ярлыку
Что? Да :) Вопрос задал в чате Андрей Третьяков. Компьютер уже не "мой", а "этот". И ярлык уже по дефолту скрыт с рабочего стола (включается в Win+R - desk.cpl ,5). И все же...
Андрей заметил, что в Windows 11 не всегда открывается новое окно со списком дисков и устройств. Иногда на передний план выходит имеющееся окно проводника с последней активной вкладкой.
Я потыкал и определил, что такое поведение наблюдается, когда этот компьютер уже открыт в одной из вкладок! Убрав значок с рабочего стола, девелоперы забыли про него. С глаз долой - из сердца вон! 🤦♂️
Сочетание клавиш Win+E работало четко, но Андрею хотелось бы мышью. Что ж, есть пара вариантов.
🟡 Долго и неудобно: ПКМ на значке компьютера - Показать дополнительные параметры - Открыть в новом процессе. Можно сразу открывать старое меню с Shift+ПКМ, но это уже с клавиатурой.
🟢 Быстро и просто: создать новый ярлык с командой:
explorer shell:MyComputerFolder
#Классика блога про папки shell в помощь.
////
Проблема воспроизводилась в чистой установке Windows 11 24H2, но у меня ушла с ноябрьским обновлением 26100.2314. Хотя у Андрея все еще наблюдалась в декабрьском превью 26100.2454.
👉 Так или иначе, вопрос решает explorer.exe. И он регулярно приходит на выручку, когда сталкиваешься с ограничениями графического интерфейса!
Пруфы в канале:
• Как закрепить произвольный файл в меню Пуск
• Как добавить ярлык интернета в Пуск
• Закрепляемый ярлык на любой элемент Параметров
• Как создать ярлык на магазинное приложение на панели файлового менеджера
• Как открыть конкретный файл в приложении, отличном от приложения по умолчанию
🚀 Ускорение загрузки файлов в PowerShell
Недавно я перепроверял давно опубликованный в блоге скрипт для скачивания файла с помощью #PowerShell, и слишком уж долго шла загрузка. Хочу поделиться решениями.
1️⃣ Отключение прогресса
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest
(псевдоним iwr
) разница значительная! Один и тот же файл размером 175 мегабайт без прогресса у меня на разных системах скачивался от 16 до 42 секунд, а с прогрессом - от 3 до 13 минут! 🤔Invoke-WebRequest
качал слишком долго. Я предположил, что сайт специально притормаживает отдачу, и решил прикинуться браузером. -UserAgent "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
Invoke-WebRequest
и Invoke-RestMethod
также можно скачивать файлы с помощью Start-BitsTransfer
. Этот командлет запускает джоб с помощью службы BITS (фоновая интеллектуальная служба передачи данных). Именно ее использует центр обновления Windows.iwr
без юзер-агента. $file = "$env:temp\mpam-fe.exe"
$uri = 'https://go.microsoft.com/fwlink/?LinkID=121721&arch=x64'
$u = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
$ProgressPreference = 'SilentlyContinue'
Measure-Command {
Invoke-WebRequest -Uri $uri -OutFile $file -UserAgent $u
}
Measure-Command {
Start-BitsTransfer -Source $uri -Destination $file
}
🌐 О приоритете записей в файле hosts
В чате обсуждали использование файла hosts с целью запретить приложению подключение к своим адресам. Речь зашла о возможных дубликатах записей. Один опытный участник заявил:
hosts читается сверху вниз и будет использован последний дубликат
Другой не менее опытный участник это полайкал. Судя по результатам викторины в виде опроса, так думает лишь четверть подписчиков. Правильно же ответили более 40%, что для моих викторин - отличный результат 😎
Я поинтересовался у автора заявления, как бы он его проверял. Тот предложил вписать в файл две строчки и пропинговать.
127.0.0.1 ya.ru
127.0.0.2 ya.ru
gc "C:\Windows\System32\drivers\etc\hosts" -Tail 2; ping ya.ru
127.0.0.1 ya.ru
127.0.0.2 ya.ru
Pinging ya.ru [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
dartraiden
). А в Linux всегда найдется какой-нибудь дистрибутив с альтернативной реализацией 🐧😎 Коммунальные услуги теперь и в вашем SSD
Говорят, пока только для москвичей ;)
Наверняка в оригинале - utilities. Основное значение слова - организации, осуществляющие поставку газа, воды и электричества потребителям. А не вот этих ваших утилит :)
Спасибо dartraiden
и ԤИОНЕР
за очередной #автоперевод ✌️
⚙️ Нюансы префетчинга приложений в Windows
Сегодня в рубрике "Возвращаясь к напечатанному" префетчинг приложений и количество записей, которые он хранит и обрабатывает.
• В 2013 году я разбирал префетчинг в рамках мифов оптимизации SSD
• В 2019 году он снова попал в фокус в статье Нюансы отключения службы SysMain в WindowsNiks
спросил, работает ли префетчинг по умолчанию, когда система установлена на SSD. Да, работает, и это легко проверить по мотивам статьи про SysMain:
Get-MMagent
ApplicationLaunchPrefetching : True
ApplicationPreLaunch : True
MaxOperationAPIFiles : 512
MemoryCompression : True
OperationAPI : True
PageCombining : True
ApplicationPreLaunch
- это он. Вообще, этот префетчинг еще времён XP, и по большому счету с тех пор ничего не изменилось. Однако сравнивая вывод наших команд, я заметил, что отличается значение MaxOperationAPIFiles
. Это предельное количество файлов в сфере префетчинга.Niks
интересовался, стоит ли увеличить значение до 2048. Чтобы ответить на этот вопрос, нужно:.EXE
с жесткого дискаC:\Windows\Prefetch\
(Get-ChildItem "C:\Windows\Prefetch\*.pf" -File).Count
.EXE
. .EXE
с HDD, а количество PF-файлов близко к лимиту, может иметь смысл увеличить предельное значение.Set-MMAgent -MaxOperationAPIFiles 1024
Niks
спустя две недели после очистки и увеличения лимита в папке стало 354 PF-файла. Что превышает стандартный предел в его Windows 10, но далеко от 512 в Windows 11. 🧹 Удаление временных файлов из служебных профилей
Недавно я анализировал недостаток дискового пространства на одной системе. Помимо прочего утилита dfp выдала такое:
1.6G 527 191 C:\Windows\ServiceProfiles
1.6G 287 81 C:\Windows\ServiceProfiles\NetworkService
1.6G 281 71 C:\Windows\ServiceProfiles\NetworkService\AppData
1.6G 244 39 C:\Windows\ServiceProfiles\NetworkService\AppData\Local
1.6G 243 34 C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp
Temp
и выяснил, что 1.6 GB занято древней папкой с именем типа E58DAD6F-63DE-461C-AB9F-7F58DDC916D9
NetworkService
и LocalService
- служебные аккаунты, чьи профили хранятся в папке Windows. Их содержимое аналогично профилям интерактивных пользователей из папки C:\Users
. Remove-Item -Force -Recurse -Path 'C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\E58D*'
🙏 Мой блог https://www.outsidethebox.ms/ снова доступен. И вы можете прочесть свежую статью из утреннего анонса↑
Спасибо всем, кто сообщал о проблеме и благодарил за труды. Иногда, надо ощутить нехватку чего-либо, чтобы осознать ценность :)
Технически же от меня там ничего не зависело. Но на другом хостинге именно такого скорее всего не произошло бы. Я давно обдумываю переезд, но все никак не могу решиться. Может быть в этом году ✌️
🙄 О нововведениях в современной Windows
Много лет назад в Windows Vista переосмыслили работу обычным пользователем. Тогда появился контроль учётных записей (UAC). Причём было только две опции — уведомлять всегда или никогда. Включение порождало слишком много уведомлений, и люди громко жаловались. Поэтому в Windows 7 сделали поменьше уведомлений для администраторов.
⚙️ С другой стороны, обычным пользователям стал доступен ряд настроек, для которых в Windows XP были необходимы права администратора. Например, добавление принтеров, управление электропитанием и настройка часового пояса (но не времени). Последнее регулярно пиарили на разных конференциях — посмотрите, как стало удобно!
Я вспомнил об этом, просматривая описание предварительного февральского обновления для Windows 11 24H2 — KB5050094. Моё внимание привлекло нововведение в Параметрах:
[Settings] New! You can change time zones in Settings > Time & Language > Date & Time. You don’t have to be an admin to make this change.
Ура, теперь не надо быть админом, чтобы менять часовой пояс! Но ведь у нас это было почти 20 лет назад 🤦♂️ Впрочем, я не знаю, как давно они сломали.
По состоянию на январь 2024 года проблема воспроизводилась в Windows 10 22H2 и Windows 11 23H2 & 24H2. В Windows 8.1 обычный пользователь может задавать часовой пояс без проблем, но там ещё нет опции автоматического выбора. Замечу, что в актуальных ОС для включения автоматики нужно в настройках конфиденциальности разрешить десктопным программам доступ к местоположению.
////
Вообще, разработчики Windows в последнее время взяли моду выдавать устранённые баги UX за нововведения 😡 Например, под таким же соусом подали исправленное перетаскивание в адресную строку Проводника спустя 9 месяцев после поломки.
Разумеется, они не считают это дефектами, если фича подвергается переработке и получает какие-то другие улучшения. Хорошо, если они понимают деградацию пользовательского опыта и сразу планируют исправление в обозримом будущем, как в случае с адресной строкой.
Но так бывает не всегда. Размещение панели задач сбоку, выпиленное из Windows 11 фактически ради дизайна, до сих пор не вернули. И сломанная смена часового пояса могла у них в бэклоге годами лежать — обычным пользователям слова не давали! Пока кто-то не решил поднять себе KPI выпуском "новой" фичи. И вот, встречайте 🎉
Внимательные читатели заметят на картинке ещё одну новую старую фичу. Но по крайней мере создание папки не выпиливали из классического контекстного меню, которое до сих пор доступно.
Через пару дней я продолжу тему таких нововведений в Windows записью блога. Не переключайте каналы✌️
⚙️ О параметрах программы установки Windows (setup.exe
)
Недавно в форуме я увидел ошибочное утверждение, что setup.exe
предназначен исключительно для установки из-под живой системы, нежели из-под Windows PE. Его автор развертывает ОС применением WIM-образа к диску, что могло повлиять на восприятие :)
Да, переустановка поверх запускается только из-под работающей Windows. Но это не единственный способ вызова программы установки!
ℹ️ Первый проход установки ОС не случайно называется windowsPE
. Когда вы загружаетесь с флешки или ISO, диспетчер загрузки обращается к boot.wim
. А там как раз Windows PE, которая целиком загружается в оперативную память. Поэтому setup.exe
запускается именно из PE, хотя и без параметров, что видно на картинке.
👉 Читайте также: Нюансы программы установки Windows.
Однако дистрибутив может лежать на внешнем или сетевом диске. Это повод загрузиться в среду PE (чистую или условного Стрельца) и запустить setup.exe
с нужными параметрами. И у Microsoft есть большой документ, описывающий ключи командной строки программы установки: Windows Setup Command-Line Options 📄
В описании каждого ключа имеется раздел Applicability с таблицей, где в первой строке "Setup.exe started from WinPE - Yes/No". То есть, работает ли этот ключ при запуске из PE.
Кстати, начиная с версии 24H2 в PE поддерживаются еще 9 ключей. В том числе:
• /CompactOS
для сжатия системных файлов.
• /PostOOBE
, задающий расположение setupcomplete.cmd, который иначе надо добавлять в образ напрямую или с помощью OEM-папок
• /ConfigFile
, указывающий на INI-файл с ключами (однако над ними преобладают ключи, переданные в командной строке)
Вообще, документация по установке Windows очень приличная и в целом поддерживается в актуальном состоянии. Да и у меня в блоге немало статей с меткой автоустановка. Приятного чтения! ✌️
⌨️ Как свернуть активное окно сочетанием клавиш
Вопрос в форуме был с подтекстом - сворачивание надо повесить на макрос мыши в фирменном ПО. Поэтому также подошел бы исполняемый файл - утилита или скрипт.
Автор вопроса сразу сказал, что сочетание Win+↓
не подходит. Мол, когда окно развернуто во весь экран, придется нажимать дважды (уменьшить размер, свернуть). Для макроса это не проблема, кстати. Однако потом надо руками восстанавливать полный размер окна - Win+↑
.
🎹 В качестве сочетания предложили Alt+Space N
. Но это с английской раскладкой, а с русской - Alt+Space С
. На практике бесполезно. Одна из бесящих фич Windows 😡
⚙️ Из утилит посоветовали клавиатурного шпиона aka Punto Switcher и загрузили самопальный экзешник в RAR с предупреждением о ложном срабатывании антивируса 🙄
ТС был счастлив, разумеется. Но я б не стал... Лучше уж попросить ChatGPT написать скрипт Python, AutoIt или чего душа пожелает. Это же не кирпичи таскать :)
Но не факт, что автор вопроса хотел именно свернуть окно. Может, он просто желал убрать его с переднего плана и не представлял себе другого способа. А он есть в Windows испокон веков!
👉 В Windows порядок окон определяет Z-order. Первым в нем идет текущее активное окно. Древнее сочетание Alt+Esc
отправляет активное в конец списка. Оно не сворачивается, но может стать невидимым, если полностью перекрыто другими окнами - достаточно одного во весь экран.
Следующее окно в списке становится первым. Пока окно активно, обратное сочетание Alt+Shift+Esc
возвращает его в начало списка, однако не разворачивает свернутое.
Если вы последовательно нажмете эти сочетания, будет похоже на два подряд нажатия Alt+Tab
. Когда-то в этом диалоге окна отображались именно в порядке Z-order, исходя из поста Раймонда Чена двадцатилетней давности. Но сейчас после Alt+Esc
окно перемещается на вторую позицию в Alt+Tab
, нежели в конец.
////
В форуме я не получил отзыва ТС на свое предложение. Отреагировал лишь другой участник: "оно же не сворачивает ахаха". Однако спустя пару недель в чате точно такой же вопрос задал Андрей Шубин. И как выяснилось, он просто хотел убирать окно, нежели именно сворачивать его!
Сочетание Alt+Esc
Андрея устраивало, если бы не маленькая клавиша Esc
. Но это мелочь - с помощью PowerToys можно переназначать отдельные клавиши и сочетания.
Think outside the box ✌️
🎄 Встречайте Новый 1ТП18Т!
У Microsoft очередной зачетный #автоперевод (спасибо, Дмитрий). Мы уже обсудили в чате варианты расшифровки этой аббревиатуры, но я не рискну публиковать их в канале 😎
Пусть это будет Новый год! 🎅 С наступающим вас! Пожелание тоже на картинке - "учить больше"! ✌️
🔒 KeePass: автоматический ввод в окна без заголовка и трёхэтапный вход
Это четвёртый пост серии про #autotype в KeePass. И сегодня я покажу очень простой приём.
По работе мне регулярно приходится выполнять вход с учётной записью Microsoft 365 в клиент Remote Desktop и офисные приложения. Для аутентификации всплывает отдельное небольшое окно без заголовка. Поэтому непонятно, что прописать в KeePass в качестве заголовка окна.
👉 Ничего! Надо добавить запись для автоматического ввода, оставив заголовок пустым.
Наверное, кому-то это было сразу очевидно. Но я дошёл до решения сам экспериментальным путём :)
▶️ Заодно приведу последовательность автоматического ввода для трёхэтапного процесса аутентификации в Microsoft 365: имя учётной записи -> пароль -> второй фактор аутентификации.{UserName}{ENTER}{DELAY 5000}{PASSWORD}{ENTER}{DELAY 5000}{TAB}{ENTER}{DELAY 1000}{TAB}{ENTER}{DELAY 2000}{TIMEOTP}{ENTER}
Сначала всё просто - после ввода аккаунта даём 5 секунд на отображение следующего окна, так же и с паролем. На этапе #2FA по умолчанию предлагается ввести двузначное число из Microsoft Authenticator. Однако резервный вариант с вводом шестизначного одноразового кода (OTP) тоже доступен. А его умеет вводить KeePass, о чём был рассказ в канале!
🔓 Хранение пароля и секретного ключа в одной базе - не лучшая идея. Но моя ОС развёрнута в защищённой корпоративной среде, поэтому я считаю это допустимым компромиссом ради личного комфорта.
Вообще, разделение имени пользователя и пароля на разные этапы входа стало очень популярно в последние годы. Так делают Microsoft, Google и многие другие компании. Но после ввода учётной записи реализация этапов отличается. Поэтому последовательность действий надо адаптировать под каждый сервис ✌️
🌐 О хостинге и VPS в 2025 году
Исходя из опроса в канале, половина подписчиков пользуется VPS, а ещё 28% ощущают необходимость в личном сервере или задумываются о нем. И у меня для вас хорошая новость!
🎄Новогоднее колесо фортуны в Serverspace 🎁
Испытайте удачу и получите 1 ГОД БЕСПЛАТНОГО ХОСТИНГА в Serverspace или другие бонусы на облачную инфраструктуру ⛅️
🔹Удобная панель управления
🔸Процессоры Intel Xeon Gold
🔹ЦОДы на 4 континентах
🔸Высокий uptime
🔹Поддержка 24/7
Как стать участником акции:
1. Крутите колесо по ссылке
2. Получите письмо с подарком
*Важно: акция только для новых пользователей. Подробную информацию об условиях акции можно найти тут 📣
Serverspace - международный облачный провайдер, предлагающий автоматическое развертывание виртуальной инфраструктуры на базе Windows, Linux и российских ОС из любой точки мира менее чем за 1 минуту. Erid
😎 Microsoft приучает к бэкапу
На видео Windows 11 24H2 сразу после чистой установки с помощью файла ответов. Если в Параметрах переключаться на учетную запись Microsoft (MSA), при нажатии кнопки входа открывается приложение Windows Backup 🤷♂️
Кнопок входа в окне две, но результат одинаковый. Впрочем, повторное нажатие открывает правильный диалог аутентификации. И без файла ответов все работает правильно.
Видимо, это связано с тем, что при использовании моего файла ответов полностью пропускается этап OOBE. Но это не объясняет, почему появляется именно приложение для резервного копирования 🤔 Видимо, этот сценарий не тестировали, поскольку MSA уже стала частью системных требований.
Я разбирал приложение Windows Backup в блоге около года назад, но только в контексте создания резервных копий. Обратная сторона медали - восстановление, о чем я планирую пост в блоге в начале следующего года. Не переключайте каналы ✌️
💰 О фрилансе и зарубежных заказчиках
У меня был достаточно длительный опыт взаимодействия с иностранным юрлицом: ИП, валютный контроль, онлайн-бухгалтерия, налоги - вот это все. Не так уж сложно, когда разберешься, но поначалу много вопросов. Их стало еще больше с 2022 года, по мере применения различных санкций к финансовой системе.
🤔 Теперь для такой работы требуется посредник. Но это должна быть не какая-то условная "прокладка". Нужен полноценный сервис, который связывает заказчиков с фрилансером и предоставляет тому набор сопутствующих услуг.
👉 Присмотритесь к Mellow - этот сервис снимает много вопросов:
🔹 Возможность выводить деньги на счёт ИП, банковскую карточку или электронный кошелек.
🔹 Прозрачные условия - только комиссия от суммы сделки: 5% при оплате клиента по счету или 7.5% при оплате по карте
🔹 Простая и быстрая оплата по инвойсу — заказчику не нужно регистрироваться в сервисе, при оплате картой деньги приходят моментально.
🔹 Безопасная сделка с резервированием средств на счету сервиса
🔹 Подробная документация (я всегда обращаю на это особое внимание)
🔹 Помощь с оформлением документов для налоговых органов, полный пакет: договор, счет и акт выполненных работ
✔️ Регистрируйтесь и получайте переводы из заграницы без проблем!
Реклама. Рекламодатель "FRWD Limited" erid: 2VtzqwvSkMu
🤷♂️ О сложностях регрессионного тестирования
На этой неделе в топ Хабра взлетела статья Катастрофа в российской зоне проекта NTPPool.org. Кто-то заддосил все российские серверы точного времени. Спустя три дня Яндекс сорвал покровы - это была их умная колонка 🤦♂️
мы подготовили обновление прошивки для наших колонок, в котором изменения в смежных с NTP‑клиентом утилитах привели к сбою в его поведении. Как мы позднее выяснили, в коде была допущена ошибка, из‑за которой колонки начинали перезапрашивать время с NTP‑серверов каждые пять секунд вне зависимости от ответа, то есть игнорировали факт корректного получения времени. К сожалению, компонент был не полностью покрыт автотестами, поэтому на этапе тестирования ошибку мы не поймали.