You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps经典流水线导入证书至Key Vault遇命令未找到错误

Azure DevOps经典流水线导入证书到Key Vault报错解决

问题场景

在Azure DevOps经典流水线中,已将.cert证书上传为安全文件,添加了两个任务:

  • 下载安全文件任务
  • Azure Cli任务,内联脚本如下:
$certFilePath  = $(Agent.TempDirectory)\mycert.com.crt
az keyvault certificate import --vault-name "keyvaultname" -n "mycert.com.crt"  -f $certFilePath

报错信息

D:\agent_work_temp\mycert.com.crt : 术语“D:\agent_work_temp\mycert.com.crt”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称拼写,或验证路径是否正确后重试。
在 D:\agent_work_temp\azureclitaskscript1675572660483_inlinescript.ps1:1 字符:12

  • $inFile = D:\agent_work_temp\mycert.com.crt
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo : ObjectNotFound: (D:\agent_work_temp\mycert.com.crt:String) [], ParentContainsErrorRecordException
    • FullyQualifiedErrorId : CommandNotFoundException

解决方法

1. 修正PowerShell变量赋值语法

PowerShell中直接写路径会被当作命令执行,需将路径字符串用引号包裹,或者用更规范的路径拼接方式:

# 方法1:用双引号包裹路径字符串
$certFilePath  = "$(Agent.TempDirectory)\mycert.com.crt"

# 方法2:使用Join-Path拼接路径(推荐,避免路径分隔符问题)
$certFilePath = Join-Path -Path $(Agent.TempDirectory) -ChildPath "mycert.com.crt"

# 执行导入命令
az keyvault certificate import --vault-name "keyvaultname" -n "mycert.com.crt" -f $certFilePath

2. 确认下载安全文件任务配置

  • 检查下载任务的文件名设置,确保保存的文件名是mycert.com.crt,和脚本中的文件名一致
  • 确认下载任务的目标文件夹为$(Agent.TempDirectory),若自定义了目标路径,需同步修改脚本中的路径

内容的提问来源于stack exchange,提问作者ezycoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 15:55:17