用于创建证书的New-SelfSignedCertificate提供Access Denied

时间:2017-08-10 17:37:09

标签: windows powershell certificate

我尝试在PowerShell中使用New-SelfSignedCertificate在Windows 10上创建证书,但该命令会给我一个权限错误。我使用的是管理员帐户。

命令:

New-SelfSignedCertificate -Type Custom -Subject "CN=Contoso Software, O=Contoso Corporation, C=US" -KeyUsage DigitalSignature -FriendlyName MyCert -CertStoreLocation "Cert:\LocalMachine\My"

输出:

New-SelfSignedCertificate : CertEnroll::CX509Enrollment::_CreateRequest: Access denied. 0x80090010 (-2146893808 NTE_PERM)
At line:1 char:1
+ New-SelfSignedCertificate -Type Custom -Subject "CN=Contoso Software, ..."
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [New-SelfSignedCertificate], Exception
    + FullyQualifiedErrorId : System.Exception,Microsoft.CertificateServices.Commands.NewSelfSignedCertificateCommand

2 个答案:

答案 0 :(得分:5)

正如评论中所述,尽管PowerShell.exe是在具有"管理权限的用户帐户下运行的。除非提升,否则该流程不能使用这些权利。

PowerShell窗口将添加"管理员:"默认情况下在标题栏中。否则,您可以通过运行此命令来检查您是否是管理员:

([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole‌​([Security.Principal‌​.WindowsBuiltInRole] "Administrator")

如果通过GUI完成PowerShell的启动,则可以右键单击 - >以管理员身份运行。

否则,您可以通过运行Start-Process powershell.exe -Verb Runas

来生成一个提升的新流程

答案 1 :(得分:0)

通过指定其他证书位置为您的本地用户帐户创建证书:

New-SelfSignedCertificate -CertStoreLocation "Cert:\CurrentUser\My" [...]