Gunakan WUA untuk menentukan status penginstalan pembaruan Windows
ringkasan
Gunakan WUA untuk memeriksa pembaruan (dalam KB) yang diinstal pada Windows yang sedang Anda gunakan.
Lingkungan Operasi
Lingkungan pemeriksaan operasi
Versi Windows |
|
Versi .NET Framework |
|
Persyaratan sistem yang diperlukan
Versi Windows |
|
Versi .NET Framework |
|
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:
- API Agen Pembaruan Windows
- Apakah ada cara untuk mendapatkan daftar semua pembaruan yang telah ditambahkan ke komputer saya?
- IUpdateSearcher::Metode Pencarian
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.
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)
Untuk VB.NET, klik kanan Proyek Saya dari Penjelajah Solusi dan pilih Buka.
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.
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
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.Search
Anda dapat mengubah apa yang Anda dapatkan dengan string yang Anda tentukan sebagai argumen metode. Untuk informasi selengkapnya, lihat IUpdateSearcher::Search Method.