Использование WUA для определения состояния установки обновлений Windows

Страница обновлена :
Дата создания страницы :

сводка

Используйте WUA для проверки наличия обновлений (в КБ), установленных в windows, которую вы используете в настоящее время.

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

Операционная среда

Среда проверки операций

Версия для Windows
  • Windows 7 Максимальная
Версия платформы .NET Framework
  • 4

Требуемые системные требования

Версия для Windows
  • Windows 7 (другие среды неподтверждены)
Версия платформы .NET Framework
  • 4.0 (другие среды не подтверждены)

вещество

Об этом примере

Цель этого примера — определить базу знаний, установленную в Windows, и ее назначение почти такое же, как «Использование WMI для определения состояния установки обновлений Windows». Однако этот пример проверяется с помощью "WUA" вместо WMI.

Описание базы знаний описано в разделе «Использование WMI для определения способа установки обновлений Windows», поэтому проверьте его.

Что такое АВП?

WUA расшифровывается как «Агент Центра обновления Windows» и представляет собой набор COM-интерфейсов, которые обеспечивают доступ к Центру обновления Windows и службам Windows Server Update Services (WSUS). Вы можете использовать его, чтобы определить, какая база знаний установлена в Windows.

Подробное объяснение АВП и программирования с помощью АВП можно найти по следующим ссылкам:

Программы, выполняющие поиск состояния установки базы знаний

Добавление ссылок (C#)

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

Чтобы использовать WUA, необходимо ссылаться на библиотеку типов WUAPI 2.0 из COM.

Для проектов C# щелкните правой кнопкой мыши Ссылки из обозревателя решений и выберите Добавить ссылки.

参照の追加ダイアログで 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 Type Library» на вкладке «COM» и нажмите кнопку OK.

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

Если вы вернетесь на предыдущий экран и добавите «WUAPI 2.0 Type Library» в средний список, все в порядке.

Кроме того, давайте проверим «WUApiLib» из списка ниже, чтобы опустить описание пространства имен в программе.

сцена

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

Экран, используемый в этом примере, представляет собой простой экран с кнопкой выполнения для проверки состояния установки базы знаний и текстовым полем, отображающим результаты.

Я делаю это в WPF, но тот же экран настраивается в Windows Form.

программа

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::Search.