Cách tự động cập nhật tất cả các thiết bị trong trình quản lý thiết bị


18

Trong trình quản lý thiết bị Windows, có thể "thủ công" bắt đầu cập nhật tự động thiết bị. Nhưng nó rất tẻ nhạt, mỗi thiết bị phải được bấm (vì không biết thiết bị cụ thể đó có sẵn bản cập nhật hay không) - sau đó các cửa sổ bật lên phải được nhấp - và người ta phải đợi cho quá trình tìm kiếm trực tuyến kết thúc.

Vì vậy, tôi hy vọng có một số tập lệnh Powershell có thể làm điều này hoặc có thể một mục đăng ký để có "Windows Update" đảm nhiệm việc đó.

(Ừ đúng, Windows KHÔNG tự động cập nhật TẤT CẢ các thiết bị trong trình quản lý thiết bị).


Bạn có muốn cập nhật trình điều khiển nói chung hoặc bạn có mô hình phần cứng cụ thể trong tâm trí?
Kiên

1
Bạn đã thử điều devcon trên dấu nhắc lệnh chưa?
antzshrek

@ Persistent13 cập nhật nói chung, không có gì cụ thể
user5542121

1
@Antz devcon có vẻ hoàn hảo, ít nhất là tài liệu nói rằng nó có thể cập nhật. docs.microsoft.com/en-us/windows-hardware/drivers/devtest/ đá Sẽ phải thử, thx!
dùng5542121

@Antz Tôi đã thử devcon , vì có vẻ như nó không thực hiện tra cứu trực tuyến cho các trình điều khiển. Nó chỉ có thể cài đặt một tập tin inf nhất định .
dùng5542121

Câu trả lời:


12

Tập lệnh bài viết để cài đặt hoặc cập nhật trình điều khiển trực tiếp từ Danh mục Microsoft chứa tập lệnh PowerShell để thực hiện những gì được yêu cầu.

Bài viết bao gồm các giải thích tốt về từng phần của kịch bản. Tôi chỉ sao chép kịch bản dưới đây chỉ với những thay đổi nhỏ (mà tôi chưa thử nghiệm):

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

Gói đa năng và mạnh mẽ là PSWindowsUpdate .

Dưới đây là một vài hướng dẫn về cài đặt và sử dụng nó:

Gói thêm Get-WUInstalllệnh (và các lệnh khác) mà bạn có thể nhận và cài đặt các bản cập nhật. Nguồn của Get-WUInstallcũng có sẵn riêng biệt từ github .

Một ví dụ khác về việc sử dụng nó được tìm thấy trong bài viết PS Script để tự động hóa Windows và MS Updates .


1
Xinh đẹp! Tôi đã mở rộng tập lệnh một chút, dưới dạng tiêu đề #set Window Title $host.ui.RawUI.WindowTitle = "Driver Updater by harrymc"và để ngăn chặn quyền hạn đóng Write-Host Write-Host('Press any key to exit ...') -Fore Yellow $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")và chạy tập lệnh từ một lô: @echo off powershell.exe -noprofile -ExecutionPolicy Unrestricted -command "&{start-process powershell -ArgumentList ' -ExecutionPolicy Unrestricted -noprofile -file ""%~dp0update.ps1""' -verb RunAs} trong khi tập lệnh ps được đặt tên là update.ps1 và nằm trong cùng một thư mục.
dùng5542121

Ah xin lỗi, chỉ nhận ra bây giờ tôi phải nhấn nút để đưa tiền thưởng, nghĩ rằng chấp nhận câu trả lời là đủ.
dùng5542121

Cảm ơn. Chấp nhận câu trả lời là đủ, nhưng tiền thưởng chỉ được trao vào cuối thời gian đăng 7 ngày.
harrymc

1
Nó không hoạt động đối với tôi ( Exception from HRESULT: 0x80240024)
JinSnow

@JinSnow: Sẽ tốt hơn nếu đăng một câu hỏi riêng với chi tiết về những gì bạn đã làm.
harrymc

2

Một ứng dụng Windows Update MiniTool tồn tại có thể có được các trình điều khiển đó, nhưng nó có khả năng nhiều hơn - liên quan đến các bản cập nhật Windows.

(Cá nhân tôi vẫn thích kịch bản từ harrymc, nó không gây đau đớn - chỉ cần bắt đầu và thực hiện)


Trích dẫn từ Diễn đàn tiếng Anh:

Ảnh chụp màn hình từ ứng dụng

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

Tôi vẫn sử dụng cái này trên W10, nó dừng cập nhật tự động, đó là tính năng tốt nhất.
Moab

1

Một công cụ khác để cập nhật, rất giống với "Windows Update MiniTool":

https://github.com/DavidXanatos/wumgr

Liên kết tải xuống: https://github.com/DavidXanatos/wumgr/release/latest

Ảnh chụp màn hình từ công cụ được liên kết


Trông giống như một sự lột xác của phần mềm tôi tìm thấy cách đây vài năm (2015), quá trình phát triển đã dừng lại và không thể tìm thấy nữa, anh ấy là người Nga, phiên bản cuối cùng của anh ấy là wumt_v30.07.2016 >>>>>>>>>>>> >> wilderssecurity.com/threads/windows-update-minitool.380535
Moab

1
Dường như với tôi như một cái nĩa, không phải là một sự lột xác. Tôi tìm thấy đầu tiên một u được liên kết, và thêm dưới dạng câu trả lời, sau đó tôi tìm thấy cái này .. và có vẻ cải tiến hơn.
dùng5542121

Phiên bản cũ của tôi từ năm 2015 dường như chỉ hoạt động tốt, nhưng cảm ơn vì liên kết đến ngã ba.
Moab
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.