sterkin_ru | Блоги

Telegram-канал sterkin_ru - Windows 11, 10, etc - Вадим Стеркин

14409

Авторский канал. Windows, безопасность, мобильный мир: • тайное знание • профессиональный ликбез • гадание по логам • срыв покровов • доставка пруфов Чат: @winsiders Блог: outsidethebox.ms Oбратная связь: @vsterkin Поддержать ₽: boosty.to/sterkin

Подписаться на канал

Windows 11, 10, etc - Вадим Стеркин

🔍 Расследование: кто перезагрузил 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


2️⃣ Выясняем, какие процессы это вызвали - событие 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.


3️⃣ Проверяем связь с планировщиком - поиском по части имени файла 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\


4️⃣ Но это еще не всё! Надо определить, был ли в это время выполнен вход пользователя в систему. Ведь политика должна предотвращать перезагрузку только в этом случае.

Здесь фильтруем события входа и выхода, затем ищем нужные по части SID - 1001 в конце у администраторов.

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....

Событие 4647! Выход четко совпадает по времени с выполнением запланированного задания оркестратора. Указано, что пользователь инициировал выход, но это издержки регистрации в журналах. По факту он стал неактивен, не отреагировал вовремя на уведомление о перезагрузке, и его выход форсировали.

////

☑️ Итак, мы однозначно определили, что перезагрузку выполнил оркестратор обновлений, проигнорировав групповую политику и завершив пользовательский сеанс.

В Windows 10 политика NoAutoRebootWithLoggedOnUsers продолжает выполнять свою функцию. А в Windows 11 уже нет поддерживаемого способа предотвратить форсированный перезапуск после установки обновлений. Единственный обходной путь - ручное планирование перезагрузки, что позволяет отложить ее максимум на неделю ✌️

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

Бесплатно мигрируй в облако Serverspace 🔄

Мы поможем вам бесплатно мигрировать от другого провайдера и предложим скидку -30% на первый месяц!

VPS, GPU, S3, Удаленный рабочий стол и многое другое - уже в панели управления Serverspace!

▪️ Удобный калькулятор для расчёта стоимости
▪️ 9 дата-центров по миру
▪️ Безлимитный трафик
▪️ Поддержка 24/7

Сделаем переход в Serverspace комфортным:

1️⃣ Рассчитаем затраты и подберем оптимальную конфигурацию под ваш проект
2️⃣ Поможем перенести вашу инфраструктуру в облако бесплатно
3️⃣ Подарим -30% на месяц с промокодом VPS30

Миграция ещё никогда не была такой простой и выгодной!
📲 Начать переход

Erid

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

Математика — фундамент технологического прогресса.

Образовательный проект Popmath подготовил 4-х месячные онлайн-курсы для взрослой аудитории для всех, кому важно осмыслить математику, а не просто заучить набор формул.

На ваш выбор два курса:

📍Математика для взрослых: для желающих получить прочную математическую базу. Предварительные знания не требуются.
📍Линейная алгебра: для тех, кто хочет разобраться в предмете поглубже и выйти за рамки базовых знаний математики.

🔆 Формат курсов:
- 16 лекций и 16 семинаров через Zoom
- обратная связь с преподавателями в Телеграм
- яркие 2D- и 3D-анимации для лучшего восприятия материала

Старт групп: середина марта

По всем вопросам вы можете писать @popmath_support

Реклама. ИП Пясецкая Наталья Игоревна
ИНН 773714262272
erid: 2Vfnxxh86AC

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

Сегодня у меня для вас #рекомендация — два полезных канала для системных администраторов:

🔐 infosec — один из самых ламповых каналов для системных администраторов и ИБ специалистов, где говорят об истории ИТ, публикуют актуальные новости и пишут технический материал на разные темы.

👨‍💻 Вакансии в ИБ — актуальные предложения от самых крупных работодателей и лидеров рынка в сфере информационной безопасности.

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

😎 Знакомая прислала скриншот веб-редактора аудиофайлов

- какую кнопку нажать, чтобы выйти из этого режима?
- Esc
- сын то же самое сказал, не срабатывает... очень много работы сделала(((
- в смысле боишься потерять?
- да, уже было такое
- перетащи туда файл
- я никогда так не делала
- повод попробовать :)
- ура!!!

Я уже вижу, как вы прониклись чувством превосходства над неопытным пользователем :) Но в этой истории есть отличная мораль. В любой непонятной ситуации следуйте указаниям на экране! А внимательно читать и анализировать написанное - это высший пилотаж ✌️

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

🕒 Как получить сведения о запланированном задании в 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


Задание синхронизации языковых настроек включено.

2️⃣ Сведения о последним запуске задания - 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 - неудачу, остальное надо смотреть по коду.

⏩ На практике задачи 1 и 2 чаще объединяются в конвейер. Причем можно сходу фильтровать по неполным именам нескольких заданий, обходясь без Where-Object.

Get-ScheduledTask -TaskName *backup*,*sync* | Get-ScheduledTaskInfo | fl TaskName,LastRunTime


3️⃣ Параметры задания - Export-ScheduledTask

Export-ScheduledTask -TaskName '\Microsoft\Windows\International\Synchronize Language Settings'


Выводится XML, как в экспорте задания из планировщика. PowerShell легко перемещается по узлам.

[xml]$task = Export-ScheduledTask -TaskName '\Microsoft\Windows\International\Synchronize Language Settings'
$task.Task.Triggers.LogonTrigger.Delay

PT30S


Задание отложено на 30 секунд после входа в систему.

////

Создание запланированного задания в #PowerShell будет посложнее. Я показывал это в блоге, в том числе в сравнении с утилитой schtasks. Бывает проще импортировать подготовленный XML. Пример уже был на канале ✌️

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

🔁 Новое в блоге: Нюансы восстановления параметров и приложений из современного бэкапа Windows

Мой товарищ устанавливал систему на новенький Surface, и его заинтриговала возможность восстановить настройки и файлы со старого ПК уже в процессе установки. Правда, не прошло и полчаса, как его постигло жестокое разочарование. В системе не оказалось и половины ожидаемых настроек! 😡

Эта история побудила меня вернуться к теме современного резервного копирования и восстановления в Windows. Я поднял ее осенью 2023 года разбором приложения Windows Backup, но не касался восстановления. Теперь настал и его черед.

К сожалению, похвастаться там особо нечем 🤷‍♂️ Современное резервное копирование и восстановление в Windows – это фактически обертка, в которую завернут старый, хорошо обсосанный леденец.

➡️ Читайте в блоге, как я пришел к такому выводу: https://www.outsidethebox.ms/22565/

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

💩 Тревога В действии

Здесь на панели задач сошлись все звезды:
• #автоперевод Warning in effect
коричневый оранжевый уровень опасности
• пиктограмма ветра (а не то что вы подумали :)

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

🤖 Об управлении уведомлениями Android для гиков

Думаю, вы видели у "обычных людей" ад уведомлений в шторке. Некоторым моим контактам бесполезно писать в Telegram в расчёте на быстрый ответ, потому что сообщение будет погребёно под уведомлениями десятков каналов.

⚙️ У меня, напротив, весьма специфический подход к управлению уведомлениями.

🔹 Сразу после установки приложения или его первого уведомления я отключаю все ненужные каналы.

🔹 Все важные уведомления идут на часы Amazfit Bip. A там с помощью приложения AmazFit Tools настроены разные шаблоны вибрации и отображения сообщений. Вплоть до регулярного выражения на смс/пуш банка, чтобы показывало только код подтверждения.

🔇 В результате у меня полностью отключены звуковые уведомления в телефоне. Только при звонке он вибрирует, что практически не слышно. Такой расклад повышает зависимость от часов, и у меня есть автоматизации для режима "Не беспокоить" (DND).

1. При выходе из DND часы должны чётко устанавливать соединение с телефоном.

2. Нужно предусмотреть сценарий, чтобы близкие люди могли дозвониться ночью. Разумеется, в телефоне есть приоритетный режим для избранных контактов. Но он бесполезен при полностью отключённых звуках и тихой вибрации / глубоком сне.

С первым пунктом в MIUI исторически было нестабильно. Поэтому я давно создал скрипт Tasker, который при выходе из DND запускает MiFit / Zepp и AmazFit Tools. Однако с обновлением до HyperOS это фактически перестало работать. Пришлось плясать с бубном, добавляя передёргивание Bluetooth, включение дисплея и форсирование подключения в Amazfit Tools посредством их родного плагина 🙄

С ночными же звонками всё "просто". В том же Tasker задано условие: если пропущен звонок от избранного контакта, запускай скрипт↑ И по второму звонку уже будут вибрировать часы.

Морали тут особой нет. Но есть возможности. И костыли, конечно, куда ж без них 🩼🩼 Эта тема первой пришла мне в голову, когда давеча мой друг спросил, что бы мне помешало перейти на iPhone. Впрочем, ему я рассказывать такое не стал - это же для гиков 😎

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

Спасибо, что читаете мой канал 👍 С наступающим Новым годом! 🎄 Продолжим в следующем году ✌️

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

Мало разработать хороший продукт — важно защитить его от кибератак

Регуляторы требуют повышения киберустойчивости ПО, так что навыки информационной безопасности — маст хэв для развития карьеры в разработке. Получить их можно на совместном курсе ВШЭ и Нетологии «DevSecOps: практика безопасной разработки» За 5 месяцев вы научитесь:

🛡Понимать принципы безопасной разработки, внедрять подходы SSDLC, DevSecOps.
🛡Моделировать угрозы и оценивать риски.
🛡Применять в работе инструменты безопасности — GitLab CI и ArgoCD.
🛡Разбираться в нормативных требованиях и стандартах: ISO, NIST, OWASP и других.

Вы сможете выстраивать защиту от угроз на всех этапах и получите диплом ВШЭ. Для обучения понадобятся базовые знания Linux и Python, на старте вам предложат тест и, при необходимости, выравнивающий модуль.

Используйте промокод DEVSECOPSHSE на скидку 10 000 рублей до 30 декабря ➡️ https://netolo.gy/dLXb

Реклама. ООО "Нетология". ИНН 7726464125 Erid 2SDnjcLV22w

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

⚙️ О зачистке 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 11, 10, etc - Вадим Стеркин

📢 О важности обновления 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 на виртуальной машине, с которой я снесу систему через час или день после установки, меня не беспокоит.

Варианты пропуска установки обновлений - это не вредные советы, а информация для принятия взвешенного решения. Моим подписчикам оно по плечу ✌️

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

⚙️ Ускоренная диагностика методом половинного деления

В чате 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. И это моментально сделало бы главным подозреваемым исходный образ, нежели его многочисленные модификации.

При этом не менее важно создать чистую среду в голове - абстрагироваться от лишних факторов и посмотреть на проблему с нуля. Я не так давно на разбирал ментальные помехи диагностике на своем примере. В том числе упоминал знание, что "ничего не делал". В данном случае Сергею мешало знание, что он ничего не менял в своей рутине.

В итоге можно было не гуглить и не курить логи. Вот вам и ускоренная диагностика! ✌️

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

😎 Как открыть "Мой компьютер" двойным щелчком по ярлыку

Что? Да :) Вопрос задал в чате Андрей Третьяков. Компьютер уже не "мой", а "этот". И ярлык уже по дефолту скрыт с рабочего стола (включается в Win+R - desk.cpl ,5). И все же...

Андрей заметил, что в Windows 11 не всегда открывается новое окно со списком дисков и устройств. Иногда на передний план выходит имеющееся окно проводника с последней активной вкладкой.

Я потыкал и определил, что такое поведение наблюдается, когда этот компьютер уже открыт в одной из вкладок! Убрав значок с рабочего стола, девелоперы забыли про него. С глаз долой - из сердца вон! 🤦‍♂️

Сочетание клавиш Win+E работало четко, но Андрею хотелось бы мышью. Что ж, есть пара вариантов.

🟡 Долго и неудобно: ПКМ на значке компьютера - Показать дополнительные параметры - Открыть в новом процессе. Можно сразу открывать старое меню с Shift+ПКМ, но это уже с клавиатурой.

🟢 Быстро и просто: создать новый ярлык с командой:
explorer shell:MyComputerFolder

#Классика блога про папки shell в помощь.

////

Проблема воспроизводилась в чистой установке Windows 11 24H2, но у меня ушла с ноябрьским обновлением 26100.2314. Хотя у Андрея все еще наблюдалась в декабрьском превью 26100.2454.

👉 Так или иначе, вопрос решает explorer.exe. И он регулярно приходит на выручку, когда сталкиваешься с ограничениями графического интерфейса!

Пруфы в канале:
Как закрепить произвольный файл в меню Пуск
Как добавить ярлык интернета в Пуск
Закрепляемый ярлык на любой элемент Параметров
Как создать ярлык на магазинное приложение на панели файлового менеджера
Как открыть конкретный файл в приложении, отличном от приложения по умолчанию

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

🚀 Ускорение загрузки файлов в PowerShell

Недавно я перепроверял давно опубликованный в блоге скрипт для скачивания файла с помощью #PowerShell, и слишком уж долго шла загрузка. Хочу поделиться решениями.

1️⃣ Отключение прогресса

$ProgressPreference = 'SilentlyContinue'

В принципе, эта переменная может слегка ускорить процесс и снизить нагрузку на ЦП не только при скачивании файлов. Но конкретно для командлета Invoke-WebRequest (псевдоним iwr) разница значительная! Один и тот же файл размером 175 мегабайт без прогресса у меня на разных системах скачивался от 16 до 42 секунд, а с прогрессом - от 3 до 13 минут! 🤔

У этого командлета проблема наблюдается только в Windows PowerShell 5.1, но не в PowerShell Core. Я писал об этом в канале 7 лет назад :) И недавно краем глаза где-то видел, что якобы в 5.1 уже починили. Мои тесты это не подтверждают.

2️⃣ Подстановка юзер-агента
На самом деле даже без прогресса у меня Invoke-WebRequest качал слишком долго. Я предположил, что сайт специально притормаживает отдачу, и решил прикинуться браузером.

-UserAgent "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"

После этого скорость окончательно наладилась!

3️⃣ Загрузка с помощью BITS
В Windows помимо командлетов Invoke-WebRequest и Invoke-RestMethod также можно скачивать файлы с помощью Start-BitsTransfer. Этот командлет запускает джоб с помощью службы BITS (фоновая интеллектуальная служба передачи данных). Именно ее использует центр обновления Windows.

Это не совсем про ускорение, а про альтернативы. Но в моем случае был сайт Microsoft, и родную BITS он не тормозил в отличие от 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
}


Скрипт скачивает актуальный файл сигнатур защитника Windows с этой страницы. Но учтите, что для обновления сигнатур из консоли есть методы получше ✌️

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

🌐 О приоритете записей в файле 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


👉 Получается, что Windows использует первый адрес. И Linux тоже!

Разумеется, такое утверждение нужно снабжать примечаниями. Опрос не случайно ограничивался Windows и с оговоркой в общем случае и при прочих равных. На уровне ОС возможны исключения, хотя примеров у меня нет.

📄 Несколько человек поднимали вопрос о влиянии кэша DNS. Однако в соответствии с одной из старейших актуальных статей базы знаний Microsoft, Microsoft TCP/IP Host Name Resolution Order, клиент Windows смотрит в локальный файл hosts прежде чем опрашивать серверы DNS. Кэш DNS в статье явно не упомянут, но это производная от серверов.

Сторонние же программы могут применять свой алгоритм чтения файла hosts либо вообще игнорировать его. Например, разработчикам Firefox пришлось реализовывать свой парсер hosts, чтобы он не игнорировался при использовании встроенного в браузер резолвера DoH (спасибо, dartraiden). А в Linux всегда найдется какой-нибудь дистрибутив с альтернативной реализацией 🐧

Я сам когда-то думал, что выигрывает последняя запись. Пока не столкнулся с этим по работе. У тестовых серверов поменялись IP-адреса, и я добавил новые записи в конец файла hosts. Однако рабочее приложение не смогло подключиться по доменному имени. Так и узнал ✌️

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

😎 Коммунальные услуги теперь и в вашем SSD

Говорят, пока только для москвичей ;)

Наверняка в оригинале - utilities. Основное значение слова - организации, осуществляющие поставку газа, воды и электричества потребителям. А не вот этих ваших утилит :)

Спасибо dartraiden и ԤИОНЕР за очередной #автоперевод ✌️

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

⚙️ Нюансы префетчинга приложений в Windows

Сегодня в рубрике "Возвращаясь к напечатанному" префетчинг приложений и количество записей, которые он хранит и обрабатывает.

• В 2013 году я разбирал префетчинг в рамках мифов оптимизации SSD
• В 2019 году он снова попал в фокус в статье Нюансы отключения службы SysMain в Windows

Niks спросил, работает ли префетчинг по умолчанию, когда система установлена на SSD. Да, работает, и это легко проверить по мотивам статьи про SysMain:

Get-MMagent

ApplicationLaunchPrefetching : True
ApplicationPreLaunch : True
MaxOperationAPIFiles : 512
MemoryCompression : True
OperationAPI : True
PageCombining : True


Параметр ApplicationPreLaunch - это он. Вообще, этот префетчинг еще времён XP, и по большому счету с тех пор ничего не изменилось. Однако сравнивая вывод наших команд, я заметил, что отличается значение MaxOperationAPIFiles. Это предельное количество файлов в сфере префетчинга.

🔢 В Windows 10 и ранее оно по умолчанию 256, а в Windows 11 — 512 (так же и в серверных ОС). Думаю изменение связано с тем, что сама ОС разрослась с 2006 года и запускает больше своих исполняемых файлов.

Niks интересовался, стоит ли увеличить значение до 2048. Чтобы ответить на этот вопрос, нужно:

1. Понимать, запускаются ли .EXE с жесткого диска
2. Проанализировать файлы в папке C:\Windows\Prefetch\

Я не думаю, что древний префетчинг способен ускорить запуск программ с твердотельных накопителей. Но запуск исполняемых файлов (например, игр) с жесткого диска еще может быть актуален. Для оценки можно посчитать количество файлов в папке и сопоставить с лимитом. В #PowerShell от имени администратора:

(Get-ChildItem "C:\Windows\Prefetch\*.pf" -File).Count

ℹ️ На количество файлов могут влиять разные факторы. Например, едва установив систему, вы начинаете ставить и запускать любимые приложения. Каждый установщик - это как минимум один исполняемый файл. С другой стороны, после чистой установки система сама оптимизирует себя, что может быть сопряжено с запуском различных .EXE.

Все это оседает в папке Prefetch. По достижении предела старые записи будут вытеснены автоматически, но "одноразовые" установщики и не нужны.

Если в обжитой системе вы запускаете .EXE с HDD, а количество PF-файлов близко к лимиту, может иметь смысл увеличить предельное значение.

Set-MMAgent -MaxOperationAPIFiles 1024

Так, у Niks спустя две недели после очистки и увеличения лимита в папке стало 354 PF-файла. Что превышает стандартный предел в его Windows 10, но далеко от 512 в Windows 11.

Измерить же реальный прирост скорости запуска исполняемых файлов затруднительно. Зато душу будет греть тот факт, что вы оптимизировали свою ОС не случайно найденной в интернетах подборкой твиков, а на основе грамотного анализа ✌️

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

🧹 Удаление временных файлов из служебных профилей

Недавно я анализировал недостаток дискового пространства на одной системе. Помимо прочего утилита 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.

Удаление временных файлов безвредно, причем ухищрений не требуется. В смысле не надо ломиться в системные папки как лось, меняя на ходу разрешения NTFS. Просто в #PowerShell от имени администратора:

Remove-Item -Force -Recurse -Path 'C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\E58D*'


Total Commander или FАR от админа тоже годятся ✌️

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

🙏 Мой блог https://www.outsidethebox.ms/ снова доступен. И вы можете прочесть свежую статью из утреннего анонса↑

Спасибо всем, кто сообщал о проблеме и благодарил за труды. Иногда, надо ощутить нехватку чего-либо, чтобы осознать ценность :)

Технически же от меня там ничего не зависело. Но на другом хостинге именно такого скорее всего не произошло бы. Я давно обдумываю переезд, но все никак не могу решиться. Может быть в этом году ✌️

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

🙄 О нововведениях в современной 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 11, 10, etc - Вадим Стеркин

⚙️ О параметрах программы установки 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 очень приличная и в целом поддерживается в актуальном состоянии. Да и у меня в блоге немало статей с меткой автоустановка. Приятного чтения! ✌️

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

⌨️ Как свернуть активное окно сочетанием клавиш

Вопрос в форуме был с подтекстом - сворачивание надо повесить на макрос мыши в фирменном ПО. Поэтому также подошел бы исполняемый файл - утилита или скрипт.

Автор вопроса сразу сказал, что сочетание 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 ✌️

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

🎄 Встречайте Новый 1ТП18Т!

У Microsoft очередной зачетный #автоперевод (спасибо, Дмитрий). Мы уже обсудили в чате варианты расшифровки этой аббревиатуры, но я не рискну публиковать их в канале 😎

Пусть это будет Новый год! 🎅 С наступающим вас! Пожелание тоже на картинке - "учить больше"! ✌️

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

🔒 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 и многие другие компании. Но после ввода учётной записи реализация этапов отличается. Поэтому последовательность действий надо адаптировать под каждый сервис ✌️

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

🌐 О хостинге и VPS в 2025 году

Исходя из опроса в канале, половина подписчиков пользуется VPS, а ещё 28% ощущают необходимость в личном сервере или задумываются о нем. И у меня для вас хорошая новость!

🎄Новогоднее колесо фортуны в Serverspace 🎁

Испытайте удачу и получите 1 ГОД БЕСПЛАТНОГО ХОСТИНГА в Serverspace или другие бонусы на облачную инфраструктуру ⛅️

🔹Удобная панель управления
🔸Процессоры Intel Xeon Gold
🔹ЦОДы на 4 континентах
🔸Высокий uptime
🔹Поддержка 24/7

Как стать участником акции:
1. Крутите колесо по ссылке
2. Получите письмо с подарком

*Важно: акция только для новых пользователей. Подробную информацию об условиях акции можно найти тут 📣

Serverspace - международный облачный провайдер, предлагающий автоматическое развертывание виртуальной инфраструктуры на базе Windows, Linux и российских ОС из любой точки мира менее чем за 1 минуту. Erid

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

😎 Microsoft приучает к бэкапу

На видео Windows 11 24H2 сразу после чистой установки с помощью файла ответов. Если в Параметрах переключаться на учетную запись Microsoft (MSA), при нажатии кнопки входа открывается приложение Windows Backup 🤷‍♂️

Кнопок входа в окне две, но результат одинаковый. Впрочем, повторное нажатие открывает правильный диалог аутентификации. И без файла ответов все работает правильно.

Видимо, это связано с тем, что при использовании моего файла ответов полностью пропускается этап OOBE. Но это не объясняет, почему появляется именно приложение для резервного копирования 🤔 Видимо, этот сценарий не тестировали, поскольку MSA уже стала частью системных требований.

Я разбирал приложение Windows Backup в блоге около года назад, но только в контексте создания резервных копий. Обратная сторона медали - восстановление, о чем я планирую пост в блоге в начале следующего года. Не переключайте каналы ✌️

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

💰 О фрилансе и зарубежных заказчиках

У меня был достаточно длительный опыт взаимодействия с иностранным юрлицом: ИП, валютный контроль, онлайн-бухгалтерия, налоги - вот это все.  Не так уж сложно, когда разберешься, но поначалу много вопросов. Их стало еще больше с 2022 года, по мере применения различных санкций к финансовой системе.

🤔 Теперь для такой работы требуется посредник. Но это должна быть не какая-то условная "прокладка". Нужен полноценный сервис, который связывает заказчиков с фрилансером и предоставляет тому набор сопутствующих услуг.

👉 Присмотритесь к Mellow - этот сервис снимает много вопросов:

🔹 Возможность выводить деньги на счёт ИП, банковскую карточку или электронный кошелек.
🔹 Прозрачные условия - только комиссия от суммы сделки: 5% при оплате клиента по счету или 7.5% при оплате по карте
🔹 Простая и быстрая оплата по инвойсу — заказчику не нужно регистрироваться в сервисе, при оплате картой деньги приходят моментально.
🔹 Безопасная сделка с резервированием средств на счету сервиса
🔹 Подробная документация (я всегда обращаю на это особое внимание)
🔹 Помощь с оформлением документов для налоговых органов, полный пакет: договор, счет и акт выполненных работ

✔️ Регистрируйтесь и получайте переводы из заграницы без проблем!

Реклама. Рекламодатель "FRWD Limited" erid: 2VtzqwvSkMu

Читать полностью…

Windows 11, 10, etc - Вадим Стеркин

🤷‍♂️ О сложностях регрессионного тестирования

На этой неделе в топ Хабра взлетела статья Катастрофа в российской зоне проекта NTPPool.org. Кто-то заддосил все российские серверы точного времени. Спустя три дня Яндекс сорвал покровы - это была их умная колонка 🤦‍♂️

мы подготовили обновление прошивки для наших колонок, в котором изменения в смежных с NTP‑клиентом утилитах привели к сбою в его поведении. Как мы позднее выяснили, в коде была допущена ошибка, из‑за которой колонки начинали перезапрашивать время с NTP‑серверов каждые пять секунд вне зависимости от ответа, то есть игнорировали факт корректного получения времени. К сожалению, компонент был не полностью покрыт автотестами, поэтому на этапе тестирования ошибку мы не поймали.


Я прокомментировал это в чате, но решил закинуть в канал - меня читают тестировщики :)

Обывательски - ахаха, тестировать надо лучше! Но как? Тесты не могут покрыть всех сценариев. Да это и не было проблемой - все работало годами. Однако, если вы вносите изменения в смежные утилиты, компоненту нужно провести регрессионное тестирование. То есть написать новые тесты или подтянуть имеющиеся. Вот это и не было сделано. Но почему?

У такой ситуации две вероятные причины, и они вполне могут сочетаться.

1️⃣ QA не участвовало в обсуждении нововведений / изменений. Это печальная, но очень распространенная практика. Тестировщики просто получают фичу в процессе разработки или сразу по окончании.

С гибкими методологиями разработки им уже некогда думать про общую картину. Надо быстро протестировать фичу и выпускать релиз.

2️⃣ QA и Dev плохо пронализировали влияние изменений. QA должно активно интересоваться, на что это может повлиять. И дальше уже думать, как это лучше покрыть тестами, чтобы избежать регрессии.

Для этого нужен опытный тестировщик и грамотный разработчик / лид, который знает связи и зависимости компонента, а не только свои десять строчек кода и полтора юнит-теста.

////

👉 Из моего опыта качество программного продукта выше, когда QA включается на ранних этапах - начиная с планирования и формирования требований для разработки. И никакому Agile это не противоречит. Наоборот, тестировщики лучше подготовлены к сжатым срокам тестирования, когда работают в контакте с разработчиками и аналитиками на протяжении всего цикла разработки компонента.

Более того, инженеры QA с опытом на проекте отлично выступают в качестве аналитиков. И даже формально могут занимать такие роли. Например, когда модернизирется или заменяется махровое легаси. В этом случае документация разрознена, неактуальна или отсутствует. А инженер QA по тестам, багам и своей памяти может получить хорошее представление о компонентах. Это помогает сформировать приоритеты и эффективное покрытие тестами.

Тут еще важны явные связи между требованиями, тестами и дефектами, но это уже другая история ✌️

Читать полностью…
Подписаться на канал