Utiliser WUA pour déterminer l’état d’installation des mises à jour Windows

Page mise à jour :
Date de création de la page :

résumé

Utilisez WUA pour rechercher les mises à jour (en Ko) installées sur Windows que vous utilisez actuellement.

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

Environnement d’exploitation

Environnement de vérification des opérations

Windows Version
  • Windows 7 Édition Intégrale
Version du .NET Framework
  • 4

Configuration système requise

Windows Version
  • Windows 7 (autres environnements non confirmés)
Version du .NET Framework
  • 4.0 (aucun autre environnement confirmé)

substance

À propos de cet exemple

L’objectif de cet exemple est de déterminer la base de connaissances installée sur Windows, et l’objectif est presque le même que « Utiliser WMI pour déterminer l’état d’installation des mises à jour Windows ». Toutefois, cet exemple est vérifié à l’aide de « WUA » au lieu de WMI.

La description de la base de connaissances est décrite dans « Utiliser WMI pour savoir comment les mises à jour Windows sont installées », alors vérifiez-la.

Qu’est-ce que WUA?

WUA signifie « Windows Update Agent » et est un ensemble d’interfaces COM qui permettent d’accéder à Windows Update et Windows Server Update Services (WSUS). Vous pouvez l’utiliser pour déterminer quel KB est installé sur Windows.

Pour une explication détaillée de WUA et de la programmation avec WUA, consultez les liens suivants :

Programmes qui recherchent l’état d’installation de la base de connaissances

Ajout de références (C#)

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

Pour utiliser WUA, vous devez référencer la bibliothèque de types WUAPI 2.0 à partir de COM.

Pour les projets C#, cliquez avec le bouton droit sur Références dans l’Explorateur de solutions et choisissez Ajouter des références.

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

Lorsque la boîte de dialogue Ajouter une référence s’affiche, sélectionnez Bibliothèque de types WUAPI 2.0 dans l’onglet COM et cliquez sur le bouton OK.

OK si « WUApiLib » est ajouté aux paramètres de référence de l’Explorateur de solutions.

Ajouter une référence (VB.NET)

My Project から開くを選択

Pour VB.NET, cliquez avec le bouton droit sur Mon projet dans l’Explorateur de solutions et choisissez Ouvrir.

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

Lorsque les propriétés s’ouvrent, cliquez sur « Parcourir » dans l’onglet de gauche, cliquez sur le bouton Ajouter à droite. Comme en C#, la boîte de dialogue Ajouter une référence s’affiche, alors sélectionnez « WuAPI 2.0 Type Library » dans l’onglet « COM » et cliquez sur le bouton OK.

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

Si vous revenez à l’écran précédent et ajoutez « WUAPI 2.0 Type Library » à la liste du milieu, c’est OK.

Vérifions également « WUApiLib » dans la liste ci-dessous pour omettre la description de l’espace de noms dans le programme.

scène

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

L’écran utilisé dans cet exemple est un écran simple avec un bouton d’exécution pour vérifier l’état d’installation de la Base de connaissances et une zone de texte qui affiche les résultats.

Je le fais dans WPF, mais le même écran est configurable dans Windows Form.

programme

C UpdateSession # ajoute «  »using WUApiLib; au début du code pour réduire la description des classes et autres espaces de noms. Dans VB.NET, vous avez spécifié d’importer l’espace de noms dans les propriétés du projet, vous n’avez donc pas besoin d’écrire quoi que ce soit de spécial, mais si vous ne l’avez pas fait, vous devez ajouter « .Imports WUApiLib

* En C# et VB.NET, si tous les noms de classe sont écrits à partir d’un espace de noms tel que « ,WUApiLib.UpdateSession la spécification ci-dessus n’est pas nécessaire.

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

Vous trouverez ci-dessous le code qui recherche et répertorie la base de connaissances installée.

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

Le contenu est tel que commenté.

IUpdateSearcher.SearchVous pouvez modifier ce que vous obtenez par la chaîne que vous spécifiez comme argument de la méthode. Pour plus d’informations, consultez IUpdateSearcher::Search Method.