Авторский канал. Windows, безопасность, мобильный мир: • тайное знание • профессиональный ликбез • гадание по логам • срыв покровов • доставка пруфов Чат: @winsiders Блог: outsidethebox.ms Oбратная связь: @vsterkin Поддержать ₽: boosty.to/sterkin
▶️ Как быстро искать по различным параметрам служб Windows
И не только служб. И не только в Windows!
В чате Николай посетовал :
Когда они сделают сквозной поиск по службам Windows. Ну то есть по всем атрибутам служб. Я вот не могу запомнить как какая служба называется в русскоязычном интерфейсе. Вывели хотя бы в оснастке столбец "Отображаемое имя", но нет.
В диспетчере задач Windows 11 есть приличный сквозной поиск по службам. Но отображаемого имени там нет. И многих прочих параметров тоже.
👉 Николаю сразу посоветовали #PowerShell - командлет Get-Service
для получения сведений о службах. Однако ТС хотел графический интерфейс и отрицал этот способ. Тогда я добавил еще один командлет - Out-GridView:
Get-Service | Out-GridView
Get-Service | select * | Out-GridView
select
. Get-ScheduledTask | select * | Out-GridView
$tasklist = @()
Get-ScheduledTask | ForEach-Object {
$task = [xml](Export-ScheduledTask -TaskName $_.URI)
$taskdetails = New-Object -Type Psobject -Property @{
"Name" = $_.URI
"Action" = $task.Task.Actions.Exec.Command
}
$tasklist += $taskdetails
}
$tasklist | select Name,Action | Out-GridView
Out-GridView
для анализа любых табличных наборов данных! ✌️
Читать полностью…
🔓 О папке C:\inetpub
Обычно она создаётся при включении необязательных компонентов IIS (встроенные в Windows веб-сервер и FTP-сервер). Однако после апрельского накопительного обновления внимательные люди обнаружили папку в клиентских и серверных Windows даже при выключенных компонентах IIS.
Спустя пару дней популярные сетевые издания сообщили со слов Microsoft, что так и задумано, а удалять папку не следует вне зависимости от наличия включённого IIS. И действительно, 10 апреля в статью с описанием уязвимости CVE-2025-21204: Windows Process Activation Elevation of Privilege Vulnerability безопасники Microsoft добавили специальное примечание:
After installing the updates listed in the Security Updates table for your operating system, a new %systemdrive%\inetpub folder will be created on your device. This folder should not be deleted regardless of whether Internet Information Services (IIS) is active on the target device. This behavior is part of changes that increase protection and does not require any action from IT admins and end users.
ℹ️ Дело тут серьёзное. В соответствии со статьёй, используя изъян в стеке Windows Update, злоумышленник с локальным доступом может легко повысить свои привилегии с обычных до системных. Это называется Elevation of Privilege, EoP.
Слабость классифицируется как CWE-59: Improper Link Resolution Before File Access ('Link Following'). И это похоже на очередную уязвимость в обработке ярлыков Windows, т.е. файлов .LNK. Среди наиболее заметных уязвимостей LNK с EoP из прошлого: CVE-2010-2568 и CVE-2017-8464. Но они были куда опаснее тем, что позволяли удалённое повышение привилегий.
🤔 Казалось бы, предотвращение уязвимости путём создания папки выглядит несерьёзно. Но с одной стороны, Microsoft заявляет это лишь как одну из мер. А с другой - это может быть достаточным временным (надеюсь 🙂) решением до реализации более существенного исправления.
⚙️ Вероятно, уязвимость эксплуатируется путём создания файлов .LNK в C:\inetpub. После установки обновления (и при включении IIS, если на то пошло) для записи в папку и её удаления требуются права системы, TrustedInstaller или администратора.
То есть теперь злоумышленник с ограниченными правами не может ни создать в ней файлы для эксплуатации уязвимости, ни заменить её на свою папку. См. картинку.
////
В общем, лучше папку не удалять. Если она мозолит глаза, сделайте её скрытой и системной. Если же вы удалили папку и теперь жалеете, есть пара вариантов:
🔹 Удалите апрельское накопительное обновление и установите его заново
🔹 Включите любой компонент IIS (это создаст папку) - клонируйте ACL во временную папку - выключите IIS и перезагрузитесь - создайте папку вручную - клонируйте ACL из временной папки. Разрешения будут не один к одному, но обычного пользователя ограничат.
Ещё можно попробовать дождаться следующего накопительного обновления. Однако я могу лишь предположить, что оно восстановит папку, но не гарантировать. Да и лучше не сидеть месяц с уязвимостью ✌️
💩 За кулисами создания г-сборки Windows (SE17E06)
Я регулярно поднимаю тему г-сборок в канале:
• затрагивал их экономику,
• разбирал "хорошие" г-сборки
• и относительно недавно заглядывал за кулисы
А тут не смог пройти мимо ещё одного повода, тем более не только у меня брови поднялись.
Есть известный в определённых кругах разработчик rgadguard
, чьи полезные ресурсы неоднократно фигурировали у меня в блоге (тут) и канале (раз, два, три). Такие проекты приносят пользу сообществу, а разработчику - уважение и хорошую репутацию.
А еще он делает г-сборки 😎 Не удивлюсь, если в неофициальном рейтинге г-сборщиков он входит в топ. Внезапно в своем канале он сорвал покровы с интимного процесса изготовления. И там было такое... Орфография и пунктуация автора сохранены.
Операционная система - Windows Server 2022 Datacenter
Почему установлена не последняя версия операционной системы, а всё по тому, при больших нагрузка, есть эффект подтормаживание проводника.
Также проведены операции, как полностью отключения Defender (с помощью Defender Remover) и отключение автоматического обновления (с помощью WUMT).
⚙ Об изменениях в создании локальной учётной записи при установке Windows
В конце прошлой недели всплыли две новости.
1️⃣ Файл bypassnro.cmd
выпилят из дистрибутива 25H2. Сам метод пока работать не перестанет, но вместо одной короткой команды для запуска файла придётся вводить две, которые в нём содержались. Это внесение изменений в реестр и перезагрузка.
2️⃣ Нашлась другая короткая команда, которая открывает диалог создания локальной учётной записи.
На первом экране OOBE нажмите Shift+F10
, ткните в окно командной строки и введите:start ms-cxh:localonly
Предположу, что это выпилят довольно быстро - может не дожить до 25H2. И напомню, что все это время неизменно рабочим способом остаётся файл ответов. Его можно применять:
🔹 с первого этапа установки
🔹 для автоматизации этапа OOBE
Учите матчасть ✌
😎 Сегодня у меня для вас рекомендации по автообрастаниям и автосхрюнку (или автохрюнку, это неточно :)
И не отрежьте там себе ничего автосхромкой! 🪚
Microsoft прогрессирует - переходит от ручного ухуренивания к автоухрюнку.
Это был #автоперевод в документации SQL Server ✌️
🆘 О самостоятельной техподдержке в организации
Однажды в пятницу вечером мне написала коллега. Она уже полностью отчаялась решить проблему - её виртуальный десктоп Windows 365 завис при входе.
🤖 Сначала она долго пробивалась через чат-бота поддержки. Он сыпал бесполезными советами и отказывался звать человека.
Кожаные мешки в итоге оказались не лучше. Первый создал базовый инцидент, но уже второй закрыл его - якобы, вместо инцидента надо было создавать запрос (на самом деле - нет). Сам его создал, но повесил на неправильную группу. Та с лёгким сердцем его и закрыла 🤦♂️ Вообще, попадание тикета в нужные руки - это одна из нерешённых пока глобальных проблем человечества :)
Всё это происходило небыстро, и девушка пыталась повлиять на процесс с помощью своего менеджера. Тот сказал обращаться в поддержку.
Так прошло две недели 😱
У меня было два простых совета.
1️⃣ Создавать инциденты самостоятельно с помощью формы на портале, нежели через чат с ботом и затем с первой линией поддержки. Экономия времени значительная! Заодно в тикет идёт изложенная своими словами проблема, а не в пересказе туговатового сотрудника техподдержки, нанятого за 2 песо. Об этом написано в руководстве для сотрудников проекта, но кто ж его читает.
2️⃣ Перезагрузить виртуальный десктоп. Неважно, установлена Windows на физическом железе или на виртуальной машине - живительный ребут никто не отменял! Кстати, недавно случайно узнал, что некоторые коллеги не понимали значение слова reboot - слишком технический термин 🤷♂️
Но тут был интересный нюанс: как перезагрузить Windows, когда она висит на входе, а кнопки питания нет нигде? 🤔 Более того, эти десктопы в принципе настроены так, что из графического интерфейса Windows убраны все опции перезагрузки и выключения. И даже консольные блокируются за исключением одного - в PowerShell от администратора Restart-Computer
. Но права админа просто так не дают.
👉 Однако облачные десктопы зачастую можно перезагрузить "снаружи". В данном случае нужно зайти на windows365.microsoft.com с аккаунтом организации. А там есть перезагрузка, откат к снимку системы и сброс. Это тоже было описано во внутреннем руководстве, кстати.
///
Вскорости после разговора коллега сообщила, что перезагрузка десктопа помогла, хотя и не сразу. Я не стал уточнять, что означала эта оговорка. Можно считать и сразу, когда за полчаса решаешь вопрос, с которым мучилась две недели ✅
Мораль вытекает из пунктов выше:
1. RTFM.
2. Перезагружайте Windows, прежде чем обратиться в техподдержку ✌️
🚀 Ускорение загрузки файлов в 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 ✌️
«А хватит ли моего английского, чтобы работать за границей?»
Этот вопрос не даёт покоя многим специалистам.
🟠 Кто-то не понимает, какой у него сейчас уровень.
🟠 Кто-то вроде занимался с репетитором, но не может пройти собеседование.
🟠 А кто-то просто боится звучать «непрофессионально» — из-за акцента, нехватки словарного запаса и неестественных пауз.
Если ты откладываешь работу за рубежом “до лучших времён”, пока не подтянешь английский — есть один вебинар для тебя.
📆 24 апреля в 19:00 мск.
Ведёт Настя Алексюк — преподаватель AgileFluent, 8 лет опыта в деловом и техническом английском, параллельно работает менеджером продукта в американском стартапе.
Настя поможет тебе:
— разобраться, достаточно ли у тебя английского, чтобы искать работу за границей;
— понять, какие именно навыки тормозят тебя (и что с этим делать);
— получить подборку нескучных упражнений без учебников.
Вебинар бесплатный и с пользой: ты выйдешь с чётким пониманием, что прокачивать и как.
🎁 А еще всем участникам — бонус: полезные материалы + скидка на занятия в AgileFluent!
👉 Регистрируйся по ссылке: https://agilefluent.ru/web-240425
Реклама. ООО «Эджайл», ИНН 7810964334, erid: 2VtzqwsBqWA
⚙️ Нюансы применения ZDP во время установки Windows
В терминологии Microsoft термин ZDP - это Zero Day Patch или Zero Day Package или Zero Day Priority [update] в зависимости от источника.
Осенью 2024 года я анализировал причину долгой установки Windows. Очень внимательный читатель Олег поймал меня на несоответствии. Его внимание привлекла эта фраза:
Первым делом обновляется сам OOBE - пакетом OOBE ZDP.
⌛️ Подписчик перешел по ссылке в блог Рэймонда Чена. И процитировал мне, что ZDP служит вовсе не для исправления багов OOBE. Это некий пакет самых критичных исправлений ОС для установки на этапе OOBE. Он должен быть маленьким, чтобы побыстрее установиться.
📄 Однако Чен писал в 2016 году, и с тех пор много воды утекло! Текущая реальность в журналах установки. Я пообещал Олегу разбор в канале. И сегодняшний пост публикуется в рубриках "гадание по логам" и "доставка пруфов"!
Нас интересуют файлы из папки C:\Windows\Panther
(ссылки на pastebin):
• setupact.log (фрагмент) с основными событиями установки ОС
• UnattendGC\
setupact.log с событиями ОOBE
🖼 Далее комментарии к строкам второго файла, из них на картинку вошли 442 - 462.
106 - загружается ZDP Plugin
442 - ожидаем результатов поиска от WU ZDP
443 - нашлось одно обновление (это KB5046683 для OOBE, строка 69 во фрагменте основного логе)
450 - установка успешная
451 - требуется перезагрузка
453 - пошли события после перезагрузки
На этом упоминания ZDP заканчиваются! Дальше идет установка последнего накопительного обновления (LCU).
462 - начат поиск срочных обновлений
495 - идет загрузка KB5044284
ℹ️ При установке с файлом ответов этого не происходит.
////
На основе этих логов я и сделал выводы:
1️⃣ Посредством OOBE ZDP сейчас обновляется только сам процесс OOBE, и это действительно маленький пакет.
2️⃣ Критические обновления ОС и сервисный стек устанавливаются в рамках стандартного LCU.
Разумеется, последней инстанцией здесь являются разработчики. Но получить их комментарии невозможно. Однако логи установки Windows весьма подробные, а их анализ - хорошее упражнение ✌️
☁️ OneDrive: как исключить определенные типы и имена файлов из синхронизации
Допустим, вы синхронизируете в облако папки "Рабочий стол" с двух разных компьютеров. Их содержимое смешивается. Это неудобно, когда у вас там ярлыки на разные программы либо на папки, которые не входят в сферу синхронизации. С таким подтекстом Aliaksandr
задал в чате вынесенный в заголовок вопрос, хотя звучал он совсем иначе.
🐞 В принципе, в параметрах клиента OneDrive есть настройка для исключения расширений. Но с ней есть две проблемы:
1. Расширения должны состоять не менее чем из трех символов. Например, md
не исключить.
2. Настройка не работает :) По крайней мере так, как люди ожидают. Множество жалоб в интернете подтвердили, что это не просто моя локальная проблема. Некоторые также правят INI-файл политик клиента, но безуспешно.
///
👉 Мы пойдем другим путем © У OneDrive есть групповые политики, и в изданиях Pro и выше можно решить вопрос политикой Exclude specific kinds of files from being uploaded (Исключить отправку определенных видов файлов).
⚠️ Учтите, что:
1. Политика применится только к новым файлам, то есть не будут исключаться уже существующие файлы, втч переименованные после включения политики. Поэтому придется навести порядок руками - например, пересоздать ярлыки.
2. Политика работает только с именами файлов и не действует на имена папок. Но папки можно исключить в настройках клиента.
3. Чтобы эта и другие политики OneDrive отобразились в графическом интерфейсе gpedit.msc
, нужно закинуть административные шаблоны из папки с клиентом OneDrive в %systemroot%\PolicyDefinitions
. Но прямая правка реестра работает и без этого.
⚙️ Изменения в реестр можно внести из консоли от имени администратора или REG-файлом. В этих примерах не будут синхронизироваться ярлыки и файлы с именем вроде mytest.txt
.reg add "HKLM\SOFTWARE\Policies\Microsoft\OneDrive\EnableODIgnoreListFromGPO" /v "*.lnk" /t REG_SZ /d "*.lnk" /f
reg add "HKLM\SOFTWARE\Policies\Microsoft\OneDrive\EnableODIgnoreListFromGPO" /v "*test*" /t REG_SZ /d "*test*" /f
После внесения изменений в реестр перезапустите клиент OneDrive и ваш файловый менеджер.
Теперь можете закинуть в папку OneDrive несколько попадающих под действие политики файлов и убедиться, что они получили особый статус и значок. В тултипе поясняется, что файл исключен из синхронизации ✌️
▶️ Простой и эффективный поиск текста в PowerShell - Select-String
По работе нередко возникают задачи, связанные с поиском текста в разрозненных источниках. Например, есть сервис, который работает потихоньку и пишет логи с ежедневной ротацией. В какой-то момент обнаруживается сбой и связанная ошибка в логе. Нужно узнать, когда это происходило за некий срок. А после исправления проблемы убедиться, что она не воспроизводится.
Как правило, люди открывают Notepad++, загружают туда пачку логов и выполняют поиск во всех открытых файлах. На предложение использовать скрипт пожимают плечами - мол, это же разовая задача. И так сойдет 👌
У этого подхода много проблем:
1. Медленно.
2. Не выгружается сводка и найденные данные.
3. При большом количестве / размере файлов это работает плохо или вообще никак.
Да и не разовая это у них задача, поэтому скрипт подходит отлично.
👉 В #PowerShell для этой цели есть командлет Select-String
. Он умеет искать простое совпадение или регулярное выражение.
Select-String -Path 'C:\logs\*.log*' -Pattern '0x800f0805' -SimpleMatch
Select-String -Path 'C:\logs\*.log*' -Pattern '0x800f0805|0x80070490'
Get-Content
. А для такой задачи это неэффективно - слишком медленно!cbs.log
общим объемом около 1.2GB.$logpath = "C:\temp\logs\*cbs*.log"
Measure-Command {
$a = Select-String -Path $logpath -Pattern '0x800f0805' -SimpleMatch
}
$a.count
Measure-Command {
$b = Get-Content -Path $logpath | where $_ -match '0x800f0805'
}
$b.count
Select-String
справился за 7.5 секунд, а Get-Content
понадобилось 4 мин и 40 секунд.Select-String
есть очень полезный параметр -Context
, который выводит строки до и после найденного совпадения.Select-String -Path $logpath -Pattern 'exception ' -SimpleMatch -Context 2,20
Get-Content
имеет смысл. Но просто для поиска текста Select-String
вполне достаточно. И да, можно сказать чат-боту, чтобы применял конкретный командлет!⚙️ Как удалить ассоциацию программы с типом файлов
В чате Zubastic
задал этот вопрос в контексте файлов без расширения - некая программа предательски захватила ассоциацию с ними.
Вариантов регистрации много. Самый простой и работающий с незапамятных времен - программа прописывает себя в разделе HKCR\ProgramName
, в том числе команду на запуск в разделе HKCR\ProgramName\shell\open\command
. А для каждого расширения вносит указатель на этот раздел в HKCR\.ext
, где ext
- расширение.
ℹ️ В случае с файлами без расширения - раздел будет HKCR\.
. По умолчанию он отсутствует. Более того, Windows не позволяет вам создать его путем "Открыть с помощью": для файлов без расширений нет опции всегда открывать этой программой! Однако вот пример связи таких файлов с блокнотом по описанной выше схеме старыми добрыми командами assoc
и ftype
.
assoc .=NoExtFile
ftype NoExtFile="notepad.exe" "%1"
HKCR\.
, тем самым уничтожив указатель на программу. А назвать свой подраздел в HKCR она могла как угодно. С помощью Process Monitor мы определили конкретное название раздела - HKCR\PhotonWorkShop
. После его удаления проблема решилась ☑️HKCR\.
файлы без расширения продолжали открываться в этой программе 🤷♂️HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\
OpenWithList
- список программ в "Открыть с помощью"OpenWithProgids
- список зарегистрированных программ или отсылка к типу файлов в HKCRUserChoice
- текущая программа по умолчанию, выбранная пользователем (при наличии - преобладает над подразделами выше)OpenWithProgids
и OpenWithList
в HKCU. В этом случае при открытии файла будут отображаться системные ассоциации ↓HKCR\.ext
. Там тоже могут быть подразделы OpenWithProgids
и OpenWithList
. Универсального рецепта здесь нет ввиду различных способов регистрации.🔍 Расследование: кто перезагрузил 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. Впрочем, ему я рассказывать такое не стал - это же для гиков 😎
Спасибо, что читаете мой канал 👍 С наступающим Новым годом! 🎄 Продолжим в следующем году ✌️
Читать полностью…