SCE / WSUS :今すぐに更新ファイルやソフトウェアをインストールしたい その3 ダウンロード編

今すぐに更新ファイルやソフトウェアをインストールしたい その1
今すぐに更新ファイルやソフトウェアをインストールしたい その2 検索

につづいて、その3 ダウンロード編 です。

ダウンロードの対象となる更新ファイルは、「その2 検索編」で作成した objSearchResult オブジェクトに格納されています。今回は見つかった更新ファイルを全てダウンロード対象としていますが、例えば、「重要な更新だけ適用したい」 ということであれば、「その2 検索編」で示したソースの5行目に書かれた検索条件を以下のように修正します。

strSeatchCondition = "IsInstalled=0 and IsAssigned=1"

IsAssigned = 1 は、Windows Update を実行したときに、「優先度の高い更新プログラム」に表示される更新ファイルを示しています。

では、ダウンロードを行うコードを書いてみます。
以下に示すソースは、前回の「その2 検索編」から続いていますので、実行する場合には「その2 検索編」で示したコードに追記してください。

' (その2 検索編 からの続きです)WScript.Echo "更新ファイルをダウンロードしています..."

' ダウンロードを行うには、はじめに UpdateDownloader オブジェクトを' 取得します。' UpdateDownloader オブジェクトについては、以下を参照してください。' http://msdn2.microsoft.com/en-us/library/aa386131.aspx' 以下では、UpdateDownloader オブジェクトを objUpdateDownloader という' 名前で取得しています。

Set objUpdateDownloader = objUpdateSession.CreateUpdateDownloader()

' ダウンロードする更新ファイルは、UpdateDownloader オブジェクトの ' Updates プロパティで指定します。指定するのは、既に取得してある' 検索結果です。つまり、objUpdateCollection ですね。' 確認のために、以下のページを見てください。' http://msdn2.microsoft.com/en-us/library/aa386371.aspx' Updates プロパティの出力値が UpdateCollection オブジェクト' であることがわかります。

objUpdateDownloader.Updates = objUpdateCollection

' ダウンロードしたい更新ファイルの指定が終わったら、ダウンロード' の開始です。' UpdateDownloader に用意されているメソッドは以下を参照してください。' http://msdn2.microsoft.com/en-us/library/aa386131.aspx' ダウンロードの途中経過を表示するなど、ダウンロードの途中に' 別の処理を差し込むには、BeginDownload というメソッドを使用' するのですが、今回は簡単に Download メソッドを使用します。' Download メソッドを使用すると、ダウンロードが完了するまで' 応答がありませんが、ただ待てばよいので楽です。' いや、実は、BeginDownload の検証がうまくできなかった' ことは内緒です。

objUpdateDownloader.Download()

Wscript.Echo WScript.Echo "ダウンロードした更新ファイル一覧"Wscript.Echo "-------------------------------------------------"Wscript.Echo

' ダウンロードが完了したら、IsDownloaded プロパティを使用して' それぞれが正しくダウンロードできたかを検証します。

For i = 0 To objSearchResult.Updates.Count - 1 Set objUpdate = objSearchResult.Updates.Item( i ) If objUpdate.IsDownloaded Then WScript.Echo "・" & objUpdate.Title & "," & "ダウンロード完了" else WScript.Echo "・" & objUpdate.Title & "," & "ダウンロード失敗" End IfNext

実行結果例は以下のとおりです。
クリックすると大きくなります。

次回は、「その4 インストール」編です。