按日期过滤结果但出现 system.type 错误

按日期过滤结果但出现 system.type 错误

我正在尝试过滤本地计算机上的证书并删除 2021 年 4 月 10 日之前创建的所有证书

PS C:\Users\juraj> $cert = Get-ChildItem Cert:\localMachine\My | Where-Object { $_.NotBefore -is [DateTime]::Today  }
Cannot convert value "14/10/2021 12:00:00 AM" to type "System.Type". Error: "Invalid cast from 'System.DateTime' to
'System.Type'."
At line:1 char:62
+ ... ocalMachine\My | Where-Object { $_.NotBefore -is [DateTime]::Today  }
+                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], RuntimeException
    + FullyQualifiedErrorId : RuntimeException

所以目前我正在测试该函数,但即使转换(Get-Date).ToString,它也会以类似的红色错误海洋结束。

我该怎么办?

W11 中的 PS 5.1

答案1

我已经解决了 - 我将字符串转换为 [datetime],然后将其用作过滤器

$string='13/10/2021'
$string=[Datetime]::ParseExact($string, 'dd/MM/yyyy', $null)
Get-ChildItem -Recurse Cert:\localMachine\My | Where { $_.NotBefore -lt $string  } | Remove-Item

相关内容