Попытка установить файл сертификата (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 сертификата, выданного локальным SSL-сервером, и в этом случае никакая смарт-карта/USB-накопитель не задействованы. Не спрашивайте меня о деталях, почему программное обеспечение справляется с этим таким образом, но это часть государственного программного обеспечения, которое просто работает таким образом, и с ним нельзя вмешиваться.
Хорошо, я понимаю, это часть сценария установки правительственного программного обеспечения. Проверяли ли вы журнал событий Windows на том компьютере, где произошел сбой?
@Роберт: Только что проверил — ничего не было. Но готовясь отправить вам больше данных, я нашел решение... Спасибо, что подумали об этом :)
Проблема заключалась в ключе реестра Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\SystemCertificates\Root\ProtectedRoots, к которому у пользователя не было доступа — требуется чтение. В правах доступа к этому ключу почему-то был "неизвестный" SID пользователя. Удаление этого и добавление правильного пользователя устранило проблему.
Я нашел это, запустив procmon на certutil.exe. Это выявило результат «отказано в доступе» при попытке прочитать этот раздел реестра.
Значит, сертификат — это просто [корневой] файл CA? Возможно ли, что на затронутом ПК/учетной записи пользователя установлено какое-либо программное обеспечение для смарт-карт или защищенного USB-накопителя, которое пыталось установить сертификат на смарт-карту/USB-накопитель, которого нет?