求助:AWS中获取未使用证书的PowerShell脚本排序方法
如何筛选并排序AWS ACM中不再使用的证书(PowerShell)
嘿,我来帮你搞定这个问题!你已经通过Get-ACMCertificateList | Get-ACMCertificateDetail拿到了所有ACM证书的详情,接下来核心要做两件事:筛选出未被使用的证书,再按你需要的规则排序。
第一步:筛选未使用的证书
ACM证书的InUseBy属性会列出所有关联的AWS资源(比如CloudFront分发、ALB、API Gateway等等)。如果这个数组是空的,就说明证书完全没在使用。咱们可以用Where-Object来过滤:
# 获取所有未被使用的ACM证书详情 $UnusedCertificates = Get-ACMCertificateList | Get-ACMCertificateDetail | Where-Object { $_.InUseBy.Count -eq 0 }
如果你还想进一步过滤(比如只找未过期的未使用证书,或者反过来只找已过期的),可以加额外条件:
# 例子:筛选未过期且未使用的证书 $ActiveUnusedCerts = $UnusedCertificates | Where-Object { $_.Status -eq 'ISSUED' } # 例子:筛选已过期且未使用的证书 $ExpiredUnusedCerts = $UnusedCertificates | Where-Object { $_.Status -eq 'EXPIRED' }
第二步:对未使用证书排序
用Sort-Object就能轻松实现排序,你可以根据自己的需求选择排序字段:
1. 按过期时间排序(最常用)
如果想优先处理快要过期的未使用证书,按NotAfter(过期时间)升序排列:
# 按过期时间从近到远排序 $SortedByExpiry = $UnusedCertificates | Sort-Object -Property NotAfter -Ascending
要是想先看最早过期的,就把-Ascending换成-Descending。
2. 按域名名称排序
如果想按域名字母顺序整理:
# 按域名名称字母顺序排序 $SortedByDomain = $UnusedCertificates | Sort-Object -Property DomainName
3. 按证书创建时间排序
想看看哪些未使用证书是最早创建的:
# 按创建时间从早到晚排序 $SortedByCreation = $UnusedCertificates | Sort-Object -Property CreatedAt -Ascending
最后:输出你关心的字段
排序后可以用Select-Object只输出你需要的信息,避免冗余:
$SortedByExpiry | Select-Object DomainName, NotAfter, CertificateArn, Status
这样就能得到清晰的、按规则排序的未使用ACM证书列表啦!
内容的提问来源于stack exchange,提问作者user8172425
相关产品推荐
相关产品推荐

