Utilizzare WUA per determinare lo stato di installazione degli aggiornamenti di Windows

Pagina aggiornata :
Data di creazione della pagina :

sommario

Utilizzare WUA per verificare la disponibilità di aggiornamenti (in KB) installati in Windows attualmente in uso.

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

Ambiente operativo

Ambiente di controllo del funzionamento

Versione Windows
  • Windows 7 Ultimate
Versione di .NET Framework
  • 4

Requisiti di sistema richiesti

Versione Windows
  • Windows 7 (altri ambienti non confermati)
Versione di .NET Framework
  • 4.0 (nessun altro ambiente confermato)

sostanza

Informazioni su questo esempio

L'obiettivo di questo esempio è determinare la KB installata in Windows e lo scopo è quasi lo stesso di "Utilizzare WMI per determinare lo stato di installazione degli aggiornamenti di Windows". Tuttavia, questo esempio viene controllato utilizzando "WUA" anziché WMI.

La descrizione KB è descritta in "Usa WMI per scoprire come vengono installati gli aggiornamenti di Windows", quindi controlla lì.

Cos'è WUA?

WUA è l'acronimo di "Windows Update Agent" ed è un insieme di interfacce COM che consentono l'accesso a Windows Update e Windows Server Update Services (WSUS). È possibile utilizzarlo per determinare quale KB è installato in Windows.

Per una spiegazione dettagliata di WUA e della programmazione con WUA, vedere i seguenti collegamenti:

Programmi che cercano lo stato di installazione KB

Aggiunta di riferimenti (C#)

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

Per utilizzare WUA, è necessario fare riferimento alla libreria dei tipi WUAPI 2.0 da COM.

Per i progetti C#, fare clic con il pulsante destro del mouse su Riferimenti da Esplora soluzioni e scegliere Aggiungi riferimenti.

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

Quando viene visualizzata la finestra di dialogo Aggiungi riferimento, selezionare LIBRERIA dei tipi WUAPI 2.0 dalla scheda COM e fare clic sul pulsante OK.

OK se "WUApiLib" viene aggiunto alle impostazioni di riferimento di Esplora soluzioni.

Aggiungere un riferimento (VB.NET)

My Project から開くを選択

Per VB.NET, fare clic con il pulsante destro del mouse su Progetto personale in Esplora soluzioni e scegliere Apri.

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

Quando le proprietà si aprono, fai clic su "Sfoglia" dalla scheda a sinistra, fai clic sul pulsante Aggiungi a destra. Come in C#, viene visualizzata la finestra di dialogo Aggiungi riferimento, quindi selezionare "WUAPI 2.0 Type Library" dalla scheda "COM" e fare clic sul pulsante OK.

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

Se si torna alla schermata precedente e si aggiunge "WUAPI 2.0 Type Library" all'elenco centrale, è OK.

Inoltre, controlliamo "WUApiLib" dall'elenco seguente per omettere la descrizione dello spazio dei nomi nel programma.

scena

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

La schermata utilizzata in questo esempio è una semplice schermata con un pulsante di esecuzione per controllare lo stato di installazione della KB e una casella di testo che visualizza i risultati.

Lo sto facendo in WPF, ma la stessa schermata è configurabile in Windows Form.

programma

C UpdateSession # aggiunge ""using WUApiLib; all'inizio del codice per ridurre la descrizione delle classi e di altri spazi dei nomi. In VB.NET, hai specificato di importare lo spazio dei nomi nelle proprietà del progetto, quindi non è necessario scrivere nulla di speciale, ma se non l'hai fatto, devi aggiungere ".Imports WUApiLib

* Sia in C# che in VB.NET, se tutti i nomi di classe sono scritti da uno spazio dei nomi come ",WUApiLib.UpdateSession la specifica di cui sopra non è necessaria.

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

Di seguito è riportato il codice che cerca ed elenca i KB installati.

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

Il contenuto è come commentato.

IUpdateSearcher.SearchÈ possibile modificare ciò che si ottiene dalla stringa specificata come argomento del metodo. Per ulteriori informazioni, vedere Metodo IUpdateSearcher::Search.