我试图在每次运行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 "-d",$container
Start-Sleep 2
Start-Process -FilePath ".\sn.exe" -ArgumentList "-i","c:\cert_2013.pfx",$container -NoNewWindow
Start-Sleep 2
[void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
[System.Windows.Forms.SendKeys]::SendWait("$($CerPass){ENTER}")
Start-Sleep 2
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
当管道运行ps1文件时,它在SendWait("$($CerPass){ENTER}")
步骤中出错。以下是确切的错误消息:
输入PKCS#12密钥文件的密码:
无法读取c:\ cert_2013.pfx中PKCS#12 Blob的密码- 控制台输入可能无法重定向为输入密码。
使用“ 1”参数调用“ SendWait”的异常:“访问被拒绝” 在第1行:char:1 +&'C:\ WINDOWS \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe'-NoLogo ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:未指定:(异常Calli ... cess被拒绝“:String)[],RemoteException + FullyQualifiedErrorId:NativeCommandError
在C:\ PowerShellScript \ CertReInstall.ps1:18 char:46 + [System.Windows.Forms.SendKeys] :: SendWait(“ $($ CerPass){ENTER}”)
+ CategoryInfo : NotSpecified: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : Win32Exception
[错误]计算机名:“ PQAFCTC1”的非零退出代码:“ 1”
[错误]至少一个远程作业失败。请查阅日志以获取更多详细信息。错误代码:“ RemoteDeployer_NonZeroExitCode”
[section]完成:在目标计算机上运行PowerShell
我需要它在安装时自动将密码发送到文件。当我直接在服务器上运行ps1文件时,它可以正常工作,但我需要将此脚本作为管道任务(azure devops管道)的一部分。
任何帮助将不胜感激。
谢谢!