| Предыдущий | Следующий |
| RPC_E_INVALID_STD_NAME | CO_E_FAILEDTOGETSECCTX |
CO_E_FAILEDTOIMPERSONATE
Что именно проверять
CO_E_FAILEDTOIMPERSONATE фиксирует состояние Не удалось выполнить олицетворение клиента DCOM. В COM/DCOM полезно считать его маркером стадии «COM/DCOM security», а не общим признаком повреждения всей конфигурации.
Минимальный набор фактов
- соберите для сравнения CLSID, caller/server SID, access token, RunAs, launch/access ACL и authentication context. Для условия «Не удалось выполнить олицетворение клиента DCOM» это позволяет восстановить исходный объект и не спутать его с последующим состоянием.
- соберите для сравнения технические маркеры
RPC_E_UNSECURE_CALL,RPC,HRESULT,sid,SIDс теми значениями, которые были видны до очистки/rollback; они привязывают «Не удалось выполнить олицетворение клиента DCOM» к реальному вызову. - сохраните момент первого результата и один исправный запуск, сохранив одинаковыми входные данные; различие должно появиться именно на стадии COM/DCOM security.
Безопасное воспроизведение
сравните сравнить effective token и security descriptor на точной границе access check или impersonation. Изменяйте только предпосылку, связанную с «Не удалось выполнить олицетворение клиента DCOM», а регистрацию, identity, входной объект и окружение по возможности оставляйте прежними.
не ослаблять LaunchPermission/AccessPermission глобально: сначала подтвердить конкретный SID и denied right; для результата «Не удалось выполнить олицетворение клиента DCOM» широкая переустановка, очистка каталога или ослабление безопасности не считается доказательством причины.
Для соседних результатов RPC_E_UNSECURE_CALL сравнивайте первую различающуюся операцию. Исправление подтверждено только тогда, когда исходная граница проходит при прежних входах и следующий ожидаемый шаг получает корректное состояние.
Технические ссылки
- Microsoft: IAccessControl
- Microsoft: IAccessControl::IsAccessAllowed
- Microsoft: AccessCheck
- Microsoft: LookupAccountSidW
- Microsoft: LookupAccountNameW
- Microsoft: access control lists
Нужно найти другой код? Найти другой код состояния или ошибки.