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

如何通过PowerShell中的AZ CLI获取Key Vault中前缀为'app'的密钥列表

PowerShell脚本实现Key Vault指定前缀密钥筛选

方法一:AZ CLI内置过滤(高效)

直接通过AZ CLI的--query参数使用JMESPath语法在API层面过滤,减少本地数据传输:

param(
    [Parameter(Mandatory=$true)]
    [string]$KeyVaultName
)

# 筛选并返回以'app'开头的密钥名称
$filteredSecrets = az keyvault secret list --vault-name $KeyVaultName --query "[?starts_with(name, 'app')].name" --output tsv

# 输出结果
$filteredSecrets

使用说明

  • 运行脚本时需传入必填的密钥库名称参数:.\Get-AppSecrets.ps1 -KeyVaultName "你的密钥库名称"
  • --query "[?starts_with(name, 'app')].name":通过JMESPath的starts_with函数匹配名称前缀,仅返回密钥名称字段
  • --output tsv:以纯文本格式输出结果,方便直接查看或后续处理

方法二:PowerShell本地过滤(灵活)

先获取所有密钥数据,再通过PowerShell语法过滤,适合需要对密钥做更多后续处理的场景:

param(
    [Parameter(Mandatory=$true)]
    [string]$KeyVaultName
)

# 获取所有密钥并转换为PowerShell对象
$allSecrets = az keyvault secret list --vault-name $KeyVaultName --output json | ConvertFrom-Json

# 过滤名称以'app'开头的密钥,提取名称
$filteredSecretNames = $allSecrets | Where-Object { $_.name -like 'app*' } | Select-Object -ExpandProperty name

# 输出结果
$filteredSecretNames

使用说明

  • ConvertFrom-Json:将AZ CLI返回的JSON格式数据转换为PowerShell可操作的对象
  • Where-Object { $_.name -like 'app*' }:使用PowerShell通配符匹配前缀
  • Select-Object -ExpandProperty name:仅提取密钥名称字段输出

测试验证

若密钥库内包含密钥:app1name、app2name、app1password、dbpassword1、app2password、dbpassword2,上述两种方法均会返回:
app1name、app2name、app1password、app2password

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 03:47:48