При настройке интеграций между базами 1С или внешними системами часто используется механизм COM-соединения (V83COMConnector). Однако администраторы нередко сталкиваются с ситуацией, когда соединение, работавшее стабильно или только что настроенное, внезапно начинает выдавать ошибку доступа. В рамках общей справки по решению задач администрирования Windows и 1С стоит отметить, что простая перерегистрация библиотеки часто помогает лишь на короткое время.
Рассмотрим подробно ошибку 0x8000401A, проанализируем логи Windows и выясним, как правильно настроить политики безопасности, чтобы устранить падение обмена данными.
Ситуация выглядит следующим образом: обмен данными работает некоторое время, а затем падает со следующим сообщением в 1С:
Не удалось подключиться к приложению: -2147467238(0x8000401A):
Процесс сервера не может быть запущен, так как указана неправильная идентификация.
Проверьте правильность указания имени пользователя и пароля.
На первый взгляд кажется, что проблема в неверном пароле учетной записи. Однако, если бы пароль был неверным, соединение не работало бы вовсе. Для более глубокого изучения подобных сбоев полезно использовать помощник определения нарушений прав доступа, который помогает идентифицировать ошибки даже рядовым пользователям.
Для точной диагностики нам необходимо обратиться к журналам событий Windows (Event Viewer) на сервере, где зарегистрирована comcntr.dll. В журнале System мы увидим ошибку DCOM, но самое важное кроется в журнале Security. Чтобы оперативно реагировать на такие инциденты в будущем, рекомендуется настроить мониторинг учетных записей Windows Server, который позволяет отслеживать события безопасности в реальном времени. Для этой задачи есть инструмент аудита и анализа прав доступа пользователей.
Найдем событие "Аудит отказа" (Event ID 4625). Рассмотрим пример лога:
Учетной записи не удалось выполнить вход в систему.
Субъект:
ИД безопасности: NULL SID
Имя учетной записи: USR1CV8
Сведения об ошибке:
Причина ошибки: Выбранный режим входа для данного пользователя на этом компьютере не предусмотрен.
Состояние: 0xC000015B
Тип входа: 4
Давайте разберем эти данные:
Почему же обмен работает пару часов? Вероятнее всего, после манипуляций с пользователем создается временная сессия. Однако в доменной среде периодически происходит обновление групповых политик (GPO), которые могут перезаписывать локальные разрешения. Если вы параллельно ведете работу внутри системы, вам может пригодиться анализ прав и ролей пользователей для поиска подходящего профиля и проверки корректности настроек внутри конфигурации 1С — для этого подойдет отчет по анализу прав и профилей пользователей.
Для устранения ошибки нам нужно выдать пользователю, под которым запускается V83COMConnector, соответствующие права.
Шаг 1. Открытие редактора политик. Нажмите Win + R и введите secpol.msc.
Шаг 2. Назначение прав пользователя. Перейдите: Локальные политики -> Назначение прав пользователя.
Шаг 3. Вход в качестве пакетного задания. Найдите политику «Вход в качестве пакетного задания» (Log on as a batch job). Добавьте туда учетную запись (например, USR1CV8). Если вам необходимо создать новую техническую учетную запись, можно использовать скрипт для создания пользователей на сервере, чтобы автоматизировать этот процесс.
Шаг 4. Проверка запретов. Убедитесь, что вашего пользователя нет в политике «Отказать во входе в качестве пакетного задания».
Убедимся, что сама конфигурация DCOM настроена корректно:
dcomcnfg.V83COMConnector.USR1CV8 и предоставьте права на локальный/удаленный запуск и активацию.Если сервер находится в домене, локальные политики могут переопределяться. Попросите системного администратора добавить сервисную учетную запись в политику "Log on as a batch job" на уровне GPO. В процессе отладки и управления процессами на сервере 1С администратору также будет полезно WEB приложение для управления сеансами, которое позволяет удалять сеансы и завершать процессы rphost через удобный интерфейс.
Команда для регистрации (запускать от имени Администратора):
regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\comcntr.dll"
Ошибка 0x8000401A в связке с кодом 0xC000015B однозначно указывает на отсутствие привилегии SeBatchLogonRight. Решение заключается в добавлении пользователя COM-объекта в соответствующие политики безопасности Windows Server. Комплексный подход к мониторингу и анализу прав позволит избежать подобных простоев в будущем.