如何通过PowerShell获取Azure Key Vault中启用状态的最新版本密钥?
解决方案:筛选Azure Key Vault中启用状态的最新版本密钥
我懂你想要的是只拿到启用状态且是最新版本的密钥,直接给你可以落地的PowerShell命令,再拆解下逻辑:
Get-AzureKeyVaultKey -VaultName 'vaultname' | Where-Object { $_.Attributes.Enabled -eq $true } | Group-Object -Property Name | ForEach-Object { $_.Group | Sort-Object -Property @{Expression = { [DateTime]$_.Attributes.Created }; Descending = $true } | Select-Object -First 1 }
命令逻辑拆解:
- 全量获取:先用
Get-AzureKeyVaultKey -VaultName 'vaultname'拉取密钥库内所有密钥(包含所有版本) - 过滤启用状态:通过
Where-Object筛选出Attributes.Enabled为true的密钥,直接排除已禁用的条目 - 按密钥名分组:用
Group-Object把同一个密钥的不同版本归为一组,方便后续取最新版 - 提取最新版本:对每组内的密钥按创建时间倒序排序,取第一个结果就是该密钥的最新启用版本
如果你的环境用的是较新的Az模块(而非AzureRM),只需把命令替换为Get-AzKeyVaultKey,逻辑完全一致:
Get-AzKeyVaultKey -VaultName 'vaultname' | Where-Object { $_.Attributes.Enabled -eq $true } | Group-Object -Property Name | ForEach-Object { $_.Group | Sort-Object -Property @{Expression = { [DateTime]$_.Attributes.Created }; Descending = $true } | Select-Object -First 1 }
这样就能精准得到你需要的结果了。
内容的提问来源于stack exchange,提问作者Mani
相关产品推荐
相关产品推荐

