Comment mettre à jour automatiquement tous les appareils dans le gestionnaire d'appareils

18

Dans le gestionnaire de périphériques Windows, il est possible de démarrer "manuellement" une mise à jour automatique d'un périphérique. Mais c'est très fastidieux, chaque appareil doit être cliqué (car on ne sait pas si cet appareil particulier dispose d'une mise à jour disponible) - alors les popups doivent être cliqués - et il faut attendre la fin de la recherche en ligne.

J'espérais donc qu'un script Powershell pourrait faire cela, ou peut-être une entrée de registre pour que "Windows Update" s'en occupe.

(Ehm oui, Windows ne met PAS automatiquement à jour TOUS les appareils dans le gestionnaire d'appareils).

user5542121
la source
Voulez-vous des mises à jour de pilotes en général ou avez-vous un modèle matériel spécifique en tête?
Persistent13
1
Avez-vous essayé la chose devcon sur l'invite de commande?
antzshrek
@ Persistent13 mises à jour en général, rien de spécifique
user5542121
1
@Antz devcon semble parfait, au moins la documentation dit qu'il peut être mis à jour. docs.microsoft.com/en-us/windows-hardware/drivers/devtest/… Doit essayer, merci!
user5542121
@Antz J'ai essayé devcon , car il semble qu'il ne fasse pas de recherche en ligne pour les pilotes. Il ne peut installer qu'un fichier inf donné .
user5542121

Réponses:

13

L'article Script pour installer ou mettre à jour les pilotes directement à partir du catalogue Microsoft contient un script PowerShell pour faire ce qui est demandé.

L'article comprend de bonnes explications sur chaque partie du script. Je reproduis ci-dessous juste le script nu avec seulement des changements mineurs (que je n'ai pas testés):

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

PSWindowsUpdate est un package polyvalent et puissant .

Voici quelques tutoriels sur son installation et son utilisation:

Le package ajoute la Get-WUInstallcommande (et d'autres) avec laquelle vous pouvez obtenir et installer des mises à jour. La source de Get-WUInstallest également disponible séparément de github .

Un autre exemple sur son utilisation se trouve dans l'article PS Script pour automatiser Windows et MS Updates .

harrymc
la source
1
Magnifique! J'ai étendu un peu le script, comme titre #set Window Title $host.ui.RawUI.WindowTitle = "Driver Updater by harrymc"et pour empêcher la fermeture du PowerShell Write-Host Write-Host('Press any key to exit ...') -Fore Yellow $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")et pour exécuter le script à partir d'un lot: @echo off powershell.exe -noprofile -ExecutionPolicy Unrestricted -command "&{start-process powershell -ArgumentList ' -ExecutionPolicy Unrestricted -noprofile -file ""%~dp0update.ps1""' -verb RunAs} tandis que le script ps est nommé update.ps1 et se trouve dans le même répertoire.
user5542121
Ah désolé, seulement réalisé maintenant que je dois appuyer sur le bouton pour donner la prime, pensant qu'accepter la réponse est suffisant.
user5542121
Merci. Accepter la réponse est suffisant, mais la prime n'est accordée qu'à la fin de la période de publication de 7 jours.
harrymc
1
Cela n'a pas fonctionné pour moi ( Exception from HRESULT: 0x80240024)
JinSnow
@JinSnow: Il serait préférable de poster une question séparée avec des détails sur ce que vous avez fait.
harrymc
2

Il existe une application Windows Update MiniTool qui peut obtenir ces pilotes, mais elle est capable de beaucoup plus - en ce qui concerne les mises à jour Windows.

(Personnellement, je préfère toujours le script de harrymc, c'est indolore - il suffit de le démarrer et de le faire)


Cité du Forum anglais:

Capture d'écran de l'application

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
user5542121
la source
Je l'utilise toujours sur W10, il arrête les mises à jour automatiques, ce qui est la meilleure fonctionnalité.
Moab
1

Un autre outil à mettre à jour, très similaire à "Windows Update MiniTool":

https://github.com/DavidXanatos/wumgr

Lien de téléchargement: https://github.com/DavidXanatos/wumgr/releases/latest

Capture d'écran de l'outil lié

user5542121
la source
On dirait une arnaque de logiciel que j'ai trouvée il y a plusieurs années (2015), le développement s'est arrêté et ne peut plus être trouvé, il était Russe, sa dernière version était wumt_v30.07.2016 >>>>>>>>>>>>> >> wilderssecurity.com/threads/windows-update-minitool.380535
Moab
1
Cela me semble être une fourchette, pas une déchirure. J'ai trouvé d'abord celui que vous avez lié, et ajoutez comme réponse, plus tard j'ai trouvé celui-ci .. et semble plus à jour.
user5542121
Mon ancienne version de 2015 semble très bien fonctionner, mais merci pour le lien vers la fourche.
Moab