Määritä Windows-päivitysten asennuksen tila WUA:n avulla
yhteenveto
WUA:n avulla voit tarkistaa päivitykset (ktk-muodossa), jotka on asennettu tällä hetkellä käyttämääsi Windowsiin.
Toimintaympäristö
Käyttötarkastuksen ympäristö
Windows-versio |
|
.NET Framework -versio |
|
Järjestelmävaatimukset vaaditaan
Windows-versio |
|
.NET Framework -versio |
|
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ä:
- Windows Update Agent -ohjelmointirajapinta
- Onko mahdollista saada luettelo kaikista päivityksistä, jotka on lisätty tietokoneelleni?
- IUpdateSearcher::Hakumenetelmä
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ä.
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)
Jos VB.NET, napsauta hiiren kakkospainikkeella Oma projekti Solution Explorerista ja valitse Avaa.
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.
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
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.Search
Voit muuttaa sitä, mitä saat menetelmän argumentiksi määrittämälläsi merkkijonolla. Lisätietoja on kohdassa IUpdateSearcher::Hakumenetelmä.