Como atualizar automaticamente todos os dispositivos no gerenciador de dispositivos

11

No gerenciador de dispositivos do Windows, é possível "manualmente" iniciar uma atualização automática de um dispositivo. Mas é muito entediante, cada dispositivo tem que ser clicado (como não se sabe se esse dispositivo em particular tem uma atualização disponível) - então os popups precisam ser clicados - e é preciso esperar que a pesquisa online termine.

Então eu esperava que houvesse algum script Powershell sendo capaz de fazer isso, ou talvez uma entrada de registro para que o "Windows Update" cuidasse disso.

(Ehm sim, o Windows NÃO atualiza automaticamente TODOS os dispositivos no gerenciador de dispositivos).

    
por user5542121 21.08.2017 / 17:23

3 respostas

4

O artigo Script para instalar ou atualizar drivers diretamente do Catálogo da Microsoft contém um script do PowerShell para fazer o que é solicitado.

O artigo inclui boas explicações de cada parte do script. Eu reproduzo abaixo apenas o script nu com apenas pequenas alterações (que eu não testei):

#search and list all missing Drivers

$Session = New-Object -ComObject Microsoft.Update.Session           
$Searcher = $Session.CreateUpdateSearcher() 

$Searcher.ServiceID = '7971f918-a847-4430-9279-4a52d1efe18d'
$Searcher.SearchScope =  1 # MachineOnly
$Searcher.ServerSelection = 3 # Third Party

$Criteria = "IsInstalled=0 and Type='Driver' and ISHidden=0"
Write-Host('Searching Driver-Updates...') -Fore Green  
$SearchResult = $Searcher.Search($Criteria)          
$Updates = $SearchResult.Updates

#Show available Drivers

$Updates | select Title, DriverModel, DriverVerDate, Driverclass, DriverManufacturer | fl

#Download the Drivers from Microsoft

$UpdatesToDownload = New-Object -Com Microsoft.Update.UpdateColl
$updates | % { $UpdatesToDownload.Add($_) | out-null }
Write-Host('Downloading Drivers...')  -Fore Green  
$UpdateSession = New-Object -Com Microsoft.Update.Session
$Downloader = $UpdateSession.CreateUpdateDownloader()
$Downloader.Updates = $UpdatesToDownload
$Downloader.Download()

#Check if the Drivers are all downloaded and trigger the Installation

$UpdatesToInstall = New-Object -Com Microsoft.Update.UpdateColl
$updates | % { if($_.IsDownloaded) { $UpdatesToInstall.Add($_) | out-null } }

Write-Host('Installing Drivers...')  -Fore Green  
$Installer = $UpdateSession.CreateUpdateInstaller()
$Installer.Updates = $UpdatesToInstall
$InstallationResult = $Installer.Install()
if($InstallationResult.RebootRequired) {  
Write-Host('Reboot required! please reboot now..') -Fore Red  
} else { Write-Host('Done..') -Fore Green }

Um pacote de propósito geral e poderoso é PSWindowsUpdate .

Aqui estão alguns tutoriais sobre como instalar e usar:

O pacote adiciona o comando Get-WUInstall (e outros) com o qual você pode obtenha e instale atualizações. A fonte de Get-WUInstall também está disponível separadamente do github .

Outro exemplo sobre seu uso é encontrado no artigo PS Script para automatizar as atualizações do Windows e do MS .

    
por 24.08.2017 / 21:07
1

Embora não seja totalmente automático, o Snappy Driver Installer de código aberto pode ser usado para atualizar os drivers de forma independente do hardware com alguns cliques .

    
por 22.08.2017 / 22:29
0

Existe uma aplicação Windows Update MiniTool que pode obter esses drivers, mas é capaz de muito mais - em relação às atualizações do Windows.

(eu pessoalmente ainda prefiro o roteiro de harrymc, é indolor - apenas comece e termine)

Citado no Fórum em inglês:

An alternative to the standard Windows Update
What you can do:

 - Check for updates
 - Download updates
 - Installing Updates
 - Deleting installed updates
 - Hiding unwanted updates
 - Get direct links to the *.cab / *.Exe / *.Psf update files
 - View update history
 - Configure Automatic Updates
    
por 31.08.2017 / 12:24