【发布时间】:2018-06-15 10:02:53
【问题描述】:
我正在尝试从 WMI 中的 configMgr 获取所有超过 30 天的软件更新,但我似乎无法弄清楚。
WMI 中的时间格式为:DateRevised:20121113180000.000000+000
我尝试了以下方法:
$Date30DaysAgo = (get-date).AddDays(-30).ToString("yyyymmddHHMMSS")
Get-WmiObject -Namespace "root\SMS\site_PS1" -Class SMS_SoftwareUpdate -ComputerName SRVSCCM01 -Filter {"DateRevised <= '$($Date30DaysAgo)%'"}
这是可行的,但我需要使用-Filter 而不是where-object 来使其正常运行
$Date30DaysAgo = (get-date).AddDays(-30)
Get-WmiObject -Namespace "root\SMS\site_PS1" -Class SMS_SoftwareUpdate -ComputerName SRVSCCM01 | Where-Object {$_.ConvertToDateTime($_.DateRevised) -lt $Date30DaysAgo }
这可能是因为我无法进行时间转换和 WQL 小于运算符的工作.. 有人能指出我正确的方向吗?
【问题讨论】:
标签: powershell filter wmi wql