我正在尝试过滤本地计算机上的证书并删除 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