विंडोज अद्यतनों की स्थापना स्थिति निर्धारित करने के लिए WUA का उपयोग करें

पेज अद्यतन :
पेज निर्माण की तारीख :

सारांश

आप वर्तमान में उपयोग कर रहे हैं जो Windows पर स्थापित अद्यतन (KB में) के लिए जाँच करने के लिए WUA का उपयोग करें।

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

ऑपरेटिंग वातावरण

ऑपरेशन जाँच वातावरण

विंडोज संस्करण
  • विंडोज 7 अंतिम
.NET फ्रेमवर्क संस्करण
  • 4

आवश्यक सिस्टम आवश्यकताएँ

विंडोज संस्करण
  • विंडोज 7 (अन्य वातावरण अपुष्ट)
.NET फ्रेमवर्क संस्करण
  • 4.0 (कोई अन्य वातावरण की पुष्टि नहीं)

पदार्थ

इस नमूने के बारे में

इस नमूने का लक्ष्य Windows पर स्थापित KB निर्धारित करने के लिए है, और उद्देश्य लगभग "Windows अद्यतनों की स्थापना स्थिति निर्धारित करने के लिए WMI का उपयोग करें." हालाँकि, इस नमूने को WMI के बजाय "WUA" का उपयोग करके जाँच की जाती है।

KB विवरण में वर्णित है "विंडोज अपडेट कैसे स्थापित किए जाते हैं, यह जानने के लिए WMI का उपयोग करें," इसलिए वहां चेक करें।

डब्ल्यूयूए क्या है?

WUA "विंडोज अपडेट एजेंट" के लिए खड़ा है और COM इंटरफ़ेस का एक सेट है जो विंडोज अपडेट और विंडोज सर्वर अपडेट सर्विसेज (WSUS) तक पहुंच की अनुमति देता है। आप यह निर्धारित करने के लिए इसका उपयोग कर सकते हैं कि विंडोज पर कौन सा केबी स्थापित है।

WUA और WUA के साथ प्रोग्रामिंग की विस्तृत व्याख्या के लिए, निम्न लिंक देखें:

KB स्थापना स्थिति के लिए खोज करने वाले प्रोग्राम

संदर्भ जोड़ना (सी #)

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

WUA का उपयोग करने के लिए, आपको COM से WUAPI 2.0 प्रकार लायब्रेरी संदर्भित करना होगा।

C# प्रोजेक्ट्स के लिए, समाधान एक्सप्लोरर से संदर्भराइट-क्लिक करें और संदर्भ जोड़ें चुनें.

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

जब संदर्भ जोड़ें संवाद प्रकट होता है, तो COM टैब से WUAPI 2.0 प्रकार लायब्रेरी का चयन करें और ठीक बटन क्लिक करें।

ठीक है अगर "WUApiLib" समाधान एक्सप्लोरर संदर्भ सेटिंग्स में जोड़ा जाता है।

कोई संदर्भ जोड़ें (VB.NET)

My Project から開くを選択

VB.NET के लिए, समाधान एक्सप्लोरर से मेरा प्रोजेक्ट राइट-क्लिक करें और खोलें चुनें।

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

जब गुण खुलते हैं, तो बाईं ओर टैब से "ब्राउज़ करें" पर क्लिक करें, दाईं ओर जोड़ें बटन पर क्लिक करें। सी # के रूप में, संदर्भ जोड़ें संवाद प्रदर्शित होता है, इसलिए "COM" टैब से "WUAPI 2.0 प्रकार लायब्रेरी" का चयन करें और ठीक बटन क्लिक करें।

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

यदि आप पिछली स्क्रीन पर लौटते हैं और मध्य सूची में "WUAPI 2.0 प्रकार लाइब्रेरी" जोड़ते हैं, तो यह ठीक है।

इसके अलावा, आइए प्रोग्राम में नामस्थान के विवरण को छोड़ने के लिए नीचे दी गई सूची से "डब्लूयूएपीलिब" की जांच करें।

दृश्य

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

इस नमूने में उपयोग की जाने वाली स्क्रीन केबी की स्थापना स्थिति और परिणाम प्रदर्शित करने वाले पाठ बॉक्स की जांच करने के लिए निष्पादन बटन के साथ एक साधारण स्क्रीन है।

मैं इसे डब्ल्यूपीएफ में बना रहा हूं, लेकिन वही स्क्रीन विंडोज फॉर्म में कॉन्फ़िगर करने योग्य है।

प्रोग्राम

सी UpdateSession # कक्षाओं और अन्य नामस्थानों के विवरण को कम करने के लिए कोड की शुरुआत में ""using WUApiLib; जोड़ता है। VB.NET में, आपने प्रोजेक्ट गुणों में नामस्थान आयात करने के लिए निर्दिष्ट किया है, इसलिए आपको कुछ विशेष लिखने की आवश्यकता नहीं है, लेकिन यदि आपने नहीं किया है, तो आपको जोड़ने की आवश्यकता है "।Imports WUApiLib

* सी # और 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विधि के तर्क के रूप में आपके द्वारा निर्दिष्ट स्ट्रिंग द्वारा आपको जो मिलता है उसे आप बदल सकते हैं। अधिक जानकारी के लिए, Iअपडेटसर्चर::खोज विधि देखें.