我正在变量组下的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
机密不会自动映射到中
顺便说一句,内联脚本应该能够获得运行时变量的值。