Jak automatycznie aktualizować wszystkie urządzenia w menedżerze urządzeń


18

W menedżerze urządzeń systemu Windows można „ręcznie” uruchomić automatyczną aktualizację urządzenia. Ale jest to bardzo żmudne, każde urządzenie musi zostać kliknięte (ponieważ nie wiadomo, czy to konkretne urządzenie ma dostępną aktualizację) - następnie należy kliknąć wyskakujące okienka - i trzeba czekać na zakończenie wyszukiwania online.

Mam więc nadzieję, że jakiś skrypt Powershell może to zrobić, a może wpis rejestru, aby „Windows Update” się tym zajął.

(Ehm tak, system Windows NIE aktualizuje automatycznie WSZYSTKICH urządzeń w menedżerze urządzeń).


Czy chcesz ogólnie aktualizować sterowniki, czy masz na myśli konkretny model sprzętu?
— Trwałe13

1
Czy wypróbowałeś program devcon w wierszu polecenia?
— antzshrek,

@ Generalnie aktualizacje Persistent13, nic konkretnego
— user5542121

1
@Antz devcon wydaje się idealny, przynajmniej dokumentacja mówi, że można go zaktualizować. docs.microsoft.com/en-us/windows-hardware/drivers/devtest/… Będę musiał spróbować, dzięki!
— user5542121,

@Antz Próbowałem devcon , ponieważ wygląda na to, że nie wyszukuje sterowników online. Może zainstalować tylko dany plik inf .
— user5542121,

Odpowiedzi:


13

Artykuł Skrypt do instalowania lub aktualizowania sterowników bezpośrednio z katalogu Microsoft zawiera skrypt PowerShell do robienia tego, o co proszony.

Artykuł zawiera dobre objaśnienia każdej części skryptu. Poniżej powielam skrypt z niewielkimi zmianami (których nie testowałem):

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

Potężny pakiet ogólnego przeznaczenia to PSWindowsUpdate .

Oto kilka samouczków dotyczących instalowania i używania:

Pakiet dodaje Get-WUInstallpolecenie (i inne), za pomocą których można uzyskać i zainstalować aktualizacje. Źródło Get-WUInstalljest również dostępne oddzielnie od github .

Kolejny przykład jego wykorzystania znajduje się w artykule PS Script do automatyzacji aktualizacji Windows i MS .


1
Piękny! Rozszerzyłem nieco skrypt, jako tytuł, #set Window Title $host.ui.RawUI.WindowTitle = "Driver Updater by harrymc"aby zapobiec zamknięciu programu PowerShell Write-Host Write-Host('Press any key to exit ...') -Fore Yellow $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")i uruchomić skrypt z partii: @echo off powershell.exe -noprofile -ExecutionPolicy Unrestricted -command "&{start-process powershell -ArgumentList ' -ExecutionPolicy Unrestricted -noprofile -file ""%~dp0update.ps1""' -verb RunAs} podczas gdy skrypt ps nazywa się update.ps1 i ma ten sam katalog.
— user5542121,

Ach, przepraszam, dopiero teraz zdałem sobie sprawę, że muszę nacisnąć przycisk, aby dać nagrodę, myślałem, że zaakceptowanie odpowiedzi wystarczy.
— user5542121,

Dzięki. Akceptacja odpowiedzi wystarczy, ale nagroda jest przyznawana dopiero pod koniec 7-dniowego okresu delegowania.
— harrymc,

1
Nie działało to dla mnie ( Exception from HRESULT: 0x80240024)
— JinSnow

@JinSnow: Lepiej byłoby opublikować osobne pytanie ze szczegółowymi informacjami o tym, co zrobiłeś.
— harrymc

2

Istnieje aplikacja Windows Update MiniTool , która może uzyskać te sterowniki, ale może znacznie więcej - w zakresie aktualizacji systemu Windows.

(Osobiście nadal wolę scenariusz od Harrymca, jest bezbolesny - po prostu go uruchom i gotowe)


Cytat z angielskiego forum:

Zrzut ekranu z aplikacji

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

Nadal używam tego na W10, zatrzymuje automatyczne aktualizacje, co jest najlepszą funkcją.
— Moab

1

Kolejne narzędzie do aktualizacji, bardzo podobne do „Windows Update MiniTool”:

https://github.com/DavidXanatos/wumgr

Link do pobrania: https://github.com/DavidXanatos/wumgr/releases/latest

Zrzut ekranu z połączonego narzędzia


Wygląda jak zdzieranie oprogramowania, które znalazłem kilka lat temu (2015), rozwój został zatrzymany i nie można go już znaleźć, był Rosjaninem, jego ostatnia wersja to wumt_v30.07.2016 >>>>>>>>>>>> >> wilderssecurity.com/threads/windows-update-minitool.380535
— Moab

1
Wydaje mi się, że to widelec, a nie rozprucie. Najpierw znalazłem ten, do którego podłączyłem, i dodaję jako odpowiedź, później znalazłem ten ... i wydaje się bardziej aktualny.
— user5542121,

Moja stara wersja z 2015 roku wydaje się działać dobrze, ale dziękuję za link do widelca.
— Moab
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.