S programom WUA določite stanje namestitve posodobitev sistema Windows

Stran posodobljena :
Datum ustvarjanja strani :

Povzetek

Uporabite WUA za preverjanje, ali obstajajo posodobitve (v KB), ki so nameščene v sistemu Windows, ki ga trenutno uporabljate.

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

Operativno okolje

Okolje za preverjanje delovanja

Različica sistema Windows
  • Windows 7 Ultimate
.NET Framework Različica
  • 4

Zahtevane sistemske zahteve

Različica sistema Windows
  • Windows 7 (druga okolja niso potrjena)
.NET Framework Različica
  • 4.0 (nobeno drugo okolje ni potrjeno)

snov

O tem vzorcu

Cilj tega vzorca je določiti KB, ki je nameščena v sistemu Windows, in namen je skoraj enak kot »Uporaba WMI za določitev namestitvenega stanja posodobitev sistema Windows«. Vendar se ta vzorec preveri z uporabo "WUA" namesto WMI.

Opis zbirke podatkov je opisan v »Uporabi WMI, če želite izvedeti, kako so nameščene posodobitve sistema Windows«.

Kaj je zdravilo WUA?

WUA pomeni "Windows Update Agent" in je nabor COM vmesnikov, ki omogočajo dostop do storitev Windows Update in Windows Server Update Services (WSUS). Uporabite ga lahko za določanje, katera KB je nameščena v sistemu Windows.

Za podrobno razlago WUA in programiranje z WUA si oglejte naslednje povezave:

Programi, ki iščejo stanje namestitve KB

Dodajanje sklicev (C#)

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

Če želite uporabljati WUA, se morate sklicevati na knjižnico tipov WUAPI 2.0 iz COM.

Za projekte C# z desno tipko miške kliknite Reference iz Raziskovalca rešitev in izberite Dodaj reference.

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

Ko se prikaže pogovorno okno Dodajanje sklica, na zavihku COM izberite WUAPI 2.0 Knjižnica tipov in kliknite ok gumb.

V redu, če je referenčnim nastavitvam raziskovalca rešitev dodana možnost »WUApiLib«.

Dodajanje sklica (VB.NET)

My Project から開くを選択

Če VB.NET, z desno tipko miške kliknite Moj projekt iz Raziskovalca rešitev in izberite Odpri.

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

Ko se lastnosti odprejo, na zavihku na levi kliknite »Prebrskaj«, na desni kliknite gumb Dodaj. Kot v C#, je prikazano pogovorno okno Add Reference, zato na zavihku "COM" izberite "WUAPI 2.0 Type Library" in kliknite ok gumb.

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

Če se vrnete na prejšnji zaslon in na srednji seznam dodate »WUAPI 2.0 Type Library«, je v redu.

Preverimo tudi "WUApiLib" s spodnjega seznama, da izpustimo opis imenskega prostora v programu.

Scene

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

Zaslon, ki se uporablja v tem vzorcu, je preprost zaslon z gumbom za izvršitev, da preverite stanje namestitve KB in polje z besedilom, ki prikazuje rezultate.

Delam ga v WPF, vendar je isti zaslon nastavljiv v Windows Form.

program

C UpdateSession # dodaja ""using WUApiLib; na začetek kode za zmanjšanje opisa razredov in drugih imenskih prostorov. V VB.NET ste določili, da uvozite imenski prostor v lastnostih projekta, zato vam ni treba pisati ničesar posebnega, če pa ga niste, morate dodati ".Imports WUApiLib

* V C# in VB.NET, če so vsa imena razredov zapisana iz imenskega prostora, kot je ",WUApiLib.UpdateSession zgoraj navedena specifikacija ni potrebna.

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

Spodaj je koda, ki išče in prikazuje nameščeni KB.

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

Vsebina je kot komentirana.

IUpdateSearcher.SearchTo, kar dobiš z nizom, ki ga določiš kot argument metode, lahko spremenite. Če želite več informacij, glejte IUpdateSearcher::Način iskanja.