Microsoftのセキュリティ情報の一覧を作成するスクリプト
ここに書かれている内容を読み取って、日付、MSxx-xxx といった番号、タイトル、影響を受ける製品、影響を受けるサービスパック、深刻度をカンマ区切りで一覧出力するスクリプトを作成してみました。
このあたりのスクリプトと組み合わせれば、適用されているサービスパック等の一覧表を作るのが楽になったりするかも知れません。
スクリプトはこんな感じ。お好きなように加工してどうぞ。
TARGET_ID = "searchControl_resultsGrid" URL = "http://www.microsoft.com/japan/technet/security/current.aspx" CACHE_FILE = "C:\tmp\current.aspx.htm" USE_CACHE = False Const ForReading = 1 Dim r( 50 ) If USE_CACHE Then Set objFSO = CreateObject( "Scripting.FileSystemObject" ) Set objText = objFSO.OpenTextFile( "C:\tmp\current.aspx.htm", ForReading ) zHTML = "" Do Until objText.AtEndOfStream s = objText.Readline zHTML = zHTML & s Loop Else Set objHTTP = CreateObject( "MSXML2.XMLHTTP" ) Call objHTTP.Open( "GET", URL, False ) objHTTP.Send zHTML = objHTTP.ResponseText Set objHTTP = Nothing End If i = InStr( zHTML, TARGET_ID ) if i = 0 Then return i = i + Len( TARGET_ID ) i = InStr( i, zHTML, "</tr" ) If i = 0 Then return TableEnd = InStr( i, zHTML, "</table" ) n = 0 Do TrStart = InStr( i, zHTML, "<tr" ) TrEnd = InStr( TrStart, zHTML, "</tr" ) If ( TrStart = 0 ) Or ( TrEnd = 0 ) Then Exit Do If ( TrStart > TableEnd ) Or ( TrEnd > TableEnd ) Then Exit Do s = Mid( zHTML, TrStart, TrEnd - TrStart ) s = Replace( s, vbCrLf, "" ) s = Replace( s, vbCr, "" ) s = Replace( s, vbLf, "" ) j = 1 k = 0 Do TagEnd = InStr( j, s, ">" ) If TagEnd = 0 Then Exit Do If Mid( s, TagEnd + 1, 1 ) <> "<" Then TagStart = InStr( TagEnd + 2, s, "<" ) if TagStart = 0 Then TagStart = Len( s ) r(k) = Trim( Mid( s, TagEnd + 1, TagStart - TagEnd - 1 ) ) k = k + 1 If k > 20 Then Exit Do j = TagStart Else j = TagEnd + 1 End If Loop While True ' r(1) - 日付 r(2) - MSxx-xxx ' r(4) - タイトル r(7) - 影響を受ける製品 ' r(8) - 影響を受けるサービスパック r(9) - 深刻度 s = """" & r( 1 ) & """," & """" & r( 2 ) & """," & _ """" & r( 4 ) & """," & """" & r( 7 ) & """," & _ """" & r( 8 ) & """," & """" & r( 9 ) & """" WScript.Echo s n = n + 1 i = TrEnd Loop While True MsgBox "Done." WScript.Quit