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
source share