Cómo actualizar automáticamente todos los dispositivos en el administrador de dispositivos

18

En el administrador de dispositivos de Windows es posible iniciar "manualmente" una actualización automática de un dispositivo. Pero es muy tedioso, se debe hacer clic en cada dispositivo (ya que no se sabe si ese dispositivo en particular tiene una actualización disponible), luego se debe hacer clic en las ventanas emergentes y hay que esperar a que finalice la búsqueda en línea.

Así que esperaba que hubiera algún script de Powershell capaz de hacer esto, o tal vez una entrada de registro para que "Windows Update" se encargara de eso.

(Ehm sí, Windows NO actualiza automáticamente TODOS los dispositivos en el administrador de dispositivos).

usuario5542121
fuente
¿Desea actualizaciones de controladores en general o tiene un modelo de hardware específico en mente?
Persistente13
1
¿Has probado lo devcon en el símbolo del sistema?
antzshrek
@ Actualizaciones persistentes13 en general, nada específico
user5542121
1
@Antz devcon parece perfecto, al menos la documentación dice que puede actualizarse. docs.microsoft.com/en-us/windows-hardware/drivers/devtest/… ¡Tendré que intentarlo, gracias!
user5542121
@Antz Intenté devcon , ya que parece que no hace una búsqueda en línea de los controladores. Solo puede instalar un archivo inf dado .
user5542121

Respuestas:

13

El artículo Script para instalar o actualizar controladores directamente desde el Catálogo de Microsoft contiene un script de PowerShell para hacer lo que se le pide.

El artículo incluye buenas explicaciones de cada parte del guión. Reproduzco a continuación solo el script desnudo con solo cambios menores (que no he probado):

#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 }

Un paquete potente y de uso general es PSWindowsUpdate .

Aquí hay un par de tutoriales sobre cómo instalarlo y usarlo:

El paquete agrega el Get-WUInstallcomando (y otros) con los que puede obtener e instalar actualizaciones. La fuente de Get-WUInstalltambién está disponible por separado de github .

Otro ejemplo de su uso se encuentra en el artículo PS Script para automatizar las actualizaciones de Windows y MS .

harrymc
fuente
1
¡Hermosa! Extendí el script un poco, como título #set Window Title $host.ui.RawUI.WindowTitle = "Driver Updater by harrymc"y para evitar que se cierre el PowerShell Write-Host Write-Host('Press any key to exit ...') -Fore Yellow $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")y ejecutar el script desde un lote: @echo off powershell.exe -noprofile -ExecutionPolicy Unrestricted -command "&{start-process powershell -ArgumentList ' -ExecutionPolicy Unrestricted -noprofile -file ""%~dp0update.ps1""' -verb RunAs} mientras que el script ps se llama update.ps1 y está en el mismo directorio.
user5542121
Ah lo siento, solo me di cuenta que ahora tengo que presionar el botón para dar la recompensa, pensé que aceptar la respuesta es suficiente.
user5542121
Gracias. Aceptar la respuesta es suficiente, pero la recompensa solo se otorga al final del período de publicación de 7 días.
harrymc
1
No funcionó para mí ( Exception from HRESULT: 0x80240024)
JinSnow
@ JinSnow: Sería mejor publicar una pregunta por separado con detalles sobre lo que hiciste.
harrymc
2

Existe una aplicación MiniTool de actualización de Windows que puede obtener esos controladores, pero es capaz de mucho más, con respecto a las actualizaciones de Windows.

(Personalmente, todavía prefiero el script de harrymc, es indoloro, solo comience y listo)


Citado del Foro de Inglés:

Captura de pantalla de la aplicación.

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
usuario5542121
fuente
Todavía uso esto en W10, detiene las actualizaciones automáticas, que es la mejor característica.
Moab
1

Otra herramienta para actualizar, muy similar a "Windows Update MiniTool":

https://github.com/DavidXanatos/wumgr

Enlace de descarga: https://github.com/DavidXanatos/wumgr/releases/latest

Captura de pantalla de la herramienta vinculada

usuario5542121
fuente
Parece una estafa de software que encontré hace varios años (2015), el desarrollo se detuvo y ya no se puede encontrar, era ruso, su última versión fue wumt_v30.07.2016 >>>>>>>>>>>> >> wilderssecurity.com/threads/windows-update-minitool.380535
Moab
1
Me parece un tenedor, no un desgarro. Primero encontré el que estaba vinculado, y agregué como respuesta, luego encontré este ... y parece más actualizado.
user5542121
Mi versión anterior de 2015 parece funcionar bien, pero gracias por el enlace a la bifurcación.
Moab