使用powershell

时间:2019-11-28 17:34:36

标签: powershell azure-devops pfx

我试图在每次运行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管道)的一部分。

任何帮助将不胜感激。

谢谢!

0 个答案:

没有答案