Sử dụng WUA để xác định trạng thái cài đặt của các bản cập nhật Windows

Trang Cập Nhật :
Ngày tạo trang :

tóm tắt

Sử dụng WUA để kiểm tra các bản cập nhật (tính bằng KB) được cài đặt trên Windows bạn hiện đang sử dụng.

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

Môi trường hoạt động

Môi trường kiểm tra hoạt động

Phiên bản Windows
  • Cửa sổ 7 cuối cùng
Phiên bản .NET framework
  • 4

Yêu cầu hệ thống cần thiết

Phiên bản Windows
  • Windows 7 (các môi trường khác chưa được xác nhận)
Phiên bản .NET framework
  • 4.0 (không có môi trường nào khác được xác nhận)

chất

Về mẫu này

Mục tiêu của mẫu này là xác định KB được cài đặt trên Windows và mục đích gần giống như "Sử dụng WMI để xác định trạng thái cài đặt của các bản cập nhật Windows." Tuy nhiên, mẫu này được kiểm tra bằng cách sử dụng "WUA" thay vì WMI.

Mô tả KB được mô tả trong "Sử dụng WMI để tìm hiểu cách cài đặt các bản cập nhật Windows", vì vậy hãy kiểm tra ở đó.

WUA là gì?

WUA là viết tắt của "Windows Update Agent" và là một tập hợp các giao diện COM cho phép truy cập vào Windows Update và Windows Server Update Services (WSUS). Bạn có thể sử dụng nó để xác định KB nào được cài đặt trên Windows.

Để biết giải thích chi tiết về WUA và lập trình với WUA, hãy xem các liên kết sau:

Các chương trình tìm kiếm trạng thái cài đặt KB

Thêm tài liệu tham khảo (C#)

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

Để sử dụng WUA, bạn phải tham khảo Thư viện Loại WUAPI 2.0 từ COM.

Đối với các dự án C#, nhấp chuột phải vào References from Solution Explorer và chọn Add References.

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

Khi hộp thoại Thêm tài liệu tham khảo xuất hiện, hãy chọn Thư viện loại WUAPI 2.0 từ COM tab và nhấp vào OK cái nút.

OK nếu "WUApiLib" được thêm vào cài đặt tham chiếu Của Trình khám phá Giải pháp.

Thêm tham chiếu (VB.NET)

My Project から開くを選択

Ví VB.NET, bấm chuột phải vào Dự án của tôi từ Trình khám phá giải pháp và chọn Mở.

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

Khi các thuộc tính mở ra, nhấp vào "Duyệt qua" từ tab bên trái, nhấp vào nút Thêm ở bên phải. Như trong C#, hộp thoại Thêm Tham chiếu được hiển thị, vì vậy hãy chọn "Thư viện Loại WUAPI 2.0" từ tab "COM" và nhấp vào nút OK.

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

Nếu bạn quay lại màn hình trước đó và thêm "Thư viện loại WUAPI 2.0" vào danh sách giữa, điều đó là OK.

Ngoài ra, hãy kiểm tra "WUApiLib" từ danh sách bên dưới để bỏ qua mô tả về không gian tên trong chương trình.

cảnh

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

Màn hình được sử dụng trong mẫu này là một màn hình đơn giản với nút thực thi để kiểm tra trạng thái cài đặt của KB và hộp văn bản hiển thị kết quả.

Tôi đang làm cho nó trong WPF, nhưng cùng một màn hình có thể được cấu hình trong Windows Form.

chương trình

C UpdateSession # thêm ""using WUApiLib; vào đầu mã để giảm mô tả các lớp và các không gian tên khác. Trong VB.NET, bạn đã chỉ định nhập không gian tên trong thuộc tính dự án, vì vậy bạn không cần phải viết bất cứ điều gì đặc biệt, nhưng nếu bạn chưa có, bạn cần phải thêm ".Imports WUApiLib

* Trong cả C# và VB.NET, nếu tất cả các tên lớp được viết từ một không gian tên như ",WUApiLib.UpdateSession thì đặc tả trên là không cần thiết.

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

Dưới đây là mã tìm kiếm và liệt kê KB đã cài đặt.

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

Nội dung như đã nhận xét.

IUpdateSearcher.SearchBạn có thể thay đổi những gì bạn nhận được bằng chuỗi bạn chỉ định làm đối số của phương thức. Để biết thêm thông tin, hãy xem IUpdateSearcher::Phương pháp tìm kiếm.