【问题标题】:New-SelfSignedCertificate -CertStoreLocation cannot find pathNew-SelfSignedCertificate -CertStoreLocation 找不到路径
【发布时间】:2017-11-29 11:43:40
【问题描述】:

使用 New-SelfSignedCertificate cmdlet,我想将硬盘驱动器上的位置指定为 C:\Development\My Project。这个命令:

New-SelfSignedCertificate -CertStoreLocation "cert:\LocalMachine\Development\My Project" 

给出这个错误:

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

我该怎么做?

$PSVersionTable.PSVersion
Major  Minor  Build  Revision
-----  -----  -----  --------
5      0      10586  962

【问题讨论】:

  • 路径是否存在:cd cert:; cd 本地机器; ls。如果开发不存在,那么您的问题是您指定的证书存储路径需要创建。
  • C:\Development\My Project 存在于文件系统上。因此,显然,文件系统上的目录位置和 LocalMachine 证书存储位置之间存在差异
  • @thepip3r:New-Item -Path Cert:\LocalMachine\Development\My Project 会在 C:\Development\My Project 中创建一个存储位置吗?我可以在文件资源管理器中看到它吗?
  • 应该和不,你不会在文件资源管理器中看到它,但你应该能够在 certmgr.msc 中看到它。您必须从 MMC 加载它,因为直接执行它默认为用户存储。所以... mmc.exe,添加 -> 管理单元,证书存储(我认为)。

标签: powershell certificate


【解决方案1】:

您为New-SelfSignedCertificate -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

【讨论】:

  • 如果这是混淆,您可以将其视为文件路径的原因是 PowerShell 在加载时安装了一个表示为 'cert:' 的驱动器,就像它为 'c:' 的驱动器一样或'd:'。这是一个相当独特的功能,它使得与证书存储的交互与文件系统类似,但并不完全相同。
  • 您已经发现我的想法有误,谢谢,所以我会检查一下。我不能让它产生一个有效的证书,所以我有posted another question
  • 哦,我知道我应该在我的评论前加上@TheMadTechnician
  • @TheMadTechnician 有没有办法在不使用证书存储的情况下创建证书?
  • @fra 我不是很清楚,但为什么不使用它呢?如果您不想保留它,只需在之后将其从证书存储中删除即可。
【解决方案2】:

当我对 CurrentUser 范围有一个未定义的执行策略时,我收到了这个错误。

Get-ExecutionPolicy -List

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

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多