Welcome to TechNet Blogs Sign in | Join | Help

フィールドSEあがりの安納です

Microsoft Evangelist -- Junichi Anno

News

  • お正月はオンラインセミナー 愛の戦士ですが何か?

    新着動画

    ・PowerPivotデモ

    ・SQL Azureの管理

    Twitter Updates

      follow me on Twitter

      Tech
    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 If
    Next

     

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

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

    Posted: Saturday, September 01, 2007 11:56 PM by junichia

    Comments

    フィールドSEあがりの安納です said:

    大変おまたせしましてすみません。System Center Essentials の環境が壊れてしまい、再構築したりなんだりで時間をくってしまいました。 今回は「その4 インストール編」です。 その1~その4

    # September 6, 2007 7:06 AM

    フィールドSEあがりの安納です said:

    System Center Essentials には、ソフトウェアの配信機能と、更新ファイルの配信機能があります。どちらも、裏では WSUS が動いています。 簡単にそれぞれの機能を書き出します。 ソフトウェアの配布機能

    # September 25, 2007 1:55 PM
    Anonymous comments are disabled
    Page view tracker