| Предыдущий | Следующий |
| NTE_PASSWORD_CHANGE_REQUIRED | SEC_E_INSUFFICIENT_MEMORY |
NTE_NOT_ACTIVE_CONSOLE
NTE_NOT_ACTIVE_CONSOLE следует интерпретировать на границе операции поставщика, привязанной к сеансу . Поставщик разрешает действие только с физической или активной консоли и отклоняет его из Remote Desktop или другого неконсольного сеанса. Полезный диагностический вопрос — какой конкретный объект и операция заставили Windows выбрать этот HRESULT, а не работает ли в целом некий ключ, сертификат, учётная запись, файл или устройство.
Начните с API, вернувшего результат
При этом результате поставщик требует или попытался выполнить шаг присутствия пользователя. Различайте контракт silent-вызова, недоступный интерактивный рабочий стол, явную отмену пользователем и политику поставщика, ограничивающую операцию активной консолью. В unattended-программе они могут выглядеть одинаково, но исправляются по-разному.
Матрица диагностических данных
| Запишите | Почему это важно для данного кода |
|---|---|
| silent- и UI-флаги, использованные при открытии поставщика или ключа | При этом результате это отделяет обязательное присутствие пользователя по политике от отсутствия доступа к рабочему столу. |
| идентификатор сеанса, desktop, состояние активной консоли, идентичность службы и факт фактического показа запроса | При этом результате это показывает, запрашивала ли вызывающая сторона silent-поведение явно. |
| политика ключа или устройства, требующая согласия, ввода PIN, биометрической проверки или выбора сертификата | При этом результате это отделяет отмену от сбоя поставщика или ключа. |
Проверки, специфичные для кода:
- Зафиксируйте ID сеанса, тип подключения, состояние активной консоли и место, где должен появиться интерфейс поставщика.
- Проверьте политики аппаратного токена и усиленной защиты ключа, которые намеренно требуют локального присутствия.
- Выполните операцию на консоли либо перестройте процесс вокруг поставщика, поддерживающего удалённую или unattended-работу.
Сохраните цепочку доказательств
Для NTE_NOT_ACTIVE_CONSOLE, сопоставьте последнюю успешную операцию с установкой или обновлением поставщика, созданием или обновлением ключа, изменениями профиля или сеанса, подключением и отключением устройства, обновлением политик и первым неудачным вызовом. Для привязанной к сеансу операции порядок важен: ошибка сразу после миграции ключа указывает на другую границу, чем сбой после смены учётной записи службы.
- Для этого результата подготовьте минимальный пример с именем API, поставщика, ключа или контейнера, флагами и размерами нечувствительных входных данных.
- Для этого пути сохраните события поставщика, устройства, профиля и ОС за период от последнего успеха до первого сбоя.
- Для этого пути сохраните заведомо исправный контрольный результат с той же идентичностью, архитектурой и выбором поставщика.
Минимальная последовательность теста
Один раз выполните ту же операцию в интерактивном консольном сеансе с разрешённым интерфейсом поставщика и один раз — в целевом unattended-контексте, не меняя ключ и поставщика. Разница показывает, пригоден ли объект сам по себе, но ограничен политикой присутствия пользователя.
| Тест | Интерпретация |
|---|---|
| Тот же ввод, заведомо исправный путь | Для операции поставщика, привязанной к сеансу, успех переносит внимание на выбранного поставщика, политику, устройство, контекст или состояние транзакции. |
| Заведомо исправный ввод, сбойный путь | Для операции поставщика, привязанной к сеансу, сбой указывает, что среда или выбранный объект самостоятельно не способны выполнить операцию. |
| Исходный путь после одного изолированного изменения | Для операции поставщика, привязанной к сеансу, это сравнение показывает, устраняет ли предложенное исправление исходное условие. |
Границы этого HRESULT
Это не ошибка сетевого подключения. Граница — Windows-сеанс, из которого выполняется защищённая операция. Автоматизация или подавление окна PIN/согласия не эквивалентны созданию ключа для unattended-использования. Не ослабляйте политику присутствия пользователя без подтверждения требований безопасности.
Для привязанной к сеансу операции также сохраняйте исходное числовое значение: соседние константы могут требовать существенно разного восстановления, даже если приложение показывает их все как ошибку аутентификации, сертификата или безопасности.
Критерии закрытия проблемы
Операция должна завершаться в реальном контексте развёртывания с ключом, чья политика взаимодействия соответствует этому контексту, сохраняя запросы пользователя там, где его одобрение входит в проект. Для NTE_NOT_ACTIVE_CONSOLE, сохраните регрессионный тест с нечувствительными идентификаторами и ожидаемыми результатами, включая один отрицательный контроль, который должен по-прежнему завершаться ошибкой.
Технические ссылки
Для NTE_NOT_ACTIVE_CONSOLE, эти источники определяют HRESULT и соответствующий интерфейс, протокол или формат данных операции поставщика, привязанной к сеансу.
- Открытые спецификации Microsoft: значения HRESULT.
- Microsoft: CNG Key Storage Providers.
- Microsoft: функции хранилища ключей CNG.
Нужно найти другой код? Найти другой код состояния или ошибки.
