Еще одна проблема с получением пользовательских сертификатов AD.Этот вопрос все о фильтрации выходных данных.У нас есть несколько шаблонов сертификатов для разных целей (смарт-карты, VPN и т. Д.), И время от времени сертификаты с истекшим сроком действия все еще существуют в AD.Как я могу отфильтровать список сертификатов каждого пользователя?Мне нужно оставить только последние сертификаты каждого шаблона .Пример запроса 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
для фильтрации результатов.Любая помощь?