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

PowerShell脚本无法列出Azure密钥保管库过期机密及删除咨询

解决Azure密钥保管库过期机密的检索与删除问题

一、权限确认与补充

你当前设置的访问策略缺少list权限,这是无法获取所有机密的核心原因之一。需要补充该权限才能列出密钥保管库内的全部机密:

Set-AzKeyVaultAccessPolicy -VaultName "testKeyVaultPwsh" -UserPrincipalName "mystuff@domain.com" -PermissionsToSecrets get,delete,list

二、完整脚本实现

以下脚本可批量获取所有机密的过期信息,并自动删除已过期的机密:

# 切换到目标订阅
Select-AzSubscription -Subscription "My subscription"

# 补充必要的访问权限(若未设置)
Set-AzKeyVaultAccessPolicy -VaultName "testKeyVaultPwsh" -UserPrincipalName "mystuff@domain.com" -PermissionsToSecrets get,delete,list

# 获取所有机密的元数据(包含过期时间)
$allSecrets = Get-AzKeyVaultSecret -VaultName "testKeyVaultPwsh"

# 筛选已过期的机密
$expiredSecrets = $allSecrets | Where-Object { 
    $_.Expires -ne $null -and $_.Expires -lt (Get-Date) 
}

# 遍历删除过期机密
foreach ($secret in $expiredSecrets) {
    Write-Host "删除过期机密: $($secret.Name)"
    Remove-AzKeyVaultSecret -VaultName "testKeyVaultPwsh" -Name $secret.Name -Force
}

关键细节说明

  • 必须去掉-AsPlainText和指定-Name的操作,否则只会返回单条机密的明文内容,丢失过期时间等元数据。
  • 筛选时增加$_.Expires -ne $null判断,避免处理未设置过期时间的机密。
  • -Force参数用于跳过删除确认提示,直接执行操作。

内容的提问来源于stack exchange,提问作者A.Bux

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 03:24:26