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

如何用PowerShell列出Azure Key Vault中待处理的证书操作?

解决Azure Key Vault证书操作状态查询的问题

我刚好处理过类似的自动化证书请求场景,你之前用的Get-AzureKeyVaultCertificate确实只能返回已经完成签发的证书实体,要获取处于"In progress"、"Failed"或"Cancelled"状态的证书请求操作,得用专门的命令:Get-AzureKeyVaultCertificateOperation(如果是Az模块则是Get-AzKeyVaultCertificateOperation)。

具体实现步骤

  1. 获取所有证书操作:这个命令会返回密钥库中所有的证书请求操作,不管状态如何。
  2. 筛选目标状态:通过Where-Object过滤出你需要关注的状态。
  3. 根据结果决策:如果存在符合条件的操作,就对应处理(比如等待审批、重试失败请求);如果没有,就可以创建新的证书请求。

完整PowerShell示例

# 替换为你的密钥库名称
$VaultName = "your-key-vault-name"

# 如果你使用AzureRM模块,用下面的命令
$certOperations = Get-AzureKeyVaultCertificateOperation -VaultName $VaultName

# 如果你使用Az模块(推荐),替换为这条命令
# $certOperations = Get-AzKeyVaultCertificateOperation -VaultName $VaultName

# 筛选出需要关注的状态
$targetOps = $certOperations | Where-Object {
    $_.Status -in "In progress", "Failed", "Cancelled"
}

# 处理结果
if ($targetOps) {
    Write-Host "找到以下待处理/失败/已取消的证书操作:"
    $targetOps | Select-Object Name, Status, StatusDetails, RequestId
    # 根据状态执行不同逻辑:
    # - In progress:等待审批完成
    # - Failed:可以根据StatusDetails排查问题后重试
    # - Cancelled:清理后重新发起请求
} else {
    Write-Host "没有符合条件的证书操作,可安全创建新的证书请求。"
    # 这里添加创建新证书请求的逻辑,比如:
    # $policy = New-AzKeyVaultCertificatePolicy ...
    # New-AzKeyVaultCertificate -VaultName $VaultName -Name "new-cert" -CertificatePolicy $policy
}

补充说明

  • Get-AzureKeyVaultCertificateOperation返回的对象包含了证书请求的详细信息,比如StatusDetails会给出失败原因,RequestId可以用来跟踪具体的请求。
  • 如果你需要定期轮询等待"In progress"的操作完成,可以在循环中调用这个命令,直到状态变为"Completed"或其他终止状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:15:09