0

我试图在每次运行 Azure Pipeline 时自动安装 pfx 文件,因为使用交互式进程代理,文件似乎丢失了密码或无法导入。下面是我试图实现的powershell脚本,但没有取得多大成功。我需要自动提供密码:

Set-Location "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools"

Start-Process -FilePath "sn.exe" -ArgumentList "-NoExit","-d","$Container"

Start-Process -FilePath "sn.exe" -ArgumentList "-i $path $Container" -NoNewWindow -Wait

[System.Windows.Forms.SendKeys]::SendWait("$password") 

当我运行脚本时,出现以下错误:

Start-Process :此命令无法运行,因为错误:系统找不到指定的文件。在 C:\PowerShellScript\CertReInstall.ps1:12 char:1 + Start-Process -FilePath "sn.exe" -ArgumentList "-i $path $Container ... + ~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ + CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOperationException + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand

我虽然使用“ Import-PfxCertificate ”,但它似乎没有为安装提供容器名称的选项。

任何帮助将不胜感激。谢谢!

4

1 回答 1

0

经过大量的试验和错误,我终于能够弄清楚它有问题的路径。它实际上是在抱怨-FilePath "sn.exe"而不是path在参数列表中。即使Set-Location完成了它的工作,第二个Start-Process也有问题。所以我更新如下行:

Start-Process -FilePath "sn.exe" -ArgumentList "-i $path $Container" -NoNewWindow -Wait

这使得找不到文件的错误消失了。

于 2019-11-28T15:42:08.120 回答