gpt4 book ai didi

powershell - 如何按模板和到期日期过滤x509证书,仅保留新鲜证书?

转载 作者:行者123 更新时间:2023-12-03 00:10:09 25 4
gpt4 key购买 nike

获取用户AD证书的另一个问题。这个问题全都与过滤输出数据有关。我们有几个用于不同目的的证书模板(智能卡,VPN等),并且AD中仍然存在按时间到期的证书。如何过滤每个用户的证书列表?我只需要保留每个模板的最新证书。
广告请求示例:

$user = Get-ADUser username -Properties "Certificates"
$Cert = $user.certificates | foreach {New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $_} | select @{n='Fullname';e={$_.subject -replace '^.*?CN=|,.*$'}}, @{n='subject';e={$_.subject -replace '^CN=|^E=|,.*$'}}, Notafter, thumbprint, @{N="Template";E={($_.Extensions |
?{$_.oid.Friendlyname -match "Certificate Template Information|Certificate Template Name"}).Format(0) `
-replace "(.+)?=(.+)\((.+)?", '$2'}}

$Cert

输出为3个证书,例如:
Fullname   : Full User Name
subject : subject@domain.com
NotAfter : 30.05.2019 11:25:45
Thumbprint : hash_1
Template : temaplate_1

Fullname : Full User Name
subject : subject@domain.com
NotAfter : 02.04.2019 16:56:24
Thumbprint : hash_2
Template : **template_2**

Fullname : Full User Name
subject : subject@domain.com
NotAfter : 16.05.2018 14:54:22
Thumbprint : hash_3
Template : **template_2**

我该如何过滤我的输出以仅保留每个模板的最新证书,例如。 hash_1和hash_2?

组对象看起来不错,但是我该如何进行
$Cert | Group-Object subject | fl


Name : subject@domain.com
Count : 3
Group : {@{Fullname=Full User Name; subject=subject@domain.com; NotAfter=30.05.2019 11:25:45; Thumbprint=hash_1; Template=temaplate_1}, @{Fullname=Full User Name; subject=subject@domain.com; NotAfter=02.04.2019 16:56:24; Thumbprint=hash_2; Template=template_2}, @{Fullname=Full User Name; subject=subject@domain.com; NotAfter=16.05.2018 14:54:22; Thumbprint=hash_3; Template=template_2}}
Values : {subject@domain.com}

我认为可以通过某种方式使用Where-Object过滤结果。有什么帮助吗?

最佳答案

您可以使用Group-Object将对象按两个属性(主题和模板)分组,并按NotAfter对每个组进行排序,然后选择第一个元素。

$x | Group-Object -Property Subject, Template |
ForEach-Object {
$_.Group |
Sort-Object -Property NotAfter -Descending |
Select-Object -First 1
}

关于powershell - 如何按模板和到期日期过滤x509证书,仅保留新鲜证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50823221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com