我开始测试是否可以创建一个 powershell 脚本,它可以自动更新所有设备驱动程序。
搜索了一段时间后,我偶然发现了这个帖子: 如何在设备管理器中自动更新所有设备
用户“HarryMc”几乎为我提供了所有需要的答案。我现在的问题是,我在“下载驱动程序”和“安装驱动程序”部分遇到了错误。
Powershell 抛出 HRESULT 0x80240024 异常。过去几天,我一直在试图找出导致这种情况的原因,但没有人能帮我解决。
现在我希望也许在这里我可以得到一些可以解决这个问题的想法或答案。
我使用的代码是:
#search and list all missing Drivers
set Window Title $host.ui.RawUI.WindowTitle = "HarryMc Driver Updater"
$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 }
Write-Host Write-Host('Press any key to exit ...') -Fore Yellow $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
编辑:脚本在第 28 行尝试下载驱动程序时失败,因此无法在第 38 行安装它们。脚本主要用于 win 10 系统。
谢谢大家!