如何使用 win32_reliabilityRecords 输出中的 where-object 在 powershell 中过滤日期

How to filter dates in powershell using where-object from output of win32_reliabilityRecords

我正在尝试创建一个 powershell 脚本来获取 1 或 2 天前的失败修补程序。

所以我正在尝试使用 where-object select 2 天前失败的补丁,但它没有正确地抛出正确的输出。

下面是我在 google 的帮助下编写的命令。

$mail_body = Get-WmiObject -Class win32_reliabilityRecords -Filter "SourceName = 'Microsoft-Windows-WindowsUpdateClient'" | Select-Object user, productname, @{LABEL = “date”;EXPRESSION = {$_.ConvertToDateTime($_.timegenerated)}} | where { $_.message -match ‘failure’ } | ConvertTo-Html -Head $style 

这应该检索过去 7 天内发生的事件:

Get-WmiObject -Class Win32_ReliabilityRecords -Filter "SourceName = 'Microsoft-Windows-WindowsUpdateClient'" |
    Select-Object { LABEL = "date"; EXPRESSION = { $_.ConvertToDateTime($_.timegenerated) } } |
    Where-Object { $_.date -ge ([datetime]::today).AddDays(-7) }