web-dev-qa-db-ja.com

デバイスマネージャですべてのデバイスを自動的に更新する方法

Windowsのデバイスマネージャでは、デバイスの自動アップデートを「手動で」開始することができます。しかし、非常に面倒なことに、各デバイスをクリックする必要があり(その特定のデバイスに利用可能なアップデートがあるかどうかはわからないため)、ポップアップをクリックする必要があります。

だから私はこれを行うことができるいくつかのPowershellスクリプト、または多分 "Windows Update"がそれを引き受けるためのレジストリエントリがあることを望みました。

(ええ、Windowsはデバイスマネージャのすべてのデバイスを自動的に更新するわけではありません)。

16
user5542121

記事{ Microsoft Catalogから直接ドライバをインストールまたは更新するためのスクリプト には、求められていることを行うためのPowerShellスクリプトが含まれています。

この記事には、スクリプトの各部分についての詳しい説明が含まれています。私は(私がテストしていない)わずかな変更を加えただけの裸のスクリプトの下に再現します。

#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 です。

これをインストールして使用するためのチュートリアルをいくつか紹介します。

このパッケージには、アップデートを入手してインストールするためのGet-WUInstallコマンド(およびその他のコマンド)が追加されています。 Get-WUInstallのソースは別に入手可能です from github

その使用法に関するもう1つの例は、記事{ WindowsおよびMSの更新を自動化するためのPSスクリプト にあります。

10
harrymc

全自動ではありませんが、オープンソース Snappy Driver Installer を使用すると、数クリックでハードウェアに依存しない方法でドライバを更新できます。

1
Persistent13

これらのドライバを入手できるアプリケーションWindows Update MiniToolが存在しますが、それでもはるかに可能です - Windowsの更新に関して。

(私は個人的にはまだharrymcのスクリプトを好み、その痛みはありません - ただそれを起動して実行してください)


英語フォーラムからの引用:

Screenshot from the 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
1
user5542121

「Windows Update MiniTool」に非常に類似した、更新する別のツール:

https://github.com/DavidXanatos/wumgr

ダウンロードリンク: https://github.com/DavidXanatos/wumgr/releases/latest

Screenshot from the linked tool

0
user5542121