WUA izmantošana, lai noteiktu Windows atjauninājumu instalēšanas statusu

Lapa atjaunota :
Lapas izveides datums :

Kopsavilkuma

Izmantojiet WUA, lai pārbaudītu, vai nav atjauninājumu (KB formātā), kas ir instalēti sistēmā Windows, kuru pašlaik izmantojat.

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

Darbības vide

Darbības pārbaudes vide

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

Nepieciešamās sistēmas prasības

Windows versija
  • Windows 7 (citas vides neapstiprinātas)
.NET Framework versija
  • 4.0 (nav apstiprinātas citas vides)

viela

Par šo paraugu

Šī parauga mērķis ir noteikt KB, kas ir instalēts sistēmā Windows, un mērķis ir gandrīz tāds pats kā "Izmantot WMI, lai noteiktu Windows atjauninājumu instalēšanas statusu". Tomēr šis paraugs tiek pārbaudīts, izmantojot "WUA", nevis WMI.

KB apraksts ir aprakstīts sadaļā "Izmantojiet WMI, lai uzzinātu, kā tiek instalēti Windows atjauninājumi", tāpēc pārbaudiet to.

Kas ir WUA?

WUA apzīmē "Windows atjaunināšanas aģents" un ir COM saskarņu kopa, kas ļauj piekļūt Windows atjaunināšanai un Windows Server atjaunināšanas pakalpojumiem (WSUS). To var izmantot, lai noteiktu, kurš KB ir instalēts sistēmā Windows.

Detalizētu skaidrojumu par WUA un programmēšanu ar WUA skatiet šajās saitēs:

Programmas, kas meklē KB instalācijas statusu

Atsauču pievienošana (C#)

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

Lai izmantotu WUA, jums ir jāatsaucas uz WUAPI 2.0 tipa bibliotēku no COM.

C# projektiem ar peles labo pogu noklikšķiniet uz Atsauces no risinājumu pārlūka un izvēlieties Pievienot atsauces.

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

Kad tiek parādīts dialoglodziņš Atsauces pievienošana, cilnē COM atlasiet WUAPI 2.0 Tipa bibliotēka un noklikšķiniet uz pogas Labi.

Labi, ja risinājumu pārlūka atsauces iestatījumiem ir pievienots "WUApiLib".

Atsauces pievienošana (VB.NET)

My Project から開くを選択

Lai VB.NET, ar peles labo pogu noklikšķiniet uz Mans projekts no risinājumu pārlūka un izvēlieties Atvērt.

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

Kad rekvizīti ir atvērti, noklikšķiniet uz "Pārlūkot" no cilnes kreisajā pusē, labajā pusē noklikšķiniet uz pogas Pievienot. Tāpat kā C#, tiek parādīts dialoglodziņš Pievienot atsauci, tāpēc cilnē "COM" atlasiet "WUAPI 2.0 Type Library" un noklikšķiniet uz pogas Labi.

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

Ja atgriežaties iepriekšējā ekrānā un vidējam sarakstam pievienojat "WUAPI 2.0 Type Library", tas ir labi.

Pārbaudīsim arī "WUApiLib" no zemāk esošā saraksta, lai izlaistu nosaukumvietas aprakstu programmā.

Ainas

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

Šajā paraugā izmantotais ekrāns ir vienkāršs ekrāns ar izpildes pogu, lai pārbaudītu KB instalācijas statusu, un tekstlodziņš, kas parāda rezultātus.

Es to veidoju WPF, bet tas pats ekrāns ir konfigurējams Windows formā.

programma

C UpdateSession # koda sākumā pievieno ""using WUApiLib;, lai samazinātu klašu un citu nosaukumvietu aprakstu. Sadaļā VB.NET jūs norādījāt importēt nosaukumvietu projekta rekvizītos, tāpēc jums nav jāraksta nekas īpašs, bet, ja neesat to izdarījis, jums jāpievieno ".Imports WUApiLib

* Gan C#, gan VB.NET, ja visi klašu nosaukumi ir rakstīti no nosaukumvietas, piemēram, ",WUApiLib.UpdateSession iepriekš minētā specifikācija nav nepieciešama.

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

Zemāk ir kods, kas meklē un uzskaita instalēto 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()

Saturs ir tāds, kāds tas ir komentēts.

IUpdateSearcher.SearchVarat mainīt to, ko saņemat, izmantojot virkni, kuru norādījāt kā metodes argumentu. Papildinformāciju skatiet rakstā IUpdateSearcher::Meklēšanas metode.