安装Windows更新

时间:2017-01-19 10:30:39

标签: powershell

我有以下powershell脚本,每次运行时都应该更新我的Windows操作系统。因此,我使用给定的Windows API来搜索,下载和安装更新。但不知何故,只搜索它们确实有效。

这是我的剧本:

I tried using 
Select min(start_time) start_time, max(finish_time) finish_time from times Group by CAST(start_time AS DATE)

但我得到以下错误:

$global:scriptpath = $MyInvocation.MyCommand.Path
$global:dir = Split-Path $scriptpath
$global:logfile = "$dir\updatelog.txt"

write-host " Searching for updates..."
$session = New-Object -ComObject Microsoft.Update.Session
$searcher = $session.CreateUpdateSearcher()
$result = $searcher.Search("IsInstalled=0 and Type='Software' and IsHidden=0")

if ($result.Updates.Count -eq 0) {
     Write-Host "No updates to install"
} else {

    $result.Updates | Select Title

}

$downloads = New-Object -ComObject Microsoft.Update.UpdateColl

foreach ($update in $result){
    try {
        $update.AcceptEula()
        $Null = $downloads.Add($update)
    } catch {}

}

$count = $result.Updates.Count

write-host ""
write-host "There are $($count) updates available."
write-host ""

read-host "Press Enter to download\install updates"

$downloader = $session.CreateUpdateDownLoader()
$downloader.Updates = $downloads
$downloader.Download()

$installs = New-Object -ComObject Microsoft.Update.UpdateColl
foreach ($update in $result.Updates){
     if ($update.IsDownloaded){
           $installs.Add($update)
     }
}

$installer = $session.CreateUpdateInstaller()
$installer.Updates = $installs
$installresult = $installer.Install()
$installresult

不知怎的,这行:$ downloader.Updates = $ downloads没有执行,但我不知道为什么。我也尝试过以管理员身份运行脚本,也没有工作。

1 个答案:

答案 0 :(得分:0)

该错误代码为WU_E_NO_UPDATE,描述为here。基本上它表示Updates集合未设置或为空。