Χρησιμοποιήστε το WUA για να προσδιορίσετε την κατάσταση εγκατάστασης των ενημερώσεων των Windows

Σελίδα ενημέρωση :
Ημερομηνία δημιουργίας σελίδας :

περίληψη

Χρησιμοποιήστε το WUA για να ελέγξετε για ενημερώσεις (σε KB) που είναι εγκατεστημένες στα Windows που χρησιμοποιείτε αυτήν τη στιγμή.

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

Περιβάλλον λειτουργίας

Περιβάλλον ελέγχου λειτουργίας

Έκδοση των Windows
  • Παράθυρα 7 Τελικός
Έκδοση του .NET Πλαίσιο
  • 4

Απαιτούμενες απαιτήσεις συστήματος

Έκδοση των Windows
  • Windows 7 (άλλα περιβάλλοντα δεν έχουν επιβεβαιωθεί)
Έκδοση του .NET Πλαίσιο
  • 4.0 (δεν έχουν επιβεβαιωθεί άλλα περιβάλλοντα)

ουσία

Πληροφορίες για αυτό το δείγμα

Ο στόχος αυτού του δείγματος είναι να προσδιορίσει το KB που είναι εγκατεστημένο στα Windows και ο σκοπός είναι σχεδόν ο ίδιος με το "Χρησιμοποιήστε το WMI για να προσδιορίσετε την κατάσταση εγκατάστασης των ενημερωμένων εκδόσεων των Windows". Ωστόσο, αυτό το δείγμα ελέγχεται χρησιμοποιώντας "WUA" αντί για WMI.

Η περιγραφή kb περιγράφεται στην ενότητα "Χρήση WMI για να μάθετε πώς εγκαθίστανται οι ενημερώσεις των Windows", επομένως ελέγξτε εκεί.

Τι είναι το WUA;

Το WUA σημαίνει "Παράγοντας ενημέρωσης των Windows" και είναι ένα σύνολο διασυνδέσεων COM που επιτρέπουν την πρόσβαση στο Windows Update και στις υπηρεσίες ενημέρωσης διακομιστή των Windows (WSUS). Μπορείτε να το χρησιμοποιήσετε για να προσδιορίσετε ποια Γνωσιακή βάση είναι εγκατεστημένη στα Windows.

Για μια λεπτομερή εξήγηση του WUA και του προγραμματισμού με το WUA, ανατρέξτε στις παρακάτω συνδέσεις:

Προγράμματα που αναζητούν την κατάσταση εγκατάστασης KB

Προσθήκη αναφορών (C#)

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

Για να χρησιμοποιήσετε το WUA, πρέπει να ανατρέξετε στη βιβλιοθήκη τύπων WUAPI 2.0 από το COM.

Για έργα C#, κάντε δεξί κλικ στην επιλογή Αναφορές από το Solution Explorer και επιλέξτε Προσθήκη αναφορών.

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

Όταν εμφανιστεί το παράθυρο διαλόγου Προσθήκη αναφοράς, επιλέξτε Βιβλιοθήκη τύπων WUAPI 2.0 από την καρτέλα COM και κάντε κλικ στο Εντάξει κουμπί.

Εντάξει εάν προστεθεί το "WUApiLib" στις ρυθμίσεις αναφοράς της Εξερεύνησης λύσεων.

Προσθήκη αναφοράς (VB.NET)

My Project から開くを選択

Για VB.NET, κάντε δεξί κλικ στην επιλογή Το έργο μου από την Εξερεύνηση λύσεων και επιλέξτε Άνοιγμα.

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

Όταν ανοίξουν οι ιδιότητες, κάντε κλικ στην επιλογή "Αναζήτηση" από την καρτέλα στα αριστερά, κάντε κλικ στο κουμπί Προσθήκη στα δεξιά. Όπως και στο C#, εμφανίζεται το παράθυρο διαλόγου Προσθήκη αναφοράς, οπότε επιλέξτε "Βιβλιοθήκη τύπου WUAPI 2.0" από την καρτέλα "COM" και κάντε κλικ στο ok κουμπί.

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

Εάν επιστρέψετε στην προηγούμενη οθόνη και προσθέσετε "Βιβλιοθήκη τύπων WUAPI 2.0" στη μεσαία λίστα, είναι εντάξει.

Επίσης, ας ελέγξουμε το "WUApiLib" από την παρακάτω λίστα για να παραλείψουμε την περιγραφή του χώρου ονομάτων στο πρόγραμμα.

σκηνή

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

Η οθόνη που χρησιμοποιείται σε αυτό το δείγμα είναι μια απλή οθόνη με ένα κουμπί εκτέλεσης για να ελέγξετε την κατάσταση εγκατάστασης του KB και ένα πλαίσιο κειμένου που εμφανίζει τα αποτελέσματα.

Το κάνω στο WPF, αλλά η ίδια οθόνη είναι διαμορφώσιμη στη φόρμα των Windows.

πρόγραμμα

Το C UpdateSession # προσθέτει ""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::Μέθοδος αναζήτησης.