استفاده از WUA برای تعیین وضعیت نصب به روز رسانی ویندوز

صفحه به روز شده :
تاریخ ایجاد صفحه :

خلاصه

استفاده از WUA برای بررسی به روز رسانی (در کیلوبایت) که بر روی ویندوز شما در حال حاضر با استفاده از نصب شده است.

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

محیط عامل

محیط بررسی عملیات

نسخه Windows
  • ویندوز 7 نهایی
نسخه .NET Framework
  • 4

الزامات سیستم مورد نیاز

نسخه Windows
  • ویندوز 7 (محیط های دیگر تایید نشده)
نسخه .NET Framework
  • 4.0 (هیچ محیط دیگری تایید)

ماده

درباره این نمونه

هدف این نمونه تعیین کیلوبایتی است که بر روی ویندوز نصب شده است، و هدف تقریباً همان «استفاده از WMI برای تعیین وضعیت نصب به روز رسانی های ویندوز» است. با این حال، این نمونه با استفاده از "WUA" به جای WMI بررسی می شود.

توضیحات کیلوبایت در "استفاده از WMI برای پیدا کردن چگونه به روز رسانی ویندوز نصب شده است توصیف شده است،" بنابراین بررسی وجود دارد.

WUA چیه؟

WUA مخفف "عامل به روز رسانی ویندوز" است و مجموعه ای از رابط های COM است که اجازه دسترسی به ویندوز به روز رسانی و خدمات به روز رسانی سرور ویندوز (WSUS) را می دهد. شما می توانید از آن برای تعیین اینکه کدام کیلوبایت بر روی ویندوز نصب شده است استفاده کنید.

برای توضیح دقیق WUA و برنامه نویسی با WUA به لینک های زیر مراجعه کنید:

برنامه هایی که وضعیت نصب کیلوبایت را جستجو می کنند

افزودن منابع (C#)

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

برای استفاده از WUA، شما باید مرجع WUAPI 2.0 نوع کتابخانه از COM.

برای پروژه های C# ، راست کلیک کنید منابع از راه حل اکسپلورر و اضافه کردن منابع را انتخاب کنید.

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

هنگامی که گفتگوی مرجع اضافه ظاهر می شود، WUAPI 2.0 نوع کتابخانه را از زبانه COM انتخاب کنید و روی دکمه OK کلیک کنید.

خوب اگر "WUApiLib" به تنظیمات مرجع راه حل اکسپلورر اضافه شده است.

اضافه کردن یک مرجع (VB.NET)

My Project から開くを選択

برای VB.NET روی پروژه من از Solution Explorer کلیک راست کنید و Open را انتخاب کنید.

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

هنگامی که خواص باز شد، روی "مرور" از زبانه سمت چپ کلیک کنید، روی دکمه افزودن در سمت راست کلیک کنید. همانطور که در C#, اضافه کردن گفتگوی مرجع نمایش داده شده است, بنابراین انتخاب کنید "WUAPI 2.0 نوع کتابخانه" از "COM" زبانه و کلیک بر روی دکمه OK.

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

اگر شما به صفحه نمایش قبلی بازگشت و اضافه کردن "WUAPI 2.0 نوع کتابخانه" به لیست میانی، آن را خوب است.

همچنین، بیایید "WUApiLib" را از لیست زیر بررسی کنید تا توضیحات فضای نام در برنامه حذف شود.

صحنه

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

صفحه نمایش مورد استفاده در این نمونه یک صفحه نمایش ساده با دکمه اجرا برای بررسی وضعیت نصب کیلوبایت و یک جعبه متن است که نتایج را نمایش می دهد.

من آن را در WPF ساخت، اما همان صفحه نمایش قابل تنظیم در فرم ویندوز است.

برنامه

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

در زیر کدی که 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()

محتوا به همان اندازه که اظهار نظر شده است.

IUpdateSearcher.Searchشما می توانید آنچه را که توسط رشته ای که به عنوان آر استدلال روش مشخص می کنید تغییر دهید. برای کسب اطلاعات بیشتر به IUpdateSearcher::Search Method نگاه کنید.