Azure管道:在powershell脚本中设置并传递密码



我正在变量组下的Azure管道中的中设置密码。

现在,我想在我的一个powershell脚本中使用密码,方法是使用Library中的变量名,但我遇到了错误。

Write-Host "Signing of Scripts."
Write-Host $PSScriptRoot
If (Test-Path -Path "C:DigiCerts*"){
signtool sign /f C:DigiCertsCertificate.pfx /t http://timestamp.sectigo.com /fd SHA256 /p $DigicertsPassword C:devpackage-scriptsscripts*.ps1
}
Else {
Write-Host "required certificate not found to sign" -ForegroundColor Red
exit 1
}

因此,我使用的是中的$DigicertsPassword,该库位于变量组下,我已存储了密码。

****错误:DigicertsPassword:术语"DigicertsPassword"未被识别为cmdlet、函数、脚本文件或可操作程序。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试再次。+。。。tp://timestamp.ssectigo.com/fd SHA256/p"$(数字证书密码(";C: \de。。。+类别信息:ObjectNotFound:(DigicertsPassword:String([],CommandNotFoundException+FullyQualifiedErrorId:CommandNotFoundException

SignTool错误:缺少文件名。***

正如您所确认的,您正在使用下面这样的东西,它可以成功地获得值。

trigger:
- none
pool:
vmImage: ubuntu-latest
variables:
- group: xxx #variable group name
steps:
- task: PowerShell@2
env:
DigicertsPassword: $(DigicertsPassword)
inputs:
targetType: 'inline'
script: |
# Write your PowerShell commands here.

Write-Host "$env:DigicertsPassword"

问题的原因是需要映射机密值,但$key不是正确的映射方式。

这里已经澄清:

https://learn.microsoft.com/en-us/azure/devops/pipelines/scripts/logging-commands?view=azure-devops&tabs=bash#usage-4

机密不会自动映射到中

顺便说一句,内联脚本应该能够获得运行时变量的值。

最新更新