Määritä Windows-päivitysten asennuksen tila WUA:n avulla

Sivu päivitetty :
Sivun luontipäivämäärä :

yhteenveto

WUA:n avulla voit tarkistaa päivitykset (ktk-muodossa), jotka on asennettu tällä hetkellä käyttämääsi Windowsiin.

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

Toimintaympäristö

Käyttötarkastuksen ympäristö

Windows-versio
  • Windows 7 Ultimate
.NET Framework -versio
  • 4

Järjestelmävaatimukset vaaditaan

Windows-versio
  • Windows 7 (muut ympäristöt, joita ei ole vahvistettu)
.NET Framework -versio
  • 4.0 (muita ympäristöjä ei vahvistettu)

aine

Tietoja tästä näytteestä

Tämän näytteen tavoitteena on määrittää Windowsiin asennettu KB, ja tarkoitus on melkein sama kuin "Käytä WMI: tä Windows-päivitysten asennuksen tilan määrittämiseen". Tämä näyte tarkistetaan kuitenkin käyttämällä "WUA" WMI: n sijaan.

KB-kuvaus on kuvattu kohdassa "Käytä WMI:tä selvittääksesi, miten Windows-päivitykset on asennettu", joten tarkista se sieltä.

Mikä on WUA?

WUA on lyhenne sanoista "Windows Update Agent" ja se on joukko COM-rajapintoja, jotka mahdollistavat pääsyn Windows Update- ja Windows Server Update Services (WSUS) -palveluihin. Sen avulla voit määrittää, mikä KB on asennettu Windowsiin.

Yksityiskohtainen selitys WUA: sta ja ohjelmoinnista WUA: n kanssa on seuraavissa linkeissä:

Ohjelmat, jotka etsivät KB-asennuksen tilaa

Viitteiden lisääminen (C#)

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

Jos haluat käyttää WUA:ta, sinun on viitattava WUAPI 2.0 Type Libraryen COM:sta.

Jos kyseessä on C#-projekti, napsauta hiiren kakkospainikkeella Viittaukset Solution Explorerista ja valitse Lisää viitteitä.

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

Kun Lisää viite -valintaikkuna tulee näkyviin, valitse COM-välilehdeltä WUAPI 2.0 Type Library ja napsauta OK painiketta.

OK, jos "WUApiLib" lisätään Solution Explorerin viiteasetuksiin.

Viitteen lisääminen (VB.NET)

My Project から開くを選択

Jos VB.NET, napsauta hiiren kakkospainikkeella Oma projekti Solution Explorerista ja valitse Avaa.

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

Kun ominaisuudet avautuvat, napsauta vasemmalla olevasta välilehdestä "Selaa", napsauta oikealla olevaa Lisää-painiketta. Kuten C #: ssa, Lisää viite -valintaikkuna tulee näkyviin, joten valitse "WUAPI 2.0 Type Library" "COM" -välilehdeltä ja napsauta OK-painiketta.

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

Jos palaat edelliseen näyttöön ja lisäät "WUAPI 2.0 Type Library" keskimmäiseen luetteloon, se on OK.

Tarkistetaan myös "WUApiLib" alla olevasta luettelosta jättääksesi pois nimiavaruuden kuvauksen ohjelmasta.

kohtaus

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

Tässä esimerkissä käytetty näyttö on yksinkertainen näyttö, jossa on suorituspainike KB: n asennuksen tilan tarkistamiseksi ja tekstiruutu, joka näyttää tulokset.

Teen sen WPF: ssä, mutta sama näyttö on määritettävissä Windows Formissa.

ohjelma

C UpdateSession # lisää ""using WUApiLib; koodin alkuun vähentääkseen luokkien ja muiden nimiavaruuksien kuvausta. Vuonna VB.NET, määritit tuoda nimiavaruuden projektin ominaisuuksiin, joten sinun ei tarvitse kirjoittaa mitään erityistä, mutta jos et ole, sinun on lisättävä ".Imports WUApiLib

* Sekä C#: ssa että VB.NET, jos kaikki luokkien nimet on kirjoitettu nimiavaruudesta, kuten ", kuten ",WUApiLib.UpdateSession yllä oleva määritys ei ole tarpeen.

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

Alla on koodi, joka etsii ja luettelee asennetun KB: n.

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

Sisältö on kommentoitu.

IUpdateSearcher.SearchVoit muuttaa sitä, mitä saat menetelmän argumentiksi määrittämälläsi merkkijonolla. Lisätietoja on kohdassa IUpdateSearcher::Hakumenetelmä.