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

AzureCli@2流水线执行Get-AzSqlServer报错:cmdlet未被识别

解决AzureCli@2流水线中Get-AzSqlServer命令不识别的问题

问题原因

Get-AzSqlServer是**Azure PowerShell模块(Az.Sql)**里的cmdlet,而AzureCli@2任务的核心是运行Azure CLI命令,它的默认环境不一定预装了Az PowerShell模块,直接在该任务的PowerShell脚本里调用这类cmdlet自然会提示命令不识别。

解决方案

方案1:改用Azure CLI对应命令(推荐)

既然用的是AzureCli@2任务,直接使用Azure CLI的sql server查询命令,无需额外配置模块:

- task: AzureCli@2
  inputs:
    azureSubscription: 'serviceconnection'
    scriptType: 'ps'
    scriptLocation: 'inlineScript'
    inlineScript: |
      # 使用Azure CLI命令替代Get-AzSqlServer
      $sqlServerJson = az sql server list --resource-group rgTest | ConvertFrom-Json
      # 可以像处理PowerShell对象一样操作结果
      Write-Host "SQL Server名称:$($sqlServerJson.name)"

方案2:切换到AzurePowerShell任务(适合坚持用PowerShell cmdlet的场景)

如果一定要用Get-AzSqlServer,应该用专门的AzurePowerShell@5任务,它会自动确保Az模块可用:

- task: AzurePowerShell@5
  inputs:
    azureSubscription: 'serviceconnection'
    ScriptType: 'InlineScript'
    Inline: |
      $sqlServer = Get-AzSqlServer -ResourceGroupName rgTest
      Write-Host "SQL Server名称:$($sqlServer.ServerName)"
    azurePowerShellVersion: 'LatestVersion'

方案3:在AzureCli@2中手动安装Az.Sql模块(不推荐)

如果必须在AzureCli@2里执行该cmdlet,需要先手动安装对应模块,但每次运行都会耗时安装,不建议用于生产流水线:

- task: AzureCli@2
  inputs:
    azureSubscription: 'serviceconnection'
    scriptType: 'ps'
    scriptLocation: 'inlineScript'
    inlineScript: |
      # 安装Az.Sql模块(需要管理员权限,可能需要调整执行策略)
      Install-Module -Name Az.Sql -Force -AllowClobber -Scope CurrentUser
      $sqlServer = Get-AzSqlServer -ResourceGroupName rgTest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:02:08