在 PowerShell 脚本中访问 Azure DevOps 管道中的安全文件

Accessing secure file in Azure DevOps pipeline in PowerShell script

我是 DevOps 的新手,正在尝试通过 PowerShell 脚本访问安全文件。这是场景:

我使用的代理是ubuntu 18.04 我已将我的证书作为安全文件上传,并且能够在我执行管道时下载。我已经通过查看存在证书 (.cer) 的 $(Agent.TempDirectory) 内容对其进行了验证。

那么我是 运行 一个 PowerShell 脚本,其中包含以下代码行:

$Certificate = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new('$(Agent.TempDirectory)/mycert.cer')

但是这一行总是给我以下错误:

这里有什么问题。

宏语法 $() 将仅在模板中展开。如果你的脚本存放在文件中,你需要使用环境变量:$env:AGENT_TEMPDIRECTORY

$Certificate = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new("$env:AGENT_TEMPDIRECTORY/mycert.cer")