Verwenden von WUA zum Ermitteln des Installationsstatus von Windows-Updates

Diese Seite wurde aktualisiert :
Erstellungsdatum der Seite :

Zusammenfassung

Verwenden Sie WUA, um nach Updates (in KB) zu suchen, die unter dem derzeit verwendeten Windows installiert sind.

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

Betriebsumgebung

Umgebung für die Betriebsprüfung

Windows-Version
  • Windows 7 Ultimate
.NET Framework-Version
  • 4

Systemvoraussetzungen erforderlich

Windows-Version
  • Windows 7 (andere Umgebungen nicht bestätigt)
.NET Framework-Version
  • 4.0 (keine anderen Umgebungen bestätigt)

Substanz

Über dieses Beispiel

Das Ziel dieses Beispiels besteht darin, die KB zu bestimmen, die unter Windows installiert ist, und der Zweck ist fast derselbe wie "Verwenden von WMI zum Bestimmen des Installationsstatus von Windows-Updates". Dieses Beispiel wird jedoch mit "WUA" anstelle von WMI überprüft.

Die KB-Beschreibung ist unter "Verwenden Sie WMI, um herauszufinden, wie Windows-Updates installiert werden" beschrieben, also überprüfen Sie dort.

Was ist WUA?

WUA steht für "Windows Update Agent" und ist ein Satz von COM-Schnittstellen, die den Zugriff auf Windows Update und Windows Server Update Services (WSUS) ermöglichen. Sie können damit feststellen, welche KB unter Windows installiert ist.

Eine detaillierte Erläuterung von WUA und Programmierung mit WUA finden Sie unter den folgenden Links:

Programme, die nach dem KB-Installationsstatus suchen

Hinzufügen von Verweisen (C#)

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

Um WUA verwenden zu können, müssen Sie von COM aus auf die WUAPI 2.0-Typbibliothek verweisen.

Klicken Sie für C#-Projekte im Projektmappen-Explorer mit der rechten Maustaste auf Verweise, und wählen Sie Verweise hinzufügen aus.

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

Wenn das Dialogfeld Verweis hinzufügen angezeigt wird, wählen Sie auf der Registerkarte COM die Option WUAPI 2.0-Typbibliothek aus, und klicken Sie auf die Schaltfläche OK.

OK, wenn "WUApiLib" zu den Referenzeinstellungen des Projektmappen-Explorers hinzugefügt wird.

Hinzufügen eines Verweises (VB.NET)

My Project から開くを選択

Klicken Sie zum VB.NET im Projektmappen-Explorer mit der rechten Maustaste auf Mein Projekt, und wählen Sie Öffnen aus.

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

Wenn die Eigenschaften geöffnet werden, klicken Sie auf der Registerkarte auf der linken Seite auf "Durchsuchen" und rechts auf die Schaltfläche Hinzufügen. Wie in C # wird das Dialogfeld Verweis hinzufügen angezeigt, also wählen Sie "WUAPI 2.0 Type Library" von der Registerkarte "COM" und klicken Sie auf die Schaltfläche OK.

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

Wenn Sie zum vorherigen Bildschirm zurückkehren und "WUAPI 2.0 Type Library" zur mittleren Liste hinzufügen, ist dies in Ordnung.

Lassen Sie uns auch "WUApiLib" aus der Liste unten überprüfen, um die Beschreibung des Namespace im Programm wegzulassen.

Szene

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

Der in diesem Beispiel verwendete Bildschirm ist ein einfacher Bildschirm mit einer Ausführungsschaltfläche zum Überprüfen des Installationsstatus der KB und einem Textfeld, in dem die Ergebnisse angezeigt werden.

Ich mache es in WPF, aber derselbe Bildschirm ist in Windows Form konfigurierbar.

Programm

C UpdateSession # fügt ""using WUApiLib; am Anfang des Codes hinzu, um die Beschreibung von Klassen und anderen Namespaces zu reduzieren. In VB.NET haben Sie angegeben, dass der Namespace in den Projekteigenschaften importiert werden soll, damit Sie nichts Besonderes schreiben müssen, aber wenn Sie dies nicht getan haben, müssen Sie ".Imports WUApiLib

* Sowohl in C# als auch in VB.NET, wenn alle Klassennamen aus einem Namespace wie "WUApiLib.UpdateSession geschrieben werden, ist die obige Spezifikation nicht erforderlich.

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」追加

Unten sehen Sie den Code, der die installierte KB durchsucht und auflistet.

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()

Der Inhalt ist wie kommentiert.

IUpdateSearcher.SearchSie können ändern, was Sie durch die Zeichenfolge erhalten, die Sie als Argument der Methode angeben. Weitere Informationen finden Sie unter IUpdateSearcher::Search Method.