我已经编写了一个PowerShell脚本来捕获McAfee AVDate,它也提供了输出。但问题是,我在脚本中添加了另一行,如果McAfee AVDate日期比当前日期早2天,则应该以红色显示McAfee AVdate,但这不起作用。
有人可以帮我纠正这个吗?
$AVDate = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\McAfee\AVEngine").AVDatDate
$AVDatDate = $AVDate
$thedate = get-date -date $(get-date).adddays(-2) -format yyyy-MM-dd
if($AVDatDate -lt $thedate) {
Add-Content $report "<tr>"
Add-Content $report "<td bgcolor= 'White' height='30' align=center><B>12</B></td>"
Add-Content $report "<td bgcolor= 'White' height='30' align=left><B>McAfee AVDate</B></td>"
Add-Content $report "<td bgcolor= 'red' height='30' align=left><B>$AVDatDate</B></td>"
Add-Content $report "</tr>"
}
else
{
Add-Content $report "<tr>"
Add-Content $report "<td bgcolor= 'White' height='30' align=center><B>12</B></td>"
Add-Content $report "<td bgcolor= 'White' height='30' align=left><B>McAfee AVDate</B></td>"
Add-Content $report "<td bgcolor= 'Aquamarine' height='30' align=left><B>$AVDatDate</B></td>"
Add-Content $report "</tr>"
}
答案 0 :(得分:0)
如果$avDate
是“McAfee AVDate 2017/06/21”,那么
$avDate -lt [datetime]::Today.AddDays(-2)
将始终为false,因为日期将转换为字符串(以匹配$avDate
)并完成字符串比较(并且数字比字母少)。
您需要提取并解析日期并进行比较。假设格式为“yyyy / MM / dd”,那么总是这样:
$d = [DateTime]::ParseExact($avDate.Substring(14), "yyyy'/'MM'/'dd", $null);
然后与$d
进行日期比较。