Частая ошибка, решаемая банальной регистрацией comcntr.dll, но оказывается есть частные случаи, именно с таким я и столкнулся. Имеется сервер 2019, разработчик под учеткой с правами обычного пользователя получил такую ошибку. Что было предпринято:
- первое решение
- регистрация библиотеки требуемой версии платформы
- второе решение
- удалена регистрация библиотек других платформ (regsvr32.exe -u)
- зарегистрирована еще раз нужная
- третье решение
- удалены все платформы
- установлена требуемая по новой
- зарегистрирована библиотека
- перезагружен сервер
- А иначе нельзя! - хотел было сообщить я
- четвертое решение
- проверить SRP
- удалить SRP
- gpupdate /force
- выгнать пользователя и зайти по новой
- пятое решение
- Администрирование - Службы компонентов – Компьютеры – Мой компьютер – Приложения COM+ - Создать приложение – Создать новое приложение – вводим имя "V83COMConnector" (переключатель "Серверное приложение") – Указанный пользователь (Администратор*)
- В "V83COMConnector" – Компоненты – создать новый компонент – Установка новых компонентов - %каталог 1С%\bin\comcntr.dll *
- Правой кнопкой по ветке "V83COMConnector" – Свойства – Безопасность – снимаем "Принудительная проверка доступа для приложений" - ставим "Применить политику программных ограничений" - Уровень ограничений "Неограниченный"
- Включаем SRP, а заодно и AppLocker (позволяет запретить группе пользователей cmd.exe, mmc.exe, taskmgr.exe)
- Перезаходим и проверяем
- БИБЛИОТЕКА ДОЛЖНА БЫТЬ ЗАРЕГИСТРИРОВАНА
- Администратор - пользователь с админскими правами, если пароль сменит, то могут быть проблемы (как у служб или планировщика заданий)
- Администратор должен иметь полные права на файлы и каталоги баз 1С
- На каждую платформу придется создавать новое приложение
- На сервере RDP под учетками других пользователей выскакивала ошибка "метод объекта не обнаружен (connect)", решилась установкой на вкладке удостоверение, свойств коннектора, - "Локальная служба - встроенная учетная запись службы"
- Пункт 3 в моем случае привел к ошибке разделенного доступа к БД, даже указание кредов админа не помогло, но перевод режима активации (вкладка свойств коннектора) из серверного приложения в библиотечное - помогло.
- Общие
- Имя - V83COMConnector
- Безопасность
- Авторизация - выключена "Принудительная проверка доступа для приложения"
- Уровень доступа - "проверка доступа на уровне процесса и на уровне компонента"
- Политика программных ограничений - уровень ограничений - неограниченный
- Удостоверение
- Учетная запись - Указанный пользователь
- Активация
- Серверное приложение
запрещенная комбинация текущей области и указанного поколения
Пришлось обновить платформу, а значит и com объект тоже надо обновить. Решил попробовать без пересоздания
До обновления |
Пробуем поверх накатить новую библиотеку |
Действия такие же |
находим новую библиотеку |
Выбираем ее и завершаем создание |
Проверяем |
Ошибка |
Но, какая ошибка!?
-2147467238(0x8000401A): Процесс сервера не может быть запущен, так как указана неправильная идентификация. Проверьте правильность указания имени пользователя и пароля.
На вкладке удостоверение обновляем учетные данные (почему то они слетают)
И все, в этот раз я еще и лишил прав админа указанного пользователя!Не забываем!!! |
UP 07/04/2024
Не удалось запустить DCOM-сервер: {181E893D-73A4-4722-B61D-D604B3D67D47} как TRM02/V83COMConnector.Ошибка:"0"Произошла при запуске команды:C:\Windows\system32\dllhost.exe /Processid:{C55DD657-0E4E-4AF2-A18D-B057A2D725A2}
И
Произошла ошибка DCOM "1385"; не удалось войти в TRM02\V83COMConnector для запуска сервера:
{C55DD657-0E4E-4AF2-A18D-B057A2D725A2}
При этом в журнале безопасности очень интересная запись:
Учетной записи не удалось выполнить вход в систему.
Субъект:ИД безопасности: DOMEN\aa
Имя учетной записи: aa
Домен учетной записи: DOMEN
Код входа: 0xFBF40Тип входа: 2
Учетная запись, которой не удалось выполнить вход:
ИД безопасности: NULL SID
Имя учетной записи: V83COMConnector
Домен учетной записи: DOMENСведения об ошибке:
Причина ошибки: Неизвестное имя пользователя или неверный пароль.
Состояние: 0xC000006D
Подсостояние: 0xC0000064Сведения о процессе:
Идентификатор процесса вызывающей стороны: 0x3228
Имя процесса вызывающей стороны: C:\Windows\System32\svchost.exeСведения о сети:
Имя рабочей станции: TRM02
Сетевой адрес источника: ::1
Порт источника: 0Сведения о проверке подлинности:
Процесс входа: seclogo
Пакет проверки подлинности: Negotiate
Промежуточные службы: -
Имя пакета (только NTLM): -
Длина ключа: 0
V83COMConnector - локальная учетная запись, а не доменная!
Хотя в следующих записях есть и такое:
Учетной записи не удалось выполнить вход в систему.
Субъект:
ИД безопасности: СИСТЕМА
Имя учетной записи: TRM02$
Домен учетной записи: DOMEN
Код входа: 0x3E7Тип входа: 4
Учетная запись, которой не удалось выполнить вход:
ИД безопасности: NULL SID
Имя учетной записи: V83COMConnector
Домен учетной записи: TRM02Сведения об ошибке:
Причина ошибки: Выбранный режим входа для данного пользователя на этом компьютере не предусмотрен.
Состояние: 0xC000015B
Подсостояние: 0x0Сведения о процессе:
Идентификатор процесса вызывающей стороны: 0x418
Имя процесса вызывающей стороны: C:\Windows\System32\svchost.exeСведения о сети:
Имя рабочей станции: TRM02
Сетевой адрес источника: -
Порт источника: -Сведения о проверке подлинности:
Процесс входа: Advapi
Пакет проверки подлинности: Negotiate
Промежуточные службы: -
Имя пакета (только NTLM): -
Длина ключа: 0
Вход в качестве пакетного задания для данной учетки включен. Гугл говорит что то совсем невразумительное. Уж думал делать доменную учетку для этой задачи!
Пока копался в настройках групповых политик, стукнуло мне в голову разрешить данной учетке вход в качестве службы в локальных политиках (secpol.msc).
И, надо же, заработало!
Лишил пользователя прав администратора, перезагрузил сервер и все запустилось без ошибок....
Перезагрузил еще раз и вылезла ошибка, на текущий момент права такие:
Из пакетного задания вылетел вместе с лишением админских прав
Тогда я решил, что надо его как-то туда добавить, но так, чтобы прав админа у него не было...
Проблема в том, что данный пункт определен групповой политикой, локально не редактируется. А пользователь локальный и я попробовал его добавить в политику с указанием домена trm02\V83COMConnector, она добавилась. Политику можно изначально ограничить только указанным сервером.
Проверил в 1С, все работает.
На данном этапе считаю задачу закрытой, сервер устал перезагружаться
Отметка на всякий случай, в свойствах компьютера в оснастке Службы компонентов настроено вот так:
Может оно и не работает, но я чет уже устал перезагружать комп и воспользуюсь вариантом: работает - не трогай.
Комментариев нет:
Отправить комментарий