以管理员身份执行certutil -addstore报错ERROR_ACCESS_DENIED的求助
解决用户根证书安装报错0x80070005的方案
1. 检查并修复用户证书存储权限
- 打开注册表编辑器
regedit,导航到路径:HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates\Root - 右键点击
Root项,选择「权限」,确认当前登录用户拥有写入或完全控制权限 - 若权限缺失,点击「添加」按钮,将当前用户加入权限列表并赋予对应权限,保存后重启系统再尝试安装
2. 重建用户根证书存储
注意:此操作会清空当前用户的根证书列表,请先备份重要证书
- 打开管理员权限的命令提示符,依次执行:
certutil -user -delstore Root "" certutil -user -addstore Root .\xxx.cer
3. 排查组策略限制
- 运行
gpedit.msc打开组策略编辑器,定位到:用户配置 → 管理模板 → 系统 → 证书服务 - 检查「禁止添加根证书到用户证书存储」等相关策略是否被启用,若启用则改为「未配置」或「禁用」,更新组策略后重试
4. 使用PowerShell在当前用户上下文安装
- 打开当前用户权限的PowerShell(无需管理员权限),执行以下脚本:
$certPath = ".\xxx.cer" $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($certPath) $store = New-Object System.Security.Cryptography.X509Certificates.X509Store("Root", "CurrentUser") $store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite) $store.Add($cert) $store.Close() Write-Host "证书安装完成"
内容的提问来源于stack exchange,提问作者Thomas
相关产品推荐
相关产品推荐

