A WUA használata a Windows-frissítések telepítési állapotának meghatározásához

Oldal frissítve :
Oldal létrehozásának dátuma :

összefoglalás

A WUA segítségével keresse meg a jelenleg használt Windowsra telepített frissítéseket (KB-ban).

KB がインストールされている一覧を表示しています。

Működési környezet

Művelet-ellenőrzési környezet

Windows verzió
  • Windows 7 Ultimate
NET-keretrendszer verziója
  • 4

Rendszerkövetelmények szükségesek

Windows verzió
  • Windows 7 (más, meg nem erősített környezetek)
NET-keretrendszer verziója
  • 4.0 (más környezet nincs megerősítve)

lényeg

A mintáról

Ennek a mintának az a célja, hogy meghatározza a Windows rendszerre telepített tudásbázist, és a cél majdnem megegyezik a "WMI használata a Windows-frissítések telepítési állapotának meghatározásához" kifejezéssel. Ezt a mintát azonban a WMI helyett a "WUA" használatával ellenőrzik.

A tudásbázis leírását a "WMI használata a Windows-frissítések telepítésének megismeréséhez" című témakör ismerteti, ezért ellenőrizze ott.

Mi az a WUA?

A WUA a "Windows Update Agent" rövidítése, és olyan COM-felületek halmaza, amelyek lehetővé teszik a Windows Update és a Windows Server Update Services (WSUS) elérését. Segítségével meghatározhatja, hogy melyik KB van telepítve a Windows rendszerre.

A WUA és a WUA-val folytatott programozás részletes magyarázatát lásd az alábbi linkeken:

A KB telepítési állapotát kereső programok

Hivatkozások hozzáadása (C#)

「参照設定」を右クリックして「参照の追加」を選択

A WUA használatához hivatkoznia kell a WUAPI 2.0 típustárra a COM-ból.

C#-projektek esetén kattintson a jobb gombbal a Hivatkozások elemre a Megoldáskezelőben, és válassza a Hivatkozások hozzáadása lehetőséget.

参照の追加ダイアログで WUAPI 2.0 Type Library を選択して追加しています

Amikor megjelenik a Hivatkozás hozzáadása párbeszédpanel, válassza a WUAPI 2.0 típustár lehetőséget a COM lapon, majd kattintson az OK gombra.

OK, ha a "WUApiLib" hozzá van adva a Megoldáskezelő referenciabeállításaihoz.

Hivatkozás hozzáadása (VB.NET)

My Project から開くを選択

Ha VB.NET, kattintson a jobb gombbal a Saját projekt elemre a Megoldáskezelőben, és válassza a Megnyitás parancsot.

プロジェクトのプロパティから参照タブを選択し WUAPI 2.0 Type Library の参照を追加しています

Amikor a tulajdonságok megnyílnak, kattintson a bal oldali fülön a "Tallózás" gombra, kattintson a jobb oldalon található Hozzáadás gombra. A C#-hoz hasonlóan megjelenik a Hivatkozás hozzáadása párbeszédpanel, ezért válassza a "WUAPI 2.0 Type Library" lehetőséget a "COM" fülön, majd kattintson az OK gombra.

WUAPI 2.0 Type Library が追加されていることを確認し、WUApiLib 名前空間をインポートします

Ha visszatér az előző képernyőre, és hozzáadja a "WUAPI 2.0 Type Library" -t a középső listához, az rendben van.

Ezenkívül ellenőrizzük a "WUApiLib" -et az alábbi listából, hogy kihagyjuk a névtér leírását a programban.

jelenet

KB チェック実行ボタンと検索結果一覧を表示するためのテキストボックスを配置

A mintában használt képernyő egy egyszerű képernyő, amely egy végrehajtási gombbal rendelkezik a KB telepítési állapotának ellenőrzéséhez, valamint egy szövegmezővel, amely megjeleníti az eredményeket.

WPF-ben készítem, de ugyanaz a képernyő konfigurálható Windows Formában.

program

A C UpdateSession # hozzáadja a "" szótusing WUApiLib; a kód elejéhez, hogy csökkentse az osztályok és más névterek leírását. A VB.NET megadotta, hogy importálja a névteret a projekt tulajdonságai között, így nem kell semmi különlegeset írnia, de ha még nem tette meg, hozzá kell adnia a ".Imports WUApiLib

* Mind a C#-ban, mind a VB.NET, ha az összes osztálynevet olyan névtérből írják, mint például a ",WUApiLib.UpdateSession a fenti specifikáció nem szükséges.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using WUApiLib; // 参照から「COM」より「WUAPI 2.0 Type Library」追加

Az alábbiakban látható az a kód, amely megkeresi és felsorolja a telepített KB-t.

C #

this.ResultTextBox.Text = "";

// アップデートセッション 作成
UpdateSession us = new UpdateSession();

// アップデート検索インスタンス作成
IUpdateSearcher searcher = us.CreateUpdateSearcher();

// 「インストールされているもの」「ソフトウェア」で検索し、結果を取得
ISearchResult result = searcher.Search("IsInstalled=1 and Type='Software'");

StringBuilder builder = new StringBuilder();

// アップデート一覧からタイトル一覧を取得する。
foreach (IUpdate u in result.Updates)
{
  builder.AppendLine("[" + u.Title + "]");
}

builder.AppendLine();

// アップデート一覧から KB の番号だけ取得する。
foreach (IUpdate u in result.Updates)
{
  foreach (string str in u.KBArticleIDs)
  {
    builder.AppendLine(str);
  }
}

// 取得した KB 一覧をセット
this.ResultTextBox.Text = builder.ToString();

VB.NET

Me.ResultTextBox.Text = ""

' アップデートセッション 作成
Dim us As New UpdateSession()

' アップデート検索インスタンス作成
Dim searcher As IUpdateSearcher = us.CreateUpdateSearcher()

' 「インストールされているもの」「ソフトウェア」で検索し、結果を取得
Dim result As ISearchResult = searcher.Search("IsInstalled=1 and Type='Software'")

Dim builder As New System.Text.StringBuilder()

' アップデート一覧からタイトル一覧を取得する。
For Each u As IUpdate In result.Updates
  builder.AppendLine("[" + u.Title + "]")
Next

builder.AppendLine()

' アップデート一覧から KB の番号だけ取得する。
For Each u As IUpdate In result.Updates
  For Each str As String In u.KBArticleIDs
    builder.AppendLine(str)
  Next
Next

' 取得した KB 一覧をセット
Me.ResultTextBox.Text = builder.ToString()

A tartalom a megjegyzésnek megfelelően van megadva.

IUpdateSearcher.SearchA metódus argumentumaként megadott karakterlánccal módosíthatja, hogy mit kapjon. További információ: IUpdateSearcher::Keresési módszer.