Что вам нужно сделать, это отфильтровать на основе свойства NotAfter
.В зависимости от того, чего именно вы хотите достичь, может быть несколько вариантов:
# All certs which expiration date is before Friday, July 19, 2019 00:00:01
# This will include already expired certificates too
$_.NotAfter -le (Get-Date).Date.AddDays(30)
# All certs which expiration date is before Friday, July 19, 2019 00:00:00
# and after Wednesday, June 19, 2019 00:00:00
# This will include certificates that expired today
$_.NotAfter -le (Get-Date).Date.AddDays(30) -and $_.NotAfter -ge (Get-Date).Date
Общие принципы:
- Используйте
-ge
или -gt
для указания даты начала.Разница только в том, хотите ли вы указать точную дату или нет (так, одна секунда разницы) - Аналогично, используйте
-le
или -lt
для указания даты окончания (Get-Date)
покажет текущую дату и время, а (Get-Date).Date)
, сегодняшнюю дату в 00: 00: 00:
PS> Get-Date
Wednesday, June 19, 2019 12:16:57
PS> (Get-Date).Date
Wednesday, June 19, 2019 00:00:00
Как только вы уточните точные условия, используйте приведенные выше правила для построения вашего запроса идобавьте его к своему Where-Object
как @ Ansgar , указанному в комментариях:
Where-Object {
-not $_.PSIsContainer -and $_.NotAfter -le (Get-Date).Date.AddDays(30)
}