Utilizați WUA pentru a determina starea de instalare a actualizărilor Windows

Pagina actualizată :
Data creării paginii :

rezumat

Utilizați WUA pentru a căuta actualizări (în KB) care sunt instalate pe Windows utilizați în prezent.

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

Mediul de operare

Mediul de verificare a operațiunilor

Versiunea Windows
  • Windows 7 Ultimate
Versiunea .NET Framework
  • 4

Cerințe de sistem necesare

Versiunea Windows
  • Windows 7 (alte medii neconfirmate)
Versiunea .NET Framework
  • 4.0 (nu s-au confirmat alte medii)

substanță

Despre acest eșantion

Scopul acestui eșantion este de a determina KB care este instalat pe Windows și scopul este aproape același cu "Utilizați WMI pentru a determina starea de instalare a actualizărilor Windows." Cu toate acestea, acest eșantion este verificat utilizând "WUA" în loc de WMI.

Descrierea KB este descrisă în "Utilizați WMI pentru a afla cum sunt instalate actualizările Windows", deci verificați acolo.

Ce este WUA?

WUA standuri pentru "Windows Update Agent" și este un set de interfețe COM care permit accesul la Windows Update și Windows Server Update Services (WSUS). Îl puteți utiliza pentru a determina ce KB este instalat pe Windows.

Pentru o explicație detaliată a WUA și de programare cu WUA, consultați următoarele link-uri:

Programe care caută starea de instalare KB

Adăugarea referințelor (C#)

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

Pentru a utiliza WUA, trebuie să faceți referire la wuapi 2.0 tip bibliotecă de la COM.

Pentru proiectele C#, faceți clic dreapta pe Referințe din Exploratorul de soluții și alegeți Adăugare referințe.

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

Când apare caseta de dialog Adăugare referință, selectați WUAPI 2.0 Tip bibliotecă din fila COM și faceți clic pe OK butonul.

OK dacă "WUApiLib" este adăugat la setările de referință Explorator de soluții.

Adăugarea unei referințe (VB.NET)

My Project から開くを選択

Pentru VB.NET, faceți clic dreapta pe Proiectul meu din Exploratorul de soluții și alegeți Deschidere.

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

Când proprietățile se deschid, faceți clic pe "Răsfoire" din fila din stânga, faceți clic pe butonul Adăugare din dreapta. Ca și în C#, se afișează caseta de dialog Adăugare referință, deci selectați "Wuapi 2.0 Type Library" din fila "COM" și faceți clic pe OK butonul.

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

Dacă reveniți la ecranul anterior și adăugați "Wuapi 2.0 Tip bibliotecă" la lista de mijloc, este OK.

De asemenea, să verificăm "WUApiLib" din lista de mai jos pentru a omite descrierea spațiului de nume din program.

scenă

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

Ecranul utilizat în acest eșantion este un ecran simplu cu un buton de execuție pentru a verifica starea de instalare a KB și o casetă text care afișează rezultatele.

I'm making it in WPF, but the same screen is configurable in Windows Form.

program

C UpdateSession # adaugă ""using WUApiLib; la începutul codului pentru a reduce descrierea claselor și a altor spații de nume. În VB.NET, ați specificat să importați spațiul de nume în proprietățile proiectului, deci nu trebuie să scrieți nimic special, dar dacă nu ați făcut-o, trebuie să adăugați ".Imports WUApiLib

* În ambele C # și VB.NET, în cazul în care toate numele de clasă sunt scrise dintr-un spațiu de nume, cum ar fi ",WUApiLib.UpdateSession caietul de sarcini de mai sus nu este necesar.

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

Mai jos este codul care caută și listează KB instalat.

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

Conținutul este așa cum a fost comentat.

IUpdateSearcher.SearchPuteți modifica ceea ce obțineți prin șirul pe care îl specificați ca argument al metodei. Pentru mai multe informații, consultați IUpdateSearcher::Metoda de căutare.