2017-08-30 9 views
0

McAfee AVDateをキャプチャするためのpowershellスクリプトを作成しましたが、これも出力されます。しかし、ここでの問題は、McAfee AVDateの日付が現在の日付よりも2日古い場合はMcAfee AVdateを赤色で表示する必要があるというスクリプトに別の行が追加されていますが、ここでは機能しません。powershellスクリプトのクエリ

誰でもこの修正をお手伝いできますか?日付を文字列に変換されますので、

$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

elseブロックには決して行きません。 $ avdateから来る日付をチェックし、それに応じて条件を入れなければなりません –

+0

"McAfee AVDate \t 2017/06/21"という形式で日付が来ますが、色は赤に変わりません。日付が現在の日付 – Sandeep

+0

より9日古いので、elseifの条件を明示的に指定してください –

答えて

0

$avDateは、 "マカフィーAVDate 2017年6月21日" であれば、

$avDate -lt [datetime]::Today.AddDays(-2) 

は常に($avDateを一致させるために)偽となり、文字列の比較が行われます(数字は文字よりも小さく比較されます)。

日付を抽出して解析し、それを比較する必要があります。 $dと日付の比較を行う、その後

$d = [DateTime]::ParseExact($avDate.Substring(14), "yyyy'/'MM'/'dd", $null); 

と:で、常に "YYYY/MM/DD" という形式を仮定。

+0

上記のスクリプトを編集しました。現時点ではデータが赤くなっています。私は、AVDateが現在のシステム日付よりも2日古い場合、データのみを赤色にしたいと考えています。 – Sandeep

+0

@Sandeep Given(質問のコメントに記載されています)は他のテキストから始まり、日付と比較します。だから、私はこの答えの中で日付部分だけを抽出します: 'Substring'への呼び出し。 – Richard

関連する問題