Hatena::Groupvbscript

Microsoft.Update.Session

主要な Windows 標準コンポーネントの一覧 → http://vbscript.g.hatena.ne.jp/keyword/ProgID
VBScript 基礎文法最速マスター → http://vbscript.g.hatena.ne.jp/cx20/20100131/1264906231

Microsoft.Update.Session

Microsoft.Update.Session

概要

Microsoft.Update.Session は、Windows Update オブジェクト(Windows Update API)を表す ProgID です。

Windows Update API を使用することで、Windows Update の情報にアクセスすることが可能です。

サンプル

' File : ShowWindowsUpdateProgram.vbs
' Usage : CScript //Nologo ShowWindowsUpdateProgram.vbs
' Description : VBScript からWindows Update API を使用して優先度の高い更新プログラムを表示するサンプル。
Option Explicit

Call Main()

Sub Main()
    Dim strType
    Dim nInstalled
    Dim nAutoSelectOnWebSites
    
    strType = "Software"       ' Software:ソフトウェア, Hardware:ハードウェア
    nInstalled = 0             ' 0:未インストール, 1:インストール済
    nAutoSelectOnWebSites = 1  ' 1:優先度の高い更新プログラム(Web サイトでの自動選択と同じ)

    Dim strSearchCondition
    strSearchCondition = MakeSearchCondition( strType, nInstalled, nAutoSelectOnWebSites )
    
    Call ShowWindowsUpdateProgram( strSearchCondition )
End Sub

Function MakeSearchCondition( strType, nInstalled, nAutoSelectOnWebSites )
    Dim strResult
    ' ex. "Type='Software' And IsInstalled=0 And AutoSelectOnWebSites=1"
    strResult = "Type = '" & strType & "'" & _
        " And IsInstalled = " & nInstalled & _
        " And AutoSelectOnWebSites = " & nAutoSelectOnWebSites
    MakeSearchCondition = strResult
End Function

Sub ShowWindowsUpdateProgram( strSearchCondition )
    Dim objSession
    Set objSession = CreateObject("Microsoft.Update.Session")

    Dim objSearcher
    Set objSearcher = objSession.CreateUpdateSearcher

    Dim objResults
    Set objResults = objSearcher.Search( strSearchCondition )

    Dim colUpdates
    Set colUpdates = objResults.Updates

    Dim objEntry
    For Each objEntry In colUpdates
        WScript.Echo "[" & objEntry.MsrcSeverity & "]" & vbTab & objEntry.Title
    Next
End Sub

実行結果

[Important]     Microsoft Visual Studio 2010 Service Pack 1 セキュリティ更新プログラム (KB2565057)
[Critical]      Windows XP 用 Internet Explorer 8 の累積的なセキュリティ更新プログラム (KB2559049)
[Important]     Windows XP 用セキュリティ更新プログラム (KB2567680)
[Important]     Windows XP 用セキュリティ更新プログラム (KB2566454)
[Important]     Microsoft .NET Framework 4 用セキュリティ更新プログラム、Windows XP x86、Windows Server 2003 x86、Windows Vista x86、Windows 7 x86 および Windows Server 2008 x86 向け (KB2487367)
[]      Windows XP の ActiveX Killbits に対する更新プログラム ロールアップ (KB2562937)
[]      悪意のあるソフトウェアの削除ツール - 2011 年 8 月 (KB890830)
[]      Outlook 2003 迷惑メール フィルタ更新プログラム: KB2586918
[Moderate]      Microsoft .NET Framework 4 用セキュリティ更新プログラム、Windows XP x86、Windows Server 2003 x86、Windows Vista x86、Windows 7 x86 および Windows Server 2008 x86 向け (KB2539636)
[Moderate]      Microsoft .NET Framework 2.0 SP2 のセキュリティ更新プログラム (Windows Server 2003 x86 および Windows XP x86 用)(KB2539631)
[Moderate]      Windows XP 用セキュリティ更新プログラム (KB2570222)
[Critical]      Windows XP 用セキュリティ更新プログラム (KB2536276)

参考情報