Авторский канал. Windows, безопасность, мобильный мир: • тайное знание • профессиональный ликбез • гадание по логам • срыв покровов • доставка пруфов Чат: @winsiders Блог: outsidethebox.ms Oбратная связь: @vsterkin Поддержать ₽: boosty.to/sterkin
- К. научил вчера ночью делать скрин Виндоус+шифт+S и вставлять в телегу клавишей V, отлично работает!
- ОМГ ты же 3 года назад не хотела слушать про это ↑
- я и не буду пользоваться, это ж три клавиши нажать...
- в параметрах поищи Print Screen
и повесь на нее!
- 🙄
Так и живем :)
⚙️ Новое в блоге: Нюансы запуска проводника с полными правами
Недавно мой коллега Дмитрий с канала @winitpro_ru обновил свою классику блога про запуск проводника от имени администратора. Этот трюк в первую очередь ценен для корпоративных серверов. Дома-то можно и сторонний файловый менеджер с правами администратора запустить.
Но любопытно же покопаться в вопросе! Я ведь интересуюсь этой темой ещё с завещания мистера Гейтса, написанного в 2011 году. Сейчас Дмитрий добавил в свою статью альтернативный метод, который появился уже во времена Windows 10.
👉 Если завершить процесс explorer
и сразу же запустить его с ключом /NoUACCheck
, проводник получит полные права.
В Windows 11 я это не проверял. В статье Дмитрия говорилось, что должно работать. Но у меня не сработало!
➡️ Читайте в блоге: https://www.outsidethebox.ms/22306/
erid: LjN8KANvQ
В поисках надёжного корпоративного сетевого оборудования в условиях импортозамещения?
Регистрируйтесь на вебинар «Импортозамещение сетевого оборудования на базе Eltex», который пройдёт 19 марта в 12:00.
На вебинаре расскажем:
🔹 Об основных достижениях и направлениях развития компании Eltex;
🔹 Про сетевое оборудование Eltex: коммутаторы и маршрутизаторы;
🔹 Возможности, спецификации, ПО, гарантия, сервис сетевого оборудования Eltex;
🔹 Схемы применения сетевого оборудования Eltex;
🔹 Сравнение сетевого оборудования Eltex с иностранными аналогами.
Регистрируйтесь на вебинар «Импортозамещение сетевого оборудования на базе Eltex»
Реклама. ООО "ИНФРАТЕХ". ИНН 5024197250.
⚙️ О развитии утилиты diskusage
Сегодня в рубрике "Возвращаясь к напечатанному" утилита для анализа дискового пространства, входящая в поставку Windows. Три года назад я публиковал в блоге подробный разбор ключевых функций.
На тот момент утилита только появилась в предварительных сборках, и у меня был ряд нареканий. С тех пор основные недочеты устранили. Давайте пройдемся по улучшениям!
⚙️ Определение размера системных файлов
На смену ключу /systemAndReserve
пришли два:
• /systemFile[:N]
для отображения служебных системных файлов
• /reserved
для зарезервированного пространства
Ключ /systemFile[:N]
отображает системные файлы, которые обычно не видны в файловых менеджерах:diskusage /systemFile:15 /humanReadable
Результат команды на картинке↓ В отчет входят служебные файлы NTFS, включая $MFT
и $UsnJrnl
. В целом очень похоже на вывод: fsutil volume allocationreport C:
Этот ключ также закрыл вопрос с теневыми копиями, которые утилита изначально могла отображать только при запуске от имени системы. Пути вида C:\{GUID}{GUID}
— это теневые копии. Вроде, это первая комплектная утилита, которая показывает размер отдельных теней.
Да, хотелось бы видеть папку System Volume Information
в рамках вывода самых больших папок, /TopDirectory[:N]
. Но и на том спасибо 👌
⚙️ Определение объема зарезервированного пространства
Ключ /reserved
, как и его предшественник, не срабатывает в сочетании с [некоторыми] другими. Если смотреть отдельно, быстрее всего натравить утилиту на пустую папку:diskusage C:\new /reserved /humanReadable
У меня в одной из систем объем зарезервированного пространства по сведениям утилиты отличается от цифры в параметрах на 1.5 GB. При этом он почти совпадает с объёмом первой из трёх зарезервированных областей:fsutil storagereserve query C:
В остальных тестовых системах вывод в целом соответствует значению в параметрах. Да и так известно, что резервируется около 7 GB. Но такие разночтения не повышают доверие к результатам.
🔗 Переход по символическим ссылкам и соединениям
Изначально это было поведением по умолчанию, а выключалось оно ключом /skipReparse
. Я отметил, что логично было сделать наоборот.
Действительно, впоследствии стали игнорировать символические ссылки и соединения, для явного перехода по ним добавили ключ /reparse
, а ключ /skipReparse
убрали из справки.
📃 Изменения в синтаксисе
Для указания значений перешли от знака равно к двоеточию. Было /TopDirectory=25
, стало /TopDirectory:25
. Впрочем, старый синтаксис пока тоже работает.
Все ключи: было | стало.
////
Я стараюсь поддерживать все материалы блога в актуальном состоянии. Вот и на сей раз #классика блога обновлена.
И да, я знаю, о чем вы сейчас думаете: "Зачем все это, если есть TreeSize, WinDirStat, Scanner и т.д." 🤔
Однако у встроенной консольной утилиты есть два неоспоримых преимущества:
🔹 работа в огороженной системе, где нельзя просто взять и скачать стороннее ПО
🔹 дистанционная помощь без лишних телодвижений: "выполни команду - покажи результат"
Сегодня у меня для вас #рекомендация — два полезных канала для системных администраторов:
📚 infosec — Литература для системных администраторов и ИБ специалистов любого уровня и направления. Читайте, развивайтесь, практикуйте.
👨🏻💻 Social Engineering — Авторский Telegram канал, посвященный информационной безопасности, OSINT и социальной инженерии.
🙄 Про Microsoft PC Manager
- Вадим, почему вы ничего не пишете про новую утилиту от Майкрософт? Уж поинтереснее чем этот ваш американский футбол, хе-хе.
- Да ладно... чем интереснее-то?
- Ну... это же официальное приложение для оптимизации системы.
О, да! Теперь этот образчик унылого китайского софтостроения получил перевод на другие языки и стал "официальным" 🤦♂️ На самом деле я оставлял краткий отзыв в чате. Но раз у читателей есть интерес, расставлю точки над i в канале.
🔹 UI/UX
Убогий "телефонный" вид окна без возможности изменить его размер. В режиме очистки даже не видно целиком названий элементов.
🔹 Защита
Четыре элемента из шести ссылаются на функции ОС или дублируют их. В остатке - восстановление панели задач непонятно от чего и блокировка всплывающих окон в (магазинных?) приложениях.
🔹 Хранилище
Очистка диска частично дублирует встроенный контроль памяти (storage sense). Единственный бонус - удаление кэша RDP и сторонних предложений. Там же поиск больших файлов в проводнике и переход в тот же контроль памяти, который я всем советую поставить на автомат и забыть про очистку 👈
🔹 Приложения
Две функции дублируют диспетчер задач, еще две - открывают страницы параметров.
🔹 Инструменты
Солянка из ярлыков на функции системы и всякую ерунду в интернете.
🔹 Smart Boost
Есть еще такое чудо. Оно автоматически удаляет временные файлы, если их больше 1 ГБ, дублируя контроль памяти. А также непонятно что делает с RAM. Наверное, очищает кэшированную память, чтобы ухудшить производительность приложений. Подкину отзыв Руссиновича из книги Windows Internals на такой класс оптимизаторов. И добавлю скучные ссылки на его же статьи о преодолении границ физической и виртуальной памяти.
❌ Резюме
Удалено сразу после ознакомления ✌️
🪚 О скорости выпиливания устаревших функций из Windows
Недавно в чате PowerShell я упомянул, что в октябре 2023 года VBScript присвоили статус deprecated (смысл термина я объяснял ранее). Встречный вопрос был: "А когда уберут совсем?" Дату не объявляли, но можно сделать осмысленный прогноз, опираясь на историю аналогичных фич.
ℹ️ Microsoft с 2015 года ведет список устаревших функций Windows. Поэтому там есть и уже удаленные из системы компоненты, хотя для них предусмотрена отдельная страница.
В списке вперемешку идут корпоративные и потребительские функции. Это разделение отчасти условное, но понятно, что Windows To Go не позиционировалась для дома в отличие от Print 3D. В менее очевидных случаях можно прикинуть, широко ли используется компонент для административных и/или потребительских задач в организациях 👈
В случае с VBScript самим разработчикам Windows для начала нужно разобраться со скриптами, входящими в поставку системы. Сразу приходит в голову slmgr.vbs
для управления активацией. Но помимо него в ОС из коробки еще добрый десяток скриптов VBS 🤔
Не влияющие на бизнес приложения и технологии убирают быстрее. В сентябре 2023 года я разбирал уникальные фичи WordPad, когда ему присвоили статус deprecated. Не прошло и четыре месяца, как приложение полностью убрали из сборки 26040 канала Canary 👀
Удаляя корпоративные функции, можно много чего сломать в организациях, поэтому подход более взвешенный. Иногда дату окончательного удаления объявляют заранее, как в случае с диагностическими пакетами (MSDT). Из статей базы знаний их стали убирать еще в 2019 году, устаревшими объявили в январе 2023, а удаление платформы из системы назначили на 2025.
👉 Для оценки оставшейся жизни VBScript неплохой моделью будет утилита wmic
:
• 21H1 - объявлена устаревший в клиентской Windows (в серверной еще в 2016)
• 22H2 - стала компонентом по требованию, включенном по умолчанию
• 24H2 - компонент по требованию будет выключен по умолчанию
• ???? - полное удаление
Таким образом, от объявления утилиты wmic
устаревшей до ее полного удаления пройдет не меньше четырех лет. И ведь её относительно несложно заменить в скриптах командлетом PowerShell Get-CIMInstance
.
Зависимость бизнеса от VBScript куда сильнее. И затраты на переписывание скриптов более существенные. Поэтому предположу, что его выпилят полностью не раньше чем через 4-5 лет после объявления устаревшим ✌️
▶️ PowerShell: выборка в Get-ChildItem
-LiteralPath
vs. -Path
vs. -Filter
На прошлой неделе я показывал исследование путей вида \\?\GLOBALROOT\device
в #PowerShell с помощью командлета Get-ChildItem
(он же gci
, dir
, ls
). Параметр -LiteralPath
передает пути в API "как есть", и для такого странного пути это вполне понятно.
Но есть менее очевидный и, наверное, более распространенный случай - квадратные скобки в именах файлов и папок.dir -Path C:\[ab]folder
Такая команда не найдет папку с именем [ab]folder
, нужен -LiteralPath
.
Параметр -Path
обрабатывает [ ]
как часть регулярного выражения, пытаясь найти afolder
и bfolder
. Можно избегать этого бэктиками, но там свои подводные камни. Когда имя папки точно известно, проще использовать -LiteralPath
.
👉 Также -Path
поддерживает подстановочные символы *
и ?
, что очень удобно для быстрой выборки по имени и/или расширению:dir -Path *.txt
По странному совпадению на днях я столкнулся одновременно с *
и [ ]
. Искал мои рецензии на статьи, где я добавлял в начало имени файла свои инициалы: [VS] blah-blah.docx
. Без задней мысли я ввел в консоль:dir '[VS*' -Recurse
И получил ошибку синтаксиса ❌ Параметр -Path
тут не указан, но подразумевается, поскольку это первый позиционный параметр командлета. И по умолчанию он обрабатывает текущую папку. Параметр -LiteralPath
тоже не подходит. Он не работает с подстановочными символами, а для выборки мне нужен *
.
ℹ️ На помощь пришел параметр -Filter
. Он есть у 20+ командлетов, которые взаимодействуют с поставщиком FileSystem. Строка с путём фильтруется на уровне файловой системы нежели обрабатывается в PowerShell, поэтому такой запрос считается наиболее эффективным. Однако в данном случае важнее поддержка подстановочных символов *
и ?
.
✅ Такая выборка отлично сработала:dir -Filter '[VS*' -Recurse
Покопавшись в канале, я нашел упоминание этого параметра в загадке PowerShell четырехлетней давности. Желаю удачи в поисках разгадки! 😎
⚙️ Как получить доступ к служебному разделу, не изменяя его свойства - дубль 2
Сегодня в рубрике "Возвращаясь к напечатанному" альтернатива способу, который я показывал пару месяцев назад. Там для выборки в #PowerShell я взял атрибут служебного раздела (GUID). Сегодня я покажу, как обойтись без него.
Неудачная попытка Microsoft обновить среду восстановления вынесла на берег множество безумных конфигураций. Именно такую принёс мне в блог читатель Александр, см. картинку↓ 👀 Здесь на дисках 3 и 4 установлены Windows 10 и 11 соответственно.
Первичным анализом я установил, что в обеих ОС на диске 4 зарегистрирована среда восстановления от Windows 11, а шифрование BitLocker не используется. Поэтому мой совет был не морочить себе и другим голову и скрыть обновление Windows 10. Но читатель оказался перфекционистом 🦩 Он заявил, что отключал все диски кроме 3 (с Windows 10), увеличивал раздел со средой, но так и не смог установить обновление.
Действительно, в конце обоих дисков есть какие-то разделы без букв. При этом на диске 4 нет пометки "Раздел восстановления". Значит, ему не присвоены правильные атрибуты, что ставит под сомнение грамотность действий читателя 🤔 Я хочу проверить, есть ли на диске 3 файл winre.wim
, раз он там якобы включал среду.Get-ChildItem -Force -Recurse -LiteralPath \\?\GLOBALROOT\device\harddisk3\partition4\Recovery
Get-ChildItem -Force -Recurse -LiteralPath \\?\GLOBALROOT\device\harddisk3\partition3\Windows\System32\Recovery
Get-ChildItem -Force -Recurse -LiteralPath \\?\GLOBALROOT\device\harddisk3\partition3\Recovery
Вы могли видеть такие пути в выводе команд reagentc /info
и vssadmin. Они глубоко уходят корнями в пространства имён NT и хорошо просматриваются в утилите WinObj от Sysinternals.
Первая команда показывает содержимое раздела восстановления (номер 4), обходя отсутствие назначенной ему буквы. Вот мы и получили доступ к служебному разделу, не изменяя его атрибуты! 🎉
Раздел с RE - просто пример. Вот конфигурация загрузки на разделе EFI - в разметке GPT он первый:Get-ChildItem -Force -LiteralPath \\?\GLOBALROOT\device\harddisk0\partition1\EFI\Microsoft\Boot
ℹ️ Вторая и третья команды исследуют раздел 3 (ОС) на диске с Windows 10. Причем даже в том случае, если человек будет выполнять их из Windows 11! В этом отличие от пути с буквой диска или переменной среды. Здесь параметр -LiteralPath
обрабатывает путь "как есть", передавая его в API напрямую. Заметьте, что с тем же путем параметр -Path
ничего не выдаст.
В итоге на диске с Windows 10 файла winre.wim
не нашлось . Поэтому мой совет перфекционисту был извлечь образ из дистрибутива и зарегистрировать на выделенном разделе. Так, пройдя пять стадий принятия неизбежного, читатель последовал моему совету и... у него все получилось ✌️
🔁 Новое в блоге: FAQ по Windows RE и ошибке 0x80070643 при установке KB5034441
С лета прошлого года я изучаю попытки Microsoft незаметно обновлять образ WinRE в Windows 11. Материала уже набралось на статью блога, но я не спешил публиковать ее. Практического смысла немного, а теория неинтересна большинству.
Однако из-за проблемы с январскими обновлениями появился повод обсудить эту тему, хотя немного с другой стороны. Поэтому я отвечу на основные вопросы про раздел WinRE и ошибку обновления среды восстановления.
👉 Вкратце
Есть два осмысленных подхода к решению этой проблемы с обновлением:
🔹Скрыть обновление, если вы уверены в отсутствии шифрования BitLocker и не планируете его включать.
🔹 Увеличить размер раздела со средой восстановления при наличии шифрования BitLocker, затем установить обновление.
Перфекционисты в любом случае выбирают второй вариант.
📃 FAQ
Почему возникает ошибка?
Почему на Windows 10 ошибка возникает не у всех?
Точно ли Windows 11 22H2+ не подвержена уязвимости?
Надо ли беспокоиться, если не используется шифрование BitLocker?
Почему Windows RE размещают на отдельном разделе?
Как поступить, если среда восстановления на зашифрованном разделе с ОС?
Без шифрования надо ли беспокоиться, если среда на разделе с ОС?
Как определить, находится ли Windows RE на отдельном разделе?
Почему у меня два раздела восстановления?
Почему теперь раздел WinRE справа?
Почему при установке обновлений не увеличивают раздел WinRE автоматически?
Почему не всегда возможно автоматически увеличить раздел WinRE?
Как увеличить размер раздела WinRE вручную?
Как скрыть проблемное обновление?
Как автоматизировать обновление образа WinRE на устройствах без WU/WSUS?
Что еще почитать по теме?
✅ Читайте ответы в блоге https://www.outsidethebox.ms/22242/#faq
Спасибо, что читаете мой канал 👍 С наступающим новым годом! 🎄 Продолжим в следующем году ✌️
Читать полностью…⚙️ Диагностика проблемы с созданием файлов загрузки в разметке GPT
Сегодня в рубрике "Возвращаясь к напечатанному" #классика блога про восстановление загрузки в разметке GPT. В тот раз, получив ошибку bcdboot
при создании загрузки, я зрительно определил помеху - "лишний" раздел EFI на другом диске. Но не всегда причина очевидна.
Недавно в чат поддержки пришёл человек с проблемой загрузки. У него был подключен только один диск. Но даже после пересоздания раздела EFI команда завершалась ошибкой Сбой при копировании файлов загрузки.
👉 На такой случай у bcdboot
есть ключ -v
, выводящий подробный ход операции. И сразу стало видно, что не найден файл c:\Windows\Boot\PCAT\bootmgr
↓
Утилита же не берет файлы из воздуха. Для создания конфигурации загрузки она используют в качестве источника оффлайн систему. В папке PCAT
также не было еще нескольких файлов. Когда их скопировали с другой системы, bcdboot
отработала как положено.
Впрочем, это не решило исходную проблему, потому что в ОС не оказалась множества других ключевых файлов. Но это уже другая история ✌️
🛜 О пользе чтения документации
Прочитав предыдущий пост, читатель JustDj
опроверг проблему своим файлом ответов (ФО), однако воспроизвел с моим. Различий между файлами было много, но я сфокусировался на разделе OOBE - у меня там на шесть параметров меньше. Основными кандидатами я назначил:<SkipUserOOBE>true</SkipUserOOBE>
<SkipMachineOOBE>true</SkipMachineOOBE>
<NetworkLocation>Work</NetworkLocation>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
Первые два давно не поддерживаются, третий относится к более позднему этапу установки, а четвертый - к беспроводной сети, судя по названию.
Методом половинного деления быстро выяснилось, что SkipMachineOOBE
действительно пропускает экран подключения к сети. Но также работает и HideWirelessSetupInOOBE
, хотя у меня установка блокировалась на экране проводной сети 🤔
Что ж, полез в документацию, а там в конце страницы примечание: Despite the name, the Network page will be skipped if the computer has a wired connection to the internet 😎 Так и назвали бы параметр HideNetworkSetupInOOBE :)
⚙️ Также в предыдущем посте особо внимательные читатели могли заметить на экране OOBE кнопку установки драйвера сетевой карты. Ее добавили в октябрьскую сборку 25977 канала Canary. Сообщество отреагировало прекрасной картинкой↓ 💯
Я не очень представляю массовый сценарий, когда компьютер отвечает системным требованиям Windows 11, но сетевая карта не определилась из-за отсутствия драйверов. Возможно, это для кейса "мобильный модем в африканской деревне".
Так или иначе, это еще один повод напомнить про мою подборку рабочих способов установки ОС с локальной учетной записью ✌️
⬇️ О Media Creation Tool (MCT) и размере установочного образа Windows
В установочных дисках Windows применяется два формата образа - WIM и ESD. Второй можно получить, указав при экспорте в DISM уровень сжатия /compress:recovery
. При этом используется алгоритм LZMS нежели XPRESS (дефолт) или LZX (/compress:max
), но основную экономию места дает непрерывный архив 🤐 Поэтому ESD нельзя подключить в отличие от файлового WIM.
Традиционно в ISO - install.wim
, а в MCT формат образа поначалу менялся. Как-то раз даже просто поменяли расширение ESD на WIM. Но уже давно у MCT устаканился формат ESD. И дело тут было не только в экономии трафика, но и в способности уместить образ Windows на флешку FAT32.
ℹ️ В теории загрузиться можно и с флешки NTFS, но устройство должно поддерживать такую возможность. Пока это нормой не стало. А поскольку МСТ - универсальное средство для огромной пользовательской базы, годится только FAT32, т.е. образ не должен превышать 4 GB.
⌛️ До поры до времени всё шло хорошо. Даже WIM образы были небольшие, и у Microsoft получалось уложить их в 4 GB при выпуске новой версии Windows. Но дальше в них интегрировали ежемесячные обновления, что вело к увеличению размера образа и превышению предела. Я рассказывал в блоге о том, как обойти ограничение 4 GB еще в 2018 году, когда сам впервые наступил на грабли. Одно из решений - разделить WIM на несколько SWM файлов. Программа установки сама с этим разберется ✅
Формата ESD проблема 4 GB не касалась вплоть до выпуска Windows 11 23H2. Но в день релиза выяснилось, что доступен только свежий ISO, а в MCT скачивается предыдущий образ 22H2 👀 В английском ISO файл install.wim
стал на целый гигабайт больше, чем годом ранее!
• 4.51 GB в 22H2 v1 (октябрь 2022)
• 4.71 GB в 22H2 v2 (май 2023)
• 5.51 GB в 23H2 (октябрь 2023)
Трудно поверить, что всего 4 года назад разработчики Windows отключили бэкап реестра ради экономии на спичках 🤦♂️
Такой большой образ даже сжатие recovery уже не могло уместить в 4 GB! И тут же проскочила новость, что инженеры Microsoft работают над уменьшением размера образа. Но нельзя же просто взять и выкинуть какие-то файлы. Поэтому они пошли проверенным путем - распилили образ ESD на два файла SWM. Пока на два:)
👉 Но есть нюанс © Разделение на SWM происходит только в случае, когда с помощью MCT вы сразу создаете установочную флешку. А если делать ISO, единый install.esd
превышает 4 GB (у английской 23H2 - 4.7 GB). То есть уже не получится подключить этот ISO и скопировать с него файлы на флешку FAT32.
Замечу, что в связи с огораживанием загрузки ISO/MCT, в РФ набрали популярность различные обертки MCT. Но, скажем, в MediaCreationTool.bat вас ждет тот же нюанс.
Морали здесь особой нет. Но есть предупреждение. И совет - в любой непонятной ситуации делите WIM на SWM ✌️
Наступило время выгодных покупок 🛍
Все, что вам нужно сделать — это применить промокод 💜 приятный 💜
С ним выгода 5 000 рублей на первый заказ от 30 000 рублей на категории:
🛍 Компьютеры и комплектующие
🛍 Электроника
🛍 Игровые приставки и консоли
И на многое другое: https://clck.ru/36sABz
Правила применения промокода тут.
Реклама. ООО "МАРКЕТПЛЕЙС". ИНН 9701048328.
▶️ PowerShell vs. CMD: управление пользователями и группами
Читателям канала со стажем этот пост покажется знакомым, потому что я уже поднимал похожую тему в рубрике #PowerShellvsCMD. Однако там лейтмотивом была независимость команд от языка интерфейса ОС. А здесь в форум пришёл человек с просьбой помочь ему написать батник для отключения всех локальных юзеров, входящих в группу "Пользователи удаленного рабочего стола".
Он знал, как вывести всех пользователей и отключить отдельного:net localgroup "Пользователи удаленного рабочего стола"
net user "Username" /active:no
И хотел связать это воедино. Впрочем, в течение часа он сам опубликовал решение, уложившись всего в 8 строк с помощью FOR
и FINDSTR
- классика жанра!
Между тем, на #PowerShell задача легко и надежно решается в одну строку:Get-LocalGroupMember -SID S-1-5-32-555 | ForEach-Object {Disable-LocalUser -SID $_.SID}
Здесь S-1-5-32-555
- известный идентификатор группы пользователей удаленного рабочего стола. Выборка по SID в первой части конвейера позволяет не зависеть от языка системы, а во второй - исключает любые неожиданности с именами пользователей ✌️
🕑 Как определить, является ли происходящее следствием запущенного из планировщика задания
Или наоборот - как исключить задание из списка подозреваемых в каком-то поведении системы.
Серебряной пули не существует, но есть подходы.
1️⃣ Запись активности процессов
Если процесс запущен из планировщика, его родительским процессом будет taskeng.exe
. Однако он завершается после отработки задания, поэтому отследить его можно только записью. Например, с помощью WPR или Process Monitor, как в деле об автозагрузке Windows. Там из планировщика запускался промежуточный процесс, кстати.
2️⃣ Журнал событий планировщика и аудит процессов
Иногда можно косвенно определить связь по времени, когда поведение наблюдается сразу после выполнения запланированного задания. Аудит процессов помогает сопоставить время выполнения задания и запуск процесса. Однако надо держать в уме, что после — не значит вследствие.
По умолчанию история планировщика отключена, но ее можно активировать в правой панели оснастки. Это действие эквивалентно включению журнала событий Microsoft-Windows-TaskScheduler/Operational
. Именно в него пишется история планировщика.
Дальше можно смотреть в журнале событий или #PowerShell. Ниже пример отбора заданий, запущенных за последний час. Я уже разбирал в канале такую выборку с хэш-таблицей. Get-WinEvent -ErrorAction 0 -FilterHashTable @{
LogName='Microsoft-Windows-TaskScheduler/Operational'
ID='100'
StartTime=(Get-Date).AddMinutes(-60)
#TaskName='\CreateExplorerShellUnelevatedTask'
} | ft -wrap
Здесь закомментировано имя конкретного задания. Выборка по нему сработает только в PowerShell Core. Там можно фильтровать по именованным полям событий, тем самым обходясь без передачи по конвейеру в Where-Object
и ускоряя процесс.
Эти поля отображаются в XML-представлении задания↓ Помимо документации см. также мои скрипты для поиска событий аудита реестра и процессов.
Через пару дней в блоге выйдет статья, для которой я сопоставлял историю заданий планировщика и запуска процессов ✌️
❄️ TechNet Wiki - в архиве документации!
11 лет назад на MVP Open Days 💨 нас зазывали в авторы новоиспеченной TechNet Wiki под соусом “Пишите, и о вас узнает весь мир!”. На вопрос, как этому помогут фактически обезличенные записи, последовал незамысловатый ответ: “Ваши материалы будут на сайте Microsoft! И вообще, индусы и китайцы с радостью!”
👉 Архив https://learn.microsoft.com/en-us/archive/technet-wiki/
Спасибо за наводку Вадимсу Подансу - говорит, там было что-то годное про PKI.
Архив не индексируется поисковиками, а внутренний поиск еще совсем недавно был сломан примерно год. Но не уничтожили, и на том спасибо!
#Классика блога и канала по теме:
🔹 Сохраняем исчезающие блоги Microsoft MSDN и TechNet
🔹 Как найти исчезнувшие статьи базы знаний Microsoft
🔹 Архив видео Channel 9
💉 На игле
Можно сколько угодно проповедовать грамотные подходы к обслуживанию системы, но четверть твоей аудитории все равно будет чистить реестр 🙄 Однако прогресс есть - 5 лет назад таковых было аж 46%! Тот опрос был привязян к доставке пруфа, что Microsoft не поддерживает использование программ для чистки реестра. Но кого это останавливало? :)
Разумеется, иногда нужна точечная ручная зачистка реестра для устранения возникшей проблемы - например, от остатков установленных программ. Вот свежая тема форума про сломанные точки восстановления. После удаления приложений для бэкапа их фильтры остались в реестре и нарушили работу теневых копий. Это, кстати, распространенный кейс! Заметьте, что диагностика сразу ведется целенаправленно 🎯
⌛️ В 2005 году Марк Руссинович в статье Registry Junk: A Windows Fact of Life тоже разбирал случай, когда точечная очистка помогла устранить конкретную проблему. В заключении он написал, что мусор в реестре [от удаленных программ] надо принять как данное. А значит, чистильщики всегда будут входить в арсенал одержимых наведением порядка в ОС сисадминов. Здесь он наверняка имел в виду не профессию, а занятие - ведь "обычные пользователи" администрированием своих систем не утруждаются.
Последний раз я массово зачищал реестр "шампунем" лет 20 назад. Но в какой-то момент я заметил, что при удалении приложения снимок реестра сильно отличается от сделанного на момент установки. Что намекало на бесполезность мероприятия. "Шампунь" отправился на мороз ❄️ И некому было уже почистить реестр за ним ;)
В те времена еще имела смысл аргументация, что раздутый от мусора реестр, загружаясь в память, замедляет запуск системы / загрузку профиля и отнимает драгоценные килобайты RAM. А значит чистка могла хоть как-то увеличить производительность 📈 Сейчас, когда система грузится с SSD, а одна вкладка браузера забирает сотни мегабайт, говорить об этом несерьезно.
Но Марк не ошибся в прогнозе - программы для очистки реестра живее всех живых. Однако цели у них немного сместились 🕶
Платные программы разводят чайников на деньги (пользователи взломанных чистильщиков - особая каста:) Бесплатные - хорошо, если обходятся без малвари. Но они вполне могут собирать столь ненавистную целевой аудитории телеметрию и продавать данные пользователей на сторону 💰 Если этим не гнушаются крупные антивирусные вендоры, чего ожидать от программ, впаривающих продвинутым пользователям ненужную оптимизацию, которая еще и систему может сломать.
На картинке письмо, которое ввиду исключительной важности темы было отправлено всем администраторам OSZone... Через 5 лет я проведу следующий опрос. Не переключайте каналы ✌️
🐧 Акция в Отус: курс "Linux для начинающих" теперь всего за 10 ₽, вместо обычных 7000 ₽!
➡️ Запишитесь на курс сейчас: https://otus.pw/FIWY/?erid=LjN8KAny8
Познание базовых возможностей и умение работать с Linux станет ключом к успешному карьерному росту, учитывая популярность этой операционной системы в мире.
🖥 Курс включает:
- 3 модуля с видеолекциями,
- Обширные знания по основам Linux,
- Возможность обучения в любом месте с доступом в интернет,
- Тесты для закрепления полученных знаний.
Не упустите шанс обучиться под руководством эксперта по UNIX-вселенной, Андрея Буранова, и воспользоваться уникальной акцией на курс "Linux для начинающих" в Отусе.
🏈 О технологиях Microsoft в американском футболе
В это воскресенье пройдет Супербоул, финал чемпионата по американскому футболу. Игры, на которую я давно и плотно подсел в качестве болельщика. Она практически неизвестна за пределами США, хотя про Супербоул вы могли слышать. Билеты на него начинаются от $8000, ложа стоит $2.5 млн, а 30 секунд ТВ-рекламы - $7 млн. Плюс в этом году еще и Тэйлор Свифт в качестве главной болельщицы 🎉
Казалось бы, при чем тут мой канал? 🤔 Однако его тематика - Microsoft, а у этой компании есть прямая связь с национальной футбольной лигой (NFL) - планшет Surface!
Microsoft заключила первый контракт с NFL на 5 лет в 2013 году. Поначалу некоторые не разобравшиеся медийные персоны называли Surface айпэдом, что сильно напрягало Редмонд 😡 Но постепенно все приучились говорить хотя бы Microsoft tablet.
Surface - это не просто спонсорство, а важный атрибут игры. И не потому что лучший футболист всех времен и народов Том Брэди мог выместить злость на планшете. А потому что игрок на его позиции (самой важной, quarterback - распасовщик атаки), берёт в руки планшет, едва уступив место на поле защите.
📸 На Surface он смотрит фотографии расстановки игроков на поле до и после начала розыгрышей. Фото делаются с двух верхних точек стадиона - вид вдоль поля от зачетной зоны и вид поперек поля - все 22 игрока.
Да, лига настолько консервативна, что даже после 10 лет применения планшетов не разрешает видео🤦♂️ Планшет заменил черно-белые фотографии, которые отправляли термопринтеру на бровке и складывали в папку на кольцах. Есть даже эпичная история о проблемах на линии. Тогда пришлось печатать наверху и нанять курьеров из числа зрителей, чтобы они относили фото вниз и... возвращались наверх за новой пачкой 🏃♂️
Классические фотографии до сих пор в ходу, но теперь ими пользуются только деды. Планшет добавляет интерактива! Фото передаются на серверы, где обогащаются метаданными - порядковый номер розыгрыша, требуемые и реально набранные ярды. Фото можно увеличить и рассмотреть происходящее в деталях 🔍
Планшет снабжен стилусом, чтобы взаимодействовать с ним в перчатках - игры нередко проходят в холодную погоду ✍️ Поддерживается и совместная работа - можно рисовать разными цветами, обсуждая происходящее по отдельной голосовой связи.
Профессиональный футбол стремится к максимальной честности игры, и это вполне применимо к Surface. Чтобы исключить преимущество той или иной команды, все планшеты игрового дня сконфигурированы одинаково и не подключены к интернету. Лига полностью контролирует их - выдает перед игрой и забирает после.
🎬 Видео с историческим экскурсом и демонстрацией фич планшета (12 мин, EN) https://player.vimeo.com/video/521107788?h=50b869e08b
Разумеется, тренеры - главные пользователи планшета. С его помощью они дают указания игрокам по ходу игры. Ниже↓ эпизод из текущего сезона, где тренер указывает защитнику на шаблонное поведение атаки в определенной расстановке. Он говорит, что для перехвата мяча нужно просто выдвинуться перед принимающим. И прямо в следующем розыгрыше, распознав комбинацию соперника и следуя инструкциям тренера, игрок делает несколько шагов вперед и ключевой перехват 🏈
////
Моя любимая команда не вышла в плей-офф, поэтому в финале я нейтральный болельщик. Но посмотрим, что принесёт следующий сезон. Go Colts!
erid: LjN8K12ZD
В поисках надёжной корпоративной SIEM-системы в условиях импортозамещения?
Регистрируйтесь на вебинар «Импортозамещение систем безопасности: всё о MaxPatrol SIEM», который пройдёт 13 февраля в 12:00.
На этом вебинаре расскажем и продемонстрируем:
🔹 Как MaxPatrol SIEM собирает данные об IT-активах и как работает технология детальной инвентаризации.
🔹 Как MaxPatrol SIEM идентифицирует IT-активы даже в меняющейся инфраструктуре.
🔹 Как правильно подключать источники к системе.
🔹 Что из себя представляют пакеты экспертизы и правила корреляции.
🔹 Как модуль VM может расширить возможности MP SIEM по контролю уязвимостей.
🔹 Что нового в MaxPatrol SIEM 8.0 и VM 2.0.
Регистрируйтесь на вебинар «Импортозамещение систем безопасности: всё о MaxPatrol SIEM»
Реклама. ООО "ИНФРАТЕХ". ИНН 5024197250.
💣 Как администратору Windows автоматизировать рутинные задачи?
Узнайте на бесплатном практическом уроке «PowerShell — быстрый старт в скрипты» от OTUS.
💻 После вебинара вы сможете:
— Создавать простые скрипты на PowerShell для автоматизации управления Windows инфраструктурой
— Оптимизировать процессы и ускорить выполнение рутинных задач
— Улучшить свои навыки в области автоматизации и управления задачами в операционной системе Windows
👉 Занятие пройдёт 31 января в 20:00 мск и будет приурочено к старту курса «Администратор Windows». Доступна рассрочка на обучение!
🔥 Регистрируйтесь прямо сейчас, чтобы занять место на открытом уроке и получить запись: https://otus.pw/5Pa4b/?erid=LjN8KKa5L
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
⚙️ Гадание по логам: диагностика ошибки обновления Windows RE
Проблема с обновлением RE может возникать не только из-за недостатка места на выделенном разделе. Участник чата Zubastic
получил в WU другую ошибку - 0x800f0922
. На диске GPT три раздела, среда восстановления выключена. При включении:REAGENTC.EXE: образ среды восстановления Windows не найден.
При отключенной среде образ вероятно в dir /ah C:\Windows\system32\Recovery
, но стоит проверить папку \Recovery\WindowsRE
на разделах с ОС и средой, где он и оказался.
Включаем среду восстановления с логом:reagentc /setreimage /path d:\Recovery\WindowsRE /logpath %temp%\reagent.log
REAGENTC.EXE: сбой операции: 3bc3
В логе 2024-01-15 12:45:13, Info
ReAgentConfig::ReadBcdAndUpdateEnhancedConfigInfo
WinRE disabled, WinRE Guid could not be determined (0x3bc3)
Утилита не смогла прочесть BCD и определить GUID среды для конфигурации загрузки. Ведь в RE надо грузиться с помощью BCD. Этот GUID прописан в BCD (параметр recoverysequence
) и файле конфигурации RE:%windir%\system32\Recovery\ReAgent.xml
.
Короче, что-то не так с BCD. В GPT она на разделе EFI с FAT32. Но такого раздела в системе не видно, первый - какой-то NTFS на 540 MB. Zubastic
вспоминает, что конвертировал MBR в GPT.
Наверное, это бывший раздел System Reserved
. Я предлагаю отформатировать в EFI и пересоздать BCD. Теперь раздел FAT32, но bcdedit
выдает:Не удается найти данные конфигурации загрузки
.
При этом утилита открывает хранилище, если указать прямой путь. Система тоже грузится 🤔
Дальше автор вопроса гуглил уже сам и вышел на неверный идентификатор раздела. Оказалось, он просто отформатировал раздел в FAT32. Поэтому сохранился старый ИД!
👉 В блоге и доках скрипт diskpart
создает раздел EFI, тем самым назначая правильный ИД, затем форматирует:create partition efi size=100
format quick fs=fat32 label="System"
Идентификатор (GUID) здесь соответствует EFI.DISKPART> det par
Partition 1
Type : c12a7328-f81f-11d2-ba4b-00a0c93ec93b
Hidden : Yes
Required: No
Attrib : 0X8000000000000000
Offset in Bytes: 1048576
Как только первому разделу задали этот ИД, bcdedit
выдала все как надо. А с reagentc
получилось задать расположение образа среды восстановления на последнем разделе и включить ее ✌️
⚙️ Новое в блоге: Как предотвратить автоматическую установку приложений из магазина Windows
Сегодня в рубрике «Возвращаясь к напечатанному» приложения, которые прилетают в систему после установки Windows в отличие от применяемых из образа. Строго говоря, я покажу не предотвращение установки, а автоматическое удаление сразу после нее. Зато этот способ подходит для любых приложений и даже поддерживается ;)
Когда в Windows 11 23H2 всем пропихнули приложения Dev Home и новый Outlook, отключение диспетчера доставки содержимого проверенными твиками уже не решало вопрос. Новые твики в итоге обнаружили. Но это же надо ждать, искать их…
Я хочу предложить свой подход к решению задачи в соответствии с девизом блога на примере удаления трех приложений: Dev Home, Outlook for Windows и Яндекс Музыка.
➡️ Читайте в блоге: https://www.outsidethebox.ms/22217/
↩️ О возврате к предыдущей версии Windows
Читатель WindR
обновил Windows 10 до Windows 11 путем установки поверх и получил нерабочую систему. Загрузиться удавалось только в безопасный режим с поддержкой командной строки. Иначе после ввода пароля черный экран, а дальше ничего не запускается, даже диспетчер задач.
ℹ️ К предыдущей версии можно откатиться в течение 10 дней, либо продлить окно до 60 дней пока поезд не ушел. Вернуться можно не только из GUI, но и из командной строки (см. также документацию):DISM /Online /Initiate-OSUninstall /Quiet
Но команда завершилась ошибкой - отсутствуют файлы. Вероятная причина открылась мне позже.
👉 Однако папка Windows.old была на месте и не пустая, поэтому я предложил попробовать ручной откат.
Судя по всему, это давно не поддерживается, поскольку автоматизировано с DISM. Из базы знаний Microsoft даже убрали статью про это времен Windows 7. Но благодаря усилиям Вадимса Поданса, статью можно найти. Запрос windows.old
выдал две, искомая - KB971760: https://mskb.pkisolutions.com/kb/971760
📃 Загрузившись в среду восстановления, вместо возни с консольной командой move
читатель переместил папки в Total Commander, запущенном с флэшки. Алгоритм простой:
1. Во временную папку переместить новые Windows, Program Files, Users и скрытую ProgramData.
2. Из Windows.old такие же папки скопировать или переместить в корень диска.
В общем, так и устанавливается Windows - применяют WIM с этими папками к диску. В статье также чинят затёртый загрузчик. Но при обновлении с Windows 10 до 11 это не нужно.
После этих действий удалось загрузить предыдущую систему, но она оказалась неполной - не хватало программ 🤷♂️ Оказывается, для обновления было недостаточно места, и читатель воспользовался советом программы установки перенести файлы на внешний диск. Однако в итоге недостающих файлов там не оказалось - возможно, в конце обновления установщик их удалил.
Там было еще много плясок с бубном вокруг установки Windows 10 поверх полуживой системы. И в итоге все получилось! Стесняюсь спросить, какие планы насчет апгрейда до Windows 11 😎
Сегодня у меня для вас #рекомендация — два полезных канала для системных администраторов:
📚 infosec — Литература для системных администраторов и ИБ специалистов любого уровня и направления. Читайте, развивайтесь, практикуйте.
👨🏻💻 Social Engineering — Авторский Telegram канал, посвященный информационной безопасности, OSINT и социальной инженерии.
⚙️ Про установку Windows 11 с локальной учетной записью при помощи файла ответов
Я давно опубликовал в блоге простой файл ответов (ФО) для быстрой автоустановки Windows. Прописав в нём локальный аккаунт, вы автоматически обходите требование использовать учетную запись Microsoft (MSA). Но есть нюанс ©
При наличии интернета всё идёт по плану. А когда его нет, программа установки Windows 11 упирается в такое окно↓ Да, это можно обойти тем же BypassNRO. Но ФО предназначен для автоматизации установки. То есть без интернета он уже не работает как положено 🤦♂️
По сути интернет им нужен только для форсирования учетной записи Microsoft (MSA), которая прописана в системных требованиях изданий Home и Pro. И можно предположить, что в них по логике Microsoft нечего файлом ответов баловаться и интернеты отключать ❌
Но в корпоративных изданиях точно такая же ситуация! И параметр ФО для пропуска этого окна как минимум не задокументирован. Поэтому на самом деле логика здесь "и так сойдет"👌
Отсюда мораль - если используете файл ответов, не отключайте интернет, хотя бы на этапе OOBE.
▶️ Бонус: в процессе установки вы можете управлять подключением к интернету с помощью синхронных команд и #PowerShell:Get-NetAdapter -Name * | Disable-NetAdapter -Confirm:$False -WhatIf
Get-NetAdapter -Name * | Enable-NetAdapter
💩 О современных "хороших" г-сборках
Читатель Андрей не смог пройти капчу в чате, пришел в личку за разъяснениями и получил ссылку на пост о г-сборках . В дальнейшей переписке он поднял вопросы дистрибутивов, в которых сделан минимум якобы безобидных и полезных изменений.
Например, в сборку только интегрированы последние обновления. Ну ладно, оказывается еще включен .NET Framework 3.5 и вырезаны магазинные приложения. И все равно читатель считает такую сборку хорошей и полезной 🙄
Но такая г-сборка точно не нужна вам, читателям моего канала и блога, где помимо прочего тема подготовки дистрибутива поднимается регулярно.
🤷♂️ Интеграция обновлений от сборщика - не имеет смысла
Microsoft ежемесячно обновляет дистрибутивы для организаций (aka "образы MSDN"), интегрируя туда последние накопительные исправления (CU). К сожалению, с потребительскими образами MCT и ISO компания скатилась до полугодовых обновлений (в октябре у Windows 11 были майские образы). Для них интеграция обновлений еще может иметь смысл. Но тогда уж вместо г-сборки проще взять с того же трекера свежий и не подвергавшийся изменениям образ MSDN.
Вообще, пытаться укрепить безопасность руками г-сборщика как-то странно. Вы настолько доверяете ему? Что ж, полно таких доверчивых людей, но... 🙈 Некоторые "мастера" не только ставят обновления, но и чистят после них, причем сторонними инструментами. Это еще одно ненужное и потенциально деструктивное действие.
В любом случае последний CU можно установить сразу после установки ОС. Если для вас такой уровень безопасности слишком низкий, интегрируйте динамические обновления самостоятельно. Microsoft вам даже скрипты подготовила!
🔓 Установка .NET Framework 2.0-3.5 - увеличивает поверхность атаки
Да, ежемесячно выходят исправления .NET 3.5 + 4.х. Но зачем прорубать в стене окно, чтобы защищать его шторами? Г-сборщик внедряет .NET 3.5 для неких масс, но так ли они широки и входите ли вы в их число – большой вопрос.
Мне .NET 3.5 уже много лет не нужен, это для очень старого ПО, от которого надо избавляться. Если что, он сам предложит установиться с WU.
✂️ Вырезание магазинных приложений – лишает контроля над набором фич
Если у вас нет приложений, вы можете не осознавать их пользы. Я вижу, что люди активно используют Snipping Tool - теперь и с записью видео, ваш телефон, фотографии, Paint в конце концов - уже и со слоями:) ОК, я даже слышу как вы кричите - мне они все равно не нужны!!!111
Но почему вы позволяете сборщику решать, можно вам ими пользоваться или нет? И уверены ли вы, что он не вырезал лишнего? 🤔
Реально ненужное элементарно удаляется с сохранением полезных приложений. Если вы читаете мой блог, точно справитесь с парой команд. При этом вы полностью контролируете ситуацию.
👉 Отсутствие контроля над дистрибутивом - недальновидно и рискованно
Выше я не случайно говорю о доверии и контроле. Я считаю целостность дистрибутива основополагающим фактором. Я сам никогда буду и вам категорически не советую устанавливать систему, в которой кто-то ковырялся.
Используя Windows, вы автоматически доверяете Microsoft, даже если отрицаете это :) Вы также вполне можете доверять квалификации и репутации г-сборщика. Но надо понимать, что его методы и контроль качества сборки кустарны. А он сам и используемые им инструменты подвержены компрометации и технически более уязвимы к ней, чем Microsoft.
✅ Итого
Вы можете выполнить одну-две команды в официальном дистрибутиве, но вместо этого берете г-сборку, в которой кто-то устанавливал обновления и чистил после них, внедрял старые фреймворки, удалял пакеты. И при этом считаете себя опытным пользователем? Тогда у меня для вас плохие новости ✌️
erid: LjN8KCX32
В поисках надежного корпоративного файрвола следующего поколения в условиях импортозамещения?
Регистрируйтесь на обновленный практический вебинар «Импортозамещение сетевой безопасности: всё о UserGate». Начинаем 12 декабря в 12:00.
Мы покажем, как на UserGate:
🔹 разграничивать доступ пользователей
🔹 контролировать приложения и сайты
🔹 поднять отказоустойчивый VPN
🔹 внедрить многофакторную аутентификацию
🔹 настроить сбор и анализ логов для отчётности
🔹 разберем новые возможности версии UserGate 7.1
🔹 Подробно расскажем о UserGate Client и SIEM Light.
Регистрируйтесь на вебинар: «Импортозамещение сетевой безопасности: всё о UserGate»
Реклама. ООО "ИНФРАТЕХ". ИНН 5024197250.