.Net Windows Update Update Request

I was curious if there is an API.Net that will allow me to determine what updates are expected for Windows Update,

Otherwise, is there a windows powershell command that can get it?

+3
source share
3 answers

The Windows Update Agent API may be what you are looking for:

http://msdn.microsoft.com/en-us/library/aa387287%28VS.85%29.aspx

This is a COM interface (not native .NET), but you can use it from your application.

+3
source

Here is VBScript that you can use to install updates using

http://msdn.microsoft.com/en-us/library/aa387102(VS.85).aspx

You can easily use a COM object in PowerShell. Given the VBScript example above, you can also use this object in PS

PS C:\> $updateSession = new-object -com Microsoft.update.Session PS C:\> $updateSession | get-member TypeName: System.__ComObject#{918efd1e-b5d8-4c90-8540-aeb9bdc56f9d} Name MemberType Definition ---- ---------- ---------- CreateUpdateDownloader Method IUpdateDownloader CreateUpdateDownloader () CreateUpdateInstaller Method IUpdateInstaller CreateUpdateInstaller () CreateUpdateSearcher Method IUpdateSearcher CreateUpdateSearcher () CreateUpdateServiceManager Method IUpdateServiceManager2 CreateUpdateServiceManager () QueryHistory Method IUpdateHistoryEntryCollection QueryHistory (string, int, int) ClientApplicationID Property string ClientApplicationID () {get} {set} ReadOnly Property bool ReadOnly () {get} UserLocale Property uint UserLocale () {get} {set} WebProxy Property IWebProxy WebProxy () {get} {set} PS C:\> $searcher = $updateSession.CreateUpdateSearcher() PS C:\> $searcher | gm TypeName: System.__ComObject#{04c6895d-eaf2-4034-97f3-311de9be413a} Name MemberType Definition ---- ---------- ---------- BeginSearch Method ISearchJob BeginSearch (string, IUnknown, Variant) EndSearch Method ISearchResult EndSearch (ISearchJob) EscapeString Method string EscapeString (string) GetTotalHistoryCount Method int GetTotalHistoryCount () QueryHistory Method IUpdateHistoryEntryCollection QueryHistory (int, int) Search Method ISearchResult Search (string) CanAutomaticallyUpgradeService Property bool CanAutomaticallyUpgradeService () {get} {set} ClientApplicationID Property string ClientApplicationID () {get} {set} IgnoreDownloadPriority Property bool IgnoreDownloadPriority () {get} {set} IncludePotentiallySupersededUpdates Property bool IncludePotentiallySupersededUpdates () {get} {set} Online Property bool Online () {get} {set} SearchScope Property SearchScope SearchScope () {get} {set} ServerSelection Property ServerSelection ServerSelection () {get} {set} ServiceID Property string ServiceID () {get} {set} PS C:\> 

You can continue to use get-member to find out all the various options and basically hide this VBScript in PowerShell and tweak it to do whatever you need.

Andy

+3
source

This is not entirely trivial, but you can just reference the COM / WUAPI 2.0 type library, and VS creates a managed shell for you that is copied to create a directory like WuApiLib.dll.

Watch out for memory leaks.

0
source

All Articles