Когда обновление Windows парализует ваших UiPath-роботов: ловушка Patch Tuesday

Роботы UiPath без присмотра работают по ночам, Patch Tuesday тоже. Как правильно организовать окна обновлений, селекторы и оповещения, чтобы ничего не отказало незаметно.

Рисунок от руки: маленький робот неподвижно стоит с опущенной головой рядом с экраном, на котором бирюзовая стрелка перезагрузки.

Обновление Windows может остановить ваших UiPath-роботов за одну ночь так, что никто этого не заметит. Роботы без присмотра работают в те часы, когда в офисе никого нет. Именно в это окно у большинства компаний приходятся и плановые работы по установке патчей операционной системы. Утром вместо ошибки обнаруживается просто отсутствие результата.

Почему обновление Windows парализует роботов без присмотра?

Роботу без присмотра нужны три вещи, и обновление может изменить все три: работающий сеанс Windows, неизменный интерфейс целевого приложения и доступную машину.

Перезагрузка представляет собой очевидную часть процесса. Менее заметной частью является последующий вход в систему. UiPath документирует для сценариев без присмотра несколько политик Windows, которые препятствуют автоматическому входу в систему. Политика „Display information about previous logons during user logon“ создает всплывающее окно безопасности при входе и приводит к сбою робота с кодом ошибки 0x80070520; она должна быть установлена в значение Disabled. Также „Sign-in and lock last interactive user automatically after a restart“ мешает созданию сеанса и не должна быть настроена или должна быть отключена (источник: UiPath Robot, Session troubleshooting).

Когда выходят обновления? Ритм Microsoft подробно

Microsoft публикует ежемесячные обновления безопасности для Windows во второй вторник каждого месяца, обычно в 10:00 по тихоокеанскому времени. Однако тот, кто знает только эту дату, знает лишь две трети цикла.

Согласно собственному обзору Microsoft о цикле выпуска обновлений, существует три значимых триггера для незапланированных перезагрузок (источник: Microsoft Learn, Update release cycle for Windows clients):

  • Ежемесячное обновление безопасности: второй вторник месяца, кумулятивное, большинством организаций классифицируется как обязательное.
  • Необязательное предварительное обновление: четвертый вторник месяца, не связано с безопасностью, служит для ранней проверки предстоящего обновления безопасности.
  • Внеплановый выпуск (Out-of-Band): по мере необходимости, без фиксированного срока, когда требуется устранить острую уязвимость.

График, который блокирует только второй вторник, не охватывает четвертый вторник и внеплановые выпуски (Out-of-Band).

Почему селекторы ломаются после обновления?

Селекторы идентифицируют элемент управления по его свойствам в дереве окна. Если обновление изменяет эти свойства, робот больше не находит элемент, хотя для человека он выглядит неизменным.

UiPath при поиске неисправностей, связанных с селекторами, перечисляет несколько причин, три из которых напрямую связаны с обновлениями (источник: UiPath, Troubleshooting selectors):

  • Broken selectors after browser updates: Обновления браузера изменяют структуру отрисовываемой страницы. Рекомендуется обновление пакетов Activities.
  • UI changes in target application: Функциональное обновление прикладного приложения смещает узлы или атрибуты. Решением являются адаптированные узлы селектора или Unified Target с резервным переходом на компьютерное зрение.
  • Differences in the environment: Тестовая и продуктивная среды работают с разным масштабированием. UiPath рекомендует использовать масштабирование 100 процентов во всех средах без исключения.

Поэтому надежные селекторы являются не роскошью, а самой дешевой страховкой от дней патчей. Подстановочные знаки для динамических частей, стабильные атрибуты, такие как aaname или id вместо позиционных индексов, и якоря вместо жестких путей. Тот же принцип действует независимо от инструмента, для стороны Microsoft мы подробно описали это в статье надежные селекторы и время ожидания в Power Automate Desktop.

Как совместить окно обновлений и график работы роботов?

Окно обновлений и график работы роботов не должны пересекаться, причем обновление должно выполняться первым. Робот, который запускается в 02:00, в то время как патч перезагружает систему в 02:30, теряет свой запуск прямо посреди транзакции.

Microsoft рекомендует для виртуальных машин поэтапный план установки патчей, который почти без изменений можно перенести на машины роботов: разработка во второй вторник, тестирование во вторую среду, продуктивная среда только во вторую субботу или в следующее за ней воскресенье (источник: Microsoft Learn, Scalable Windows virtual machine patch management). Дни между ними составляют окно проверки.

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

Как узнать, что робот остановился, прежде чем это заметит клиент?

Orchestrator помечает робота как Unresponsive, если робот и Orchestrator не обменивались данными в течение последних двух минут (источник: UiPath Orchestrator, Robot Statuses). Этот сигнал существует, нужно лишь, чтобы он до кого-то дошел.

Orchestrator различает уровни серьезности Info, Success, Warn, Error и Fatal и доставляет уведомления четырьмя способами: баннер в интерфейсе, панель Alerts, страница Alerts и сводки по электронной почте. Для ночных запусков важно различие между двумя форматами писем: десятиминутная сводка содержит исключительно оповещения уровней Fatal и Error, а дневная сводка собирает начиная с 10 часов по местному времени все подписанные события (источник: UiPath Orchestrator, Alerts).

Тот, кто подписан только на дневную сводку, узнает об отказе в 02:00 не раньше первой половины дня. Для ночных запусков правильным выбором является десятиминутная сводка, дополненная содержательной проверкой: технически успешное задание, которое обработало ноль записей, представляет собой ошибку, которую не найдет ни один системный сигнал.

Именно это в наших проектах по автоматизации чаще всего оказывается пробелом: техническое наблюдение налажено, а содержательная проверка результата отсутствует. О том, что конкретно берет на себя NordFlux в этой области, рассказано на нашей странице, посвященной консультации по UiPath и автоматизации процессов в целом.

Что должно входить в тестовую среду и план отката?

Тестовая среда для RPA приносит пользу только тогда, когда у нее тот же уровень установленных патчей и то же масштабирование экрана, что и у продуктивной среды. Иначе вы тестируете другую систему и упускаете именно то отклонение, которое ломает селектор.

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

  • Снимок перед обновлением: Для виртуальных машин роботов контрольная точка непосредственно перед окном технического обслуживания. Это самый быстрый способ вернуться в рабочее состояние.
  • Фиксация версии автоматизации: Последняя успешно выполненная версия процесса остается доступной в Orchestrator, чтобы возврат назад не сорвался из-за отсутствующего пакета.
  • Ручной резервный способ: Для каждого критически важного для бизнеса процесса должно быть задокументировано, как он может работать в течение дня без робота. Без этого плана проблема с патчем превращается в проблему с поставкой.

Часто задаваемые вопросы

Когда именно наступает Patch Tuesday?

Microsoft публикует ежемесячные обновления безопасности для Windows во второй вторник каждого месяца, обычно в 10:00 по тихоокеанскому времени, что соответствует позднему вечеру в Германии. Кроме того, в четвертый вторник выходит необязательное предварительное обновление без содержания, связанного с безопасностью, а при необходимости выпускаются внеплановые обновления (Out-of-Band) без фиксированного срока.

Можно ли просто отключить обновления Windows на машинах роботов?

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

Как понять, что селектор сломался из-за обновления?

Типичным признаком является ошибка при поиске элемента, которая впервые возникает именно после окна технического обслуживания и всегда в одном и том же месте процесса. Среди причин UiPath называет, помимо прочего, обновления браузера, измененные интерфейсы целевого приложения и различное масштабирование между тестовой и продуктивной средами. Сначала проверьте, возникает ли ошибка на всех машинах или только на тех, которые уже получили патч.

Достаточно ли уведомления по электронной почте из Orchestrator в качестве мониторинга?

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

Какой первый шаг предпринять, если роботы регулярно отказывают после обновлений?

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

Симон Гловик, основатель NordFlux
Об авторе

Основатель NordFlux. Семь лет опыта, от веба и SEO до автоматизации в масштабах концерна, сегодня прагматично для среднего бизнеса и с немецким суверенитетом данных.

Сертификаты

  • Сертифицирован Microsoft — PL-900 и AZ-900
  • Сертифицирован UiPath — Automation Developer Associate
Все статьи
Бесплатная первая встреча

Конкретные вопросы по автоматизации или КИ?

На бесплатной первой встрече (30 минут) мы напрямую обсудим Ваш случай. Без обязательств.

Обновление Windows парализует UiPath-роботов | Patch Tuesday