查询powershell脚本

时间:2017-08-30 03:27:10

标签: powershell

我已经编写了一个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>"

}

1 个答案:

答案 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进行日期比较。