Powershell 新的自签名证书-CertStoreLocation找不到路径

Powershell 新的自签名证书-CertStoreLocation找不到路径,powershell,certificate,Powershell,Certificate,使用新的SelfSignedCertificate cmdlet,我想将硬盘上的位置指定为C:\Development\my Project。此命令: New-SelfSignedCertificate -CertStoreLocation "cert:\LocalMachine\Development\My Project" 给出此错误: 找不到路径“Cert:\LocalMachine\Development\My Project”,因为 它不存在 我该怎么做 为新自签名证书-CertS

使用新的SelfSignedCertificate cmdlet,我想将硬盘上的位置指定为C:\Development\my Project。此命令:

New-SelfSignedCertificate -CertStoreLocation "cert:\LocalMachine\Development\My Project" 
给出此错误:

找不到路径“Cert:\LocalMachine\Development\My Project”,因为 它不存在

我该怎么做


新自签名证书-CertStoreLocation
指定的路径是证书存储,而不是文件路径。您最可能要做的是指定
cert:\LocalMachine\my
,它将在您的个人存储中创建证书,然后在需要时以文件形式将该证书导出到硬盘上的文件中。像这样的东西应该可以做到:

$notAfter = [datetime]::Today.AddYears(2)
$thumb = (New-SelfSignedCertificate -CertStoreLocation cert:\localmachine\my -DnsName $env:USERDNSDOMAIN -KeyExportPolicy Exportable -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" -NotAfter $notAfter).Thumbprint
$pwd = 'SuperS3cret!'
$SSpwd = ConvertTo-SecureString -String $pwd -Force -AsPlainText
Export-PfxCertificate -cert "cert:\localmachine\my\$thumb" -FilePath "C:\Development\My Project\MyDevCert.pfx" -Password $SSpwd

当我对CurrentUser作用域有一个未定义的执行策略时,我出现了这个错误

Get-ExecutionPolicy -List
如果未定义,请使用此命令将其设置为RemoteSigned

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

路径是否存在:cd证书:;光盘机;ls。如果不存在开发,那么您的问题是您指定的证书存储路径需要创建。
C:\development\My Project
存在于文件系统中。因此,显然,文件系统上的目录位置和LocalMachine证书存储之间存在差异location@thepip3r:是否将
新建项目-路径证书:\LocalMachine\Development\My Project
在C:\Development\My Project创建一个存储位置,并且我是否能够在文件资源管理器中看到它?是否应该,您不会在文件资源管理器中看到它,但应该能够在certmgr.msc中看到它。但是,您必须从MMC加载它,因为直接执行它默认为用户存储。所以mmc.exe,Add->Snap-In,Certificate-Store(我想)。如果这是一种混淆,那么您可以将其视为文件路径的原因是PowerShell在加载时安装了一个表示为“cert:”的驱动器,就像它是“c:”或“d:”的驱动器一样。这是一个非常独特的特性,它使与证书存储的交互与文件系统无关,但不完全相同。您在我的想法中发现了错误,谢谢,所以我将对此进行检查。我不能让它产生一个有效的证书,所以我已经哦,我想我应该在我的评论前面加上@TheMadTechnician@TheMadTechnician有没有一种方法可以在不使用证书存储的情况下创建证书?@fra我不知道,但为什么不使用它呢?如果您不想保留它,请在以后从证书存储中删除它。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser