2017-07-12 7 views
2

私のコンピュータのWindowsアップデートが30日以上経過しているかどうかをテストしています。あります。私のコンピュータのWindowsアップデートが30日以上古いかどうかを確認するにはどうすればいいですか

誰かが日付のテストを手伝ってもらえますか?私はYOUR WINDOWS UPDATES ARE IN DATEと同じ結果を得ているようです。

私はGet-Date結果に対してそれをテストできるように日付の形式を変更する必要があると思いますか?

Get-WmiObject -Class win32_reliabilityRecords -filter "sourcename = 'Microsoft-Windows-WindowsUpdateClient'" -ErrorAction SilentlyContinue | 
    select -first 1 @{LABEL = "date"; EXPRESSION = {$_.ConvertToDateTime($_.timegenerated)}}, @{LABEL = 'Update'; EXPRESSION = {$_.message}} | 
    FT -AutoSize -Wrap 

$DateTimeNow = Get-Date 
$Daysback = "-31" 
$Updatedate = $_.ConvertToDateTime 

if ($DateTimeNow.AddDays($Daysback) -lt $Updatedate.InstalledOn.Date) { 
    $wshell = New-Object -ComObject Wscript.Shell 

    $wshell.Popup("***WARNING***YOUR WINDOWS UPDATES ARE OVER A MONTH OUT OF 
    DATE. PLEASE CONTACT IT", 0, " Windows Update Check", 0x1) 
} 
else { 
    $wshell = New-Object -ComObject Wscript.Shell 

    $wshell.Popup("YOUR WINDOWS UPDATES ARE IN DATE", 0, " Windows 
    Update Check", 0x1) 
} 
+0

これはなぜですか? gwmi win32_quickfixengineering |?($ _。Installedon -gt((Get-Date).adddays(-30)))および($ _。Installedon -lt(Get-Date))} ' –

答えて

3

これは動作するはずです:

$LastUpdate = Get-WmiObject -Class win32_reliabilityRecords -filter "sourcename = 
    'Microsoft-Windows-WindowsUpdateClient'" -ErrorAction SilentlyContinue | 
    Select -first 1 @{LABEL = "date";EXPRESSION = {$_.ConvertToDateTime($_.timegenerated)}},@{LABEL = 'Update';EXPRESSION = {$_.message}} 

$DateTimeNow = Get-Date 
$Daysback = -31 

if($LastUpdate.Date -lt $DateTimeNow.AddDays($Daysback)){ 
    $wshell = New-Object -ComObject Wscript.Shell 
    $wshell.Popup("***WARNING***YOUR WINDOWS UPDATES ARE OVER A MONTH OUT OF DATE. PLEASE CONTACT IT",0," Windows Update Check",0x1) 
} else { 
    $wshell = New-Object -ComObject Wscript.Shell 
    $wshell.Popup("YOUR WINDOWS UPDATES ARE IN DATE",0," Windows Update Check",0x1) 
} 

変更:

  • あなたが変数にGet-WmiObject呼び出しの結果を返していなかったし、その後は常にだった$Updatedateをテストしたが空の。
  • 日付のロジックを元に戻す必要がありました。
関連する問題