Вот VBScript, который вы можете использовать для установки обновлений с
http://msdn.microsoft.com/en-us/library/aa387102(VS.85).aspx
Вы можете очень легко использовать COM-объект в PowerShell. Учитывая приведенный выше пример VBScript, вы также можете использовать этот объект в 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:\>
Вы можете по-прежнему использовать get-member, чтобы узнать все различные варианты, и в основном преобразовать этот VBScript в PowerShell и настроить его так, чтобы он делал все, что вам нужно.
Andy