استخدام WUA لتحديد حالة تثبيت تحديثات Windows

تحديث الصفحة :
تاريخ إنشاء الصفحة :

ملخص

استخدم WUA للتحقق من وجود تحديثات (بالكيلوبايت) المثبتة على Windows الذي تستخدمه حاليا.

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

بيئة التشغيل

بيئة فحص التشغيل

إصدار ويندوز
  • ويندوز 7 في نهاية المطاف
إصدار .NET Framework
  • 4

متطلبات النظام المطلوبة

إصدار ويندوز
  • Windows 7 (بيئات أخرى غير مؤكدة)
إصدار .NET Framework
  • 4.0 (لم يتم تأكيد أي بيئات أخرى)

مادة

حول هذا النموذج

الهدف من هذا النموذج هو تحديد قاعدة المعارف المثبتة على Windows، والغرض هو نفسه تقريبا مثل "استخدام WMI لتحديد حالة تثبيت تحديثات Windows". ومع ذلك، يتم فحص هذا النموذج باستخدام "WUA" بدلا من WMI.

يتم وصف وصف قاعدة المعارف في "استخدام WMI لمعرفة كيفية تثبيت تحديثات Windows"، لذا تحقق من ذلك.

ما هو WUA؟

WUA تعني "عامل تحديث Windows" وهي مجموعة من واجهات COM التي تسمح بالوصول إلى Windows Update وخدمات Windows Server Update (WSUS). يمكنك استخدامه لتحديد قاعدة المعارف المثبتة على Windows.

للحصول على شرح مفصل ل WUA والبرمجة مع WUA ، راجع الروابط التالية:

البرامج التي تبحث عن حالة تثبيت KB

إضافة مراجع (C#)

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

لاستخدام WUA، يجب الرجوع إلى مكتبة أنواع WUAPI 2.0 من COM.

بالنسبة لمشاريع C#، انقر بزر الماوس الأيمن فوق مراجع من مستكشف الحلول واختر إضافة مراجع.

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

عند ظهور مربع الحوار إضافة مرجع، حدد مكتبة أنواع WUAPI 2.0 من علامة التبويب COM وانقر فوق الزر موافق ( OK) .

موافق إذا تمت إضافة "WUApiLib" إلى الإعدادات المرجعية "مستكشف الحلول".

إضافة مرجع (VB.NET)

My Project から開くを選択

للحصول على VB.NET، انقر بزر الماوس الأيمن فوق مشروعي من مستكشف الحلول واختر فتح.

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

عند فتح الخصائص ، انقر فوق "استعراض" من علامة التبويب على اليسار ، وانقر فوق الزر "إضافة" على اليمين. كما هو الحال في C # ، يتم عرض مربع الحوار "إضافة مرجع" ، لذا حدد "مكتبة نوع WUAPI 2.0" من علامة التبويب "COM" وانقر فوق الزر موافق.

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

إذا عدت إلى الشاشة السابقة وأضفت "مكتبة نوع WUAPI 2.0" إلى القائمة الوسطى ، فلا بأس بذلك.

أيضا ، دعنا نتحقق من "WUApiLib" من القائمة أدناه لحذف وصف مساحة الاسم في البرنامج.

مشهد

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

الشاشة المستخدمة في هذا النموذج هي شاشة بسيطة مع زر تنفيذ للتحقق من حالة تثبيت KB ومربع نص يعرض النتائج.

أقوم بإنشائه في WPF ، ولكن نفس الشاشة قابلة للتكوين في نموذج Windows.

برنامج

UpdateSession C # يضيف ""using WUApiLib; إلى بداية التعليمات البرمجية لتقليل وصف الفئات ومساحات الأسماء الأخرى. في VB.NET ، قمت بتحديد استيراد مساحة الاسم في خصائص المشروع ، لذلك لا تحتاج إلى كتابة أي شيء خاص ، ولكن إذا لم تقم بذلك ، فأنت بحاجة إلى إضافة ".Imports WUApiLib

* في كل من C # و VB.NET ، إذا تمت كتابة جميع أسماء الفئات من مساحة اسم مثل "،WUApiLib.UpdateSession فإن المواصفات المذكورة أعلاه ليست ضرورية.

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

فيما يلي التعليمة البرمجية التي تبحث في قاعدة المعارف المثبتة وتدرجها.

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

المحتوى كما تم التعليق عليه.

IUpdateSearcher.Searchيمكنك تغيير ما تحصل عليه بواسطة السلسلة التي تحددها كوسيطة للطريقة. لمزيد من المعلومات، راجع IUpdateSearcher::طريقة البحث.