Certutil -addstore -user -f Корень дает error_access_denied, хотя запускается от имени администратора

Попытка установить файл сертификата (xxx.cer) в список корневых сертификатов пользователя с помощью следующей команды

certutil -addstore -user -f Root .\xxx.cer

приводит к сообщению об ошибке

CertUtil: -addstore command FAILED: 0x80070005 (WIN32: 5 ERROR_ACCESS_DENIED)

Я запускаю это из командной строки администратора с повышенными правами. Попытка установить сертификат через mmc-gui приводит к тому же сообщению об ошибке. Запуск через psexec -i -s в качестве системной учетной записи работает, но тогда, конечно, сертификат не находится в контексте пользователя.

Попытка установить сертификат на любой другой компьютер работает нормально, поэтому с файлом все в порядке. sfc /scannow тоже не выдает ошибок.

Есть идеи, что я могу сделать, чтобы это исправить?

Значит, сертификат — это просто [корневой] файл CA? Возможно ли, что на затронутом ПК/учетной записи пользователя установлено какое-либо программное обеспечение для смарт-карт или защищенного USB-накопителя, которое пыталось установить сертификат на смарт-карту/USB-накопитель, которого нет?

Robert 26.02.2024 11:38

Да, именно: это всего лишь корневой файл CA сертификата, выданного локальным SSL-сервером, и в этом случае никакая смарт-карта/USB-накопитель не задействованы. Не спрашивайте меня о деталях, почему программное обеспечение справляется с этим таким образом, но это часть государственного программного обеспечения, которое просто работает таким образом, и с ним нельзя вмешиваться.

Thomas 27.02.2024 07:23

Хорошо, я понимаю, это часть сценария установки правительственного программного обеспечения. Проверяли ли вы журнал событий Windows на том компьютере, где произошел сбой?

Robert 27.02.2024 09:40

@Роберт: Только что проверил — ничего не было. Но готовясь отправить вам больше данных, я нашел решение... Спасибо, что подумали об этом :)

Thomas 27.02.2024 19:51
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
734
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема заключалась в ключе реестра Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\SystemCertificates\Root\ProtectedRoots, к которому у пользователя не было доступа — требуется чтение. В правах доступа к этому ключу почему-то был "неизвестный" SID пользователя. Удаление этого и добавление правильного пользователя устранило проблему.

Я нашел это, запустив procmon на certutil.exe. Это выявило результат «отказано в доступе» при попытке прочитать этот раздел реестра.

Другие вопросы по теме