gpt4 book ai didi

powershell - 通过绝对路径传递变量到命令

转载 作者:行者123 更新时间:2023-12-03 00:01:06 26 4
gpt4 key购买 nike

我正在尝试导入证书和CA以在PowerShell中使用certutil.exe进行存储。
这是我的脚本:

$appDir="C:\Program Files\My App"
$certFilespec = $appDir + "\mycert.pfx"
certutil -p '""' -importPFX $certFilespec
$certFilespec = $appDir + "\myca.crt"
certutil -f -addStore Root $certFilespec

除第三行外,所有内容均成功执行。错误是:
PS C:\> certutil -p '""' -importPFX $certFilespec
CertUtil: -importPFX command FAILED: 0x80070002 (WIN32: 2)
CertUtil: The system cannot find the file specified.
PS C:\>

当我使用字符串而不是$ certFilespec
certutil -p '""' -importPFX "C:\Program Files\My App\mycert.pfx"
certutil -f -addStore Root "C:\Program Files\My App\myca.crt"

一切都成功执行。我还发现,当我使用相对路径时,它可以正常工作
PS C:\> cd '.\Program Files\My App'
$certFilespec=".\mycert.pfx"
certutil -p '""' -importPFX $certFilespec
CertUtil: -importPFX command completed successfully
PS C:\Program Files\My App>

一切正常。因此,我想使用绝对路径时引用会有一些问题。我不明白的是,对于同一命令,只是不同的选项(-addStore / -importPFX),它的工作原理不同。

我要导入的文件是PKCS12证书+私钥(.pfx文件)。以及CA证书(.crt文件)。但这不应该起任何作用。

最佳答案

最佳的揣测。
生成$ certFilespec时,它将生成不带注释的字符串,因此该命令将看到C:\ Program并踢出一个错误。

$appDir="C:\Program Files\My App"
$certFilespec = $appDir + "\mycert.pfx"
$certFilespec

C:\ Program Files \我的应用程序\ mycert.pfx

你可以试试
$appDir='"C:\Program Files\My App\'
$certFilespec = $appDir + 'mycert.pfx"'

运行时产生
$certFilespec

“C:\ Program Files \ My App \ mycert.pfx”

关于powershell - 通过绝对路径传递变量到命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28408468/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com