Gunakan WUA untuk menentukan status penginstalan pembaruan Windows

Halaman Diperbarui :
Tanggal pembuatan halaman :

ringkasan

Gunakan WUA untuk memeriksa pembaruan (dalam KB) yang diinstal pada Windows yang sedang Anda gunakan.

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

Lingkungan Operasi

Lingkungan pemeriksaan operasi

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

Persyaratan sistem yang diperlukan

Versi Windows
  • Windows 7 (lingkungan lain belum dikonfirmasi)
Versi .NET Framework
  • 4.0 (tidak ada lingkungan lain yang dikonfirmasi)

zat

Tentang sampel ini

Tujuan dari sampel ini adalah untuk menentukan KB yang diinstal pada Windows, dan tujuannya hampir sama dengan "Gunakan WMI untuk menentukan status instalasi pembaruan Windows." Namun, sampel ini diperiksa menggunakan "WUA" alih-alih WMI.

Deskripsi KB dijelaskan dalam "Gunakan WMI untuk mengetahui bagaimana pembaruan Windows diinstal," jadi periksa di sana.

Apa itu WUA?

WUA adalah singkatan dari "Windows Update Agent" dan merupakan satu set antarmuka COM yang memungkinkan akses ke Windows Update dan Windows Server Update Services (WSUS). Anda dapat menggunakannya untuk menentukan KB mana yang diinstal pada Windows.

Untuk penjelasan rinci tentang WUA dan pemrograman dengan WUA, lihat tautan berikut:

Program yang mencari status instalasi KB

Menambahkan Referensi (C#)

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

Untuk menggunakan WUA, Anda harus mereferensikan WUAPI 2.0 Type Library dari COM.

Untuk proyek C#, klik kanan Referensi dari Penjelajah Solusi dan pilih Tambahkan Referensi.

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

Ketika dialog Tambahkan Referensi muncul, pilih WUAPI 2.0 Ketik Perpustakaan dari COM tab dan klik OK tombol.

OK jika "WUApiLib" ditambahkan ke pengaturan referensi Penjelajah Solusi.

Menambahkan referensi (VB.NET)

My Project から開くを選択

Untuk VB.NET, klik kanan Proyek Saya dari Penjelajah Solusi dan pilih Buka.

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

Saat properti terbuka, klik "Jelajahi" dari tab di sebelah kiri, klik tombol Tambah di sebelah kanan. Seperti pada C#, dialog Add Reference ditampilkan, jadi pilih "WUAPI 2.0 Type Library" dari tab "COM" dan klik tombol OK.

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

Jika Anda kembali ke layar sebelumnya dan menambahkan "Wuapi 2.0 Type Library" ke daftar tengah, tidak apa-apa.

Juga, mari kita periksa "WUApiLib" dari daftar di bawah ini untuk menghilangkan deskripsi namespace dalam program.

Adegan

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

Layar yang digunakan dalam sampel ini adalah layar sederhana dengan tombol eksekusi untuk memeriksa status instalasi KB dan kotak teks yang menampilkan hasilnya.

Saya membuatnya di WPF, tetapi layar yang sama dapat dikonfigurasi dalam Bentuk Windows.

rencana

C UpdateSession # menambahkan ""using WUApiLib; ke awal kode untuk mengurangi deskripsi kelas dan ruang nama lainnya. Dalam VB.NET, Anda menentukan untuk mengimpor namespace di properti proyek, jadi Anda tidak perlu menulis sesuatu yang istimewa, tetapi jika belum, Anda perlu menambahkan ".Imports WUApiLib

* Dalam C# dan VB.NET, jika semua nama kelas ditulis dari namespace seperti ",WUApiLib.UpdateSession spesifikasi di atas tidak diperlukan.

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

Di bawah ini adalah kode yang mencari dan mencantumkan KB yang diinstal.

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

Isinya seperti yang dikomentari.

IUpdateSearcher.SearchAnda dapat mengubah apa yang Anda dapatkan dengan string yang Anda tentukan sebagai argumen metode. Untuk informasi selengkapnya, lihat IUpdateSearcher::Search Method.