PowerShell 管理Windows Update 2


Windows 还有一些鲜为人知的com对象,支持操作windows 更新,下面的例子会列出机器的 windows  更新历史。

$Session = New-Object -ComObject Microsoft.Update.Session
$Searcher = $Session.CreateUpdateSearcher()
$HistoryCount = $Searcher.GetTotalHistoryCount()
$Searcher.QueryHistory(1,$HistoryCount) | Select-Object Date, Title, Description

仅仅展示已安装的更新,作用不大,能够自动检查并安装更新或者打补丁就更完美了。下面的脚本可以完成自动更新:

$objSession = New-Object -ComObject "Microsoft.Update.Session"
$objSearcher= $objSession.CreateUpdateSearcher()
$searchResult = $objSearcher.Search("IsInstalled=0 and Type='Software'")

if($searchResult.Updates.Count -lt 1)
{
    exit
}

$updatesToDownload=New-Object -ComObject "Microsoft.Update.UpdateColl"
foreach($update in $searchResult.Updates)
{
    $updatesToDownload.Add($update)
    write-Host "Download available: $($update.Title)"
}

$downloader = $objSession.CreateUpdateDownloader()
$downloader.Updates = $updatesToDownload
$downloader.Download()

$updatesToInstall = New-Object -ComObject "Microsoft.Update.UpdateColl"
foreach($update in $searchResult.Updates)
{
    if($update.IsDownloaded)
    {
        $updatesToInstall.Add($update)
        write-Host "Ready to install: $($update.Title)"
    }
}

$installer = $objSession.CreateUpdateInstaller()
$installer.Updates = $updatesToInstall
$batchResult = $installer.Install()

foreach($individualResult in $batchResult)
{
    write-Host "Install finished: $(individualResult.Title) | $(individualResult.ResultString)"
}

已经有牛人帮我们写好了一个module:Windows Update PowerShell Module,里面包括9个函数:

  • Add-WUOfflineSync
  • Get-WUHistory
  • Get-WUInstall
  • Get-WUInstallerStatus
  • Get-WUList
  • Get-WURebootStatus
  • Get-WUServiceManager
  • Get-WUUninstall
  • Remove-WUOfflineSync

下载后会发现,里面调用的全部是com对象的方法。

下载地址

原文链接:http://powershell.com/cs/blogs/tips/archive/2012/09/27/listing-windows-updates-with-powershell.aspx

本文链接: https://www.pstips.net/powershell-listing-windows-updates.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

2 条评论 “PowerShell 管理Windows Update