Używanie programu WUA do określania stanu instalacji aktualizacji systemu Windows

Strona zaktualizowana :
Data utworzenia strony :

streszczenie

Użyj programu WUA, aby sprawdzić dostępność aktualizacji (w KB) zainstalowanych w aktualnie używanym systemie Windows.

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

Środowisko pracy

Środowisko sprawdzania operacji

Wersja systemu Windows
  • Windows 7 Ultimate
Wersja programu .NET Framework
  • 4

Wymagane wymagania systemowe

Wersja systemu Windows
  • Windows 7 (inne środowiska niepotwierdzone)
Wersja programu .NET Framework
  • 4.0 (nie potwierdzono innych środowisk)

substancja

Informacje o tym przykładzie

Celem tego przykładu jest określenie bazy wiedzy zainstalowanej w systemie Windows, a jej cel jest prawie taki sam jak "Użyj usługi WMI do określenia stanu instalacji aktualizacji systemu Windows". Jednak ten przykład jest sprawdzany przy użyciu "WUA" zamiast WMI.

Opis bazy wiedzy jest opisany w sekcji "Użyj usługi WMI, aby dowiedzieć się, jak są instalowane aktualizacje systemu Windows", więc sprawdź tam.

Co to jest WUA?

WUA oznacza "Windows Update Agent" i jest zestawem interfejsów COM, które umożliwiają dostęp do Windows Update i Windows Server Update Services (WSUS). Można go użyć do określenia, która kb jest zainstalowana w systemie Windows.

Aby uzyskać szczegółowe wyjaśnienie WUA i programowania za pomocą programu WUA, zobacz następujące łącza:

Programy wyszukujące stan instalacji KB

Dodawanie odwołań (C#)

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

Aby korzystać z programu WUA, należy odwołać się do biblioteki typów WUAPI 2.0 z modelu COM.

W przypadku projektów języka C# kliknij prawym przyciskiem myszy pozycję Odwołania z Eksploratora rozwiązań i wybierz polecenie Dodaj odwołania.

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

Po wyświetleniu okna dialogowego Dodaj odwołanie wybierz opcję Biblioteka typów WUAPI 2.0 z karty COM i kliknij przycisk OK przycisk.

OK, jeśli "WUApiLib" jest dodawany do ustawień referencyjnych Eksploratora rozwiązań.

Dodawanie odwołania (VB.NET)

My Project から開くを選択

Aby uzyskać VB.NET, kliknij prawym przyciskiem myszy mój projekt w Eksploratorze rozwiązań i wybierz polecenie Otwórz.

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

Po otwarciu właściwości kliknij "Przeglądaj" na karcie po lewej stronie, kliknij przycisk Dodaj po prawej stronie. Podobnie jak w języku C#, wyświetlane jest okno dialogowe Dodaj odwołanie, więc wybierz "Biblioteka typów WUAPI 2.0" z karty "COM" i kliknij przycisk OK.

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

Jeśli powrócisz do poprzedniego ekranu i dodasz "WUAPI 2.0 Type Library" do środkowej listy, wszystko jest w porządku.

Sprawdźmy również "WUApiLib" z poniższej listy, aby pominąć opis przestrzeni nazw w programie.

scena

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

Ekran użyty w tym przykładzie jest prostym ekranem z przyciskiem wykonywania umożliwiającym sprawdzenie stanu instalacji KB i polem tekstowym wyświetlającym wyniki.

Robię to w WPF, ale ten sam ekran można skonfigurować w Windows Form.

program

C UpdateSession # dodaje ""using WUApiLib; na początku kodu, aby zmniejszyć opis klas i innych przestrzeni nazw. W VB.NET określiłeś, aby zaimportować przestrzeń nazw we właściwościach projektu, więc nie musisz pisać nic specjalnego, ale jeśli nie, musisz dodać ".Imports WUApiLib

* Zarówno w języku C#, jak i VB.NET, jeśli wszystkie nazwy klas są zapisywane z przestrzeni nazw, takiej jak ",WUApiLib.UpdateSession powyższa specyfikacja nie jest konieczna.

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

Poniżej znajduje się kod, który przeszukuje i wyświetla zainstalowaną KB.

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

Treść jest taka, jak skomentowano.

IUpdateSearcher.SearchMożesz zmienić to, co otrzymasz za pomocą ciągu określonego jako argument metody. Aby uzyskać więcej informacji, zobacz IUpdateSearcher::Search Method.