McAfeeのDatバージョンとWindowsUpdateの最終更新日を毎月報告せよ、と会社からのありがたーいお達し。
いまどき、「力技でやるんかい」って突っ込みはうちの会社には通用しない。
これまでは某H社の馬鹿高いツールを使っていたのだが、よっぽど評判が悪いのか待てど暮らせどWindows8には対応してこない。
ActiveDirectoryでも入れてちょっとしたツールでも作って情報収集すれば一発なのだが、何があっても(目先の)節約至上主義の会社なので力技をこよなく好む。
とりあえず自分だけは楽をしようとスクリプトを書いてみた。
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030
| param( $mailFrom, $mailTo ) $path = "hklm:SOFTWARE\Network Associates\ePolicy Orchestrator\Application Plugins\VIRUSCAN8800"
$prop = Get-ItemProperty -Path $path #----- $Session = New-Object -ComObject Microsoft.Update.Session $Searcher = $Session.CreateUpdateSearcher() $current = $Searcher.QueryHistory(1,1) | select -ExpandProperty date
#----- $mess1 = "McAfee Datバージョンは 【{0}】 です。" -f $prop.DATVersion $mess2 = "WindowsUpdate最終適用日は 【{0}】 です。" -f $current
#----- if($mailFrom -and $mailTo){ Send-MailMessage -To $mailTo ` -From $mailFrom ` -Subject "報告レポート" ` -SmtpServer "hoge.ccc.co.jp" ` -Body "`r`n$mess1`r`n$mess2" ` -Encoding ([System.Text.Encoding]::Default) } else{ Add-Type -AssemblyName System.Windows.Forms [WIndows.Forms.MessageBox]::Show("$mess1`r`n$mess2") | Out-Null } | |
McAfeeのDatバージョンについてはレジストリに持っている値を使ってみました。(確実かどうかは判りません)
WindowsUpdateについては、きっとやり方が色々あるのでしょうが、今回は以下のサイトを参考にしました。
Hey, Scripting Guy! コンピューターに追加されたすべての更新プログラムの一覧を取得する方法はありますか
12行目の「QueryHistory」メソッドで履歴の開始位置と件数を指定する様なので最新の1件を取得してみました。
そのまま実行すると結果をメッセージボックス表示、パラメータを指定するとメール送信としてみました。
------
WindowsUpdateの日付については「Get-HotFix」なんてコマンドレットがあるので、そちらのほうがきっと簡単ですよね・・・。
0 件のコメント:
コメントを投稿