Назад | Перейти на главную страницу

Клиент Windows Sensu - периодические ошибки «Доступ запрещен» при запуске командных файлов

У нас есть клиент Windows Sensu, работающий в нескольких системах 2008 R2. Одна из наших проверок вызывает командный файл для сбора некоторой информации и отчета. Мы время от времени получаем сообщения «Неизвестно: Неожиданная ошибка: Доступ запрещен (5)» для этих проверок - без стандартной частоты, без корреляции ... следующая проверка проходит правильно без проблем.

Я проследил вызов через стек и Код Sensu Ruby) без проблем порождает дочерний процесс cmd.exe / c "/path/to/batch.bat parameters". Я могу воссоздать проблему, удалив весь доступ NTFS к самому командному файлу. Если вы запустите cmd / c batch.bat с удаленными разрешениями, он вернется с той же ошибкой «Доступ запрещен (5)».

Хорошо, отлично, возникают проблемы с доступом к файлу. Зачем? Я запустил трассировку монитора процесса и не нашел абсолютно ничего плохого в процессе: загружается ruby, вызывается cmd.exe, cmd.exe читает файл без видимых ошибок, затем возвращает проверку, поскольку доступ запрещен. Что за...?

У меня нет идей. Дополнительная справочная информация на случай, если это поможет: двоичные файлы Ruby работают как 32-битные; клиент Sensu является последней версией сайта Sensuapp; в системе работает System Center Endpoint Protection. Что мне не хватает ??

Это оказалось ошибкой в ​​библиотеке ChildProcess Ruby и в том, как она обрабатывала назначение процесса Windows объекту Job (состояние гонки). Я поделюсь исправлением с автором, как только почищу код.