WUA kasutamine Windowsi värskenduste installioleku määramiseks

Lehekülg uuendatud :
Lehe loomise kuupäev :

Kokkuvõte

WUA abil saate otsida värskendusi (KB-des), mis on installitud praegu kasutatavasse Windowsi.

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

Töökeskkond

Toimingu kontrollimise keskkond

Windowsi versioon
  • Windows 7 Ultimate
.NET Frameworki versioon
  • 4

Nõutavad süsteeminõuded

Windowsi versioon
  • Windows 7 (muud kinnitamata keskkonnad)
.NET Frameworki versioon
  • 4.0 (muid keskkondi pole kinnitatud)

aine

Selle proovi kohta

Selle proovi eesmärk on määrata Windowsi installitud KB ja eesmärk on peaaegu sama, mis "Kasutage WMI-d Windowsi värskenduste installioleku määramiseks". Kuid seda proovi kontrollitakse WMI asemel "WUA" abil.

KB kirjeldust on kirjeldatud jaotises "Kasutage WMI-d, et teada saada, kuidas Windowsi värskendused on installitud", nii et vaadake seal.

Mis on WUA?

WUA tähistab "Windows Update Agent" ja on COM-liideste komplekt, mis võimaldab juurdepääsu Windows Update'ile ja Windows Server Update Services'ile (WSUS). Selle abil saate määrata, milline KB on Windowsi installitud.

WUA ja WUA-ga programmeerimise üksikasjaliku selgituse saamiseks vaadake järgmisi linke:

Programmid, mis otsivad KB installimise olekut

Viidete lisamine (C#)

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

WUA kasutamiseks peate viitama WUAPI 2.0 tüüpi teegile COM-ist.

C# projektide puhul paremklõpsake Solution Exploreris valikut Viited ja valige Lisa viited.

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

Kui kuvatakse dialoog Viite lisamine, valige vahekaardil COM WUAPI 2.0 Type Library (Teek) ja klõpsake nuppu OK.

OK, kui lahenduseuurija viiteseadetele lisatakse "WUApiLib".

Viite lisamine (VB.NET)

My Project から開くを選択

VB.NET puhul paremklõpsake Solution Exploreris valikut Minu projekt ja valige Käsk Ava.

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

Kui atribuudid avanevad, klõpsake vasakul vahekaardil "Sirvi", klõpsake paremal asuvat nuppu Lisa. Nagu C#- s, kuvatakse dialoog Lisa viide, nii et valige vahekaardilt "COM" "WUAPI 2.0 Type Library" ja klõpsake nuppu OK.

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

Kui naasete eelmisele ekraanile ja lisate keskmisesse loendisse "WUAPI 2.0 Type Library", on see OK.

Samuti kontrollime allolevast loendist "WUApiLib", et jätta programmi nimeruumi kirjeldus välja.

Stseen

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

Selles näidises kasutatav ekraan on lihtne ekraan, millel on käivitamisnupp KB installioleku kontrollimiseks ja tekstikast, mis kuvab tulemused.

Ma teen seda WPF-is, kuid sama ekraan on konfigureeritav Windows Formis.

programm

C UpdateSession # lisab koodi algusesse ""using WUApiLib;, et vähendada klasside ja muude nimeruumide kirjeldust. VB.NET määrasite nimeruumi importimise projekti atribuutidesse, nii et te ei pea midagi erilist kirjutama, kuid kui te pole seda teinud, peate lisama ".Imports WUApiLib

* Nii C# kui ka VB.NET puhul, kui kõik klassinimed on kirjutatud nimeruumist, näiteks ",WUApiLib.UpdateSession pole ülaltoodud spetsifikatsioon vajalik.

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

Allpool on kood, mis otsib ja loetleb installitud 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()

Sisu on nagu kommenteeritud.

IUpdateSearcher.SearchSaate muuta seda, mida saate meetodi argumendiks määratud stringi abil. Lisateavet leiate teemast IUpdateSearcher::Otsingumeetod.