Как обновить все драйверы Windows?

Как обновить все драйверы Windows?

Есть ли способ заставить Windows перепроверить?всеустройств с драйверами в своей базе данных (HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\DevicePath) и обновить до последних доступных драйверов? Что-то похожее на то, что делает sysprep, когда клонированный образ HD запускается в первый раз.

Например: Когда вы устанавливаете Windows на материнскую плату, некоторые устройства распознаются и устанавливаются автоматически с драйверами с компакт-диска Windows. Некоторые другие не распознаются, поэтому не устанавливаются. Обычно вы используете компакт-диск MB для обновления всех драйверов. Есть два способа сделать это:

  1. Файл .exe: просто запустите его, и (обычно) он обновит все драйверы (распознанные или нет).

  2. Файл .inf: ЕСЛИ устройство не распознано, мастер установки драйвера найдет драйвер на компакт-дискеавтоматически, в противном случае вам придется обновить вручную (Диспетчер устройств -> Свойства устройства -> ... -> Обновить драйвер)ЕСЛИвы знаете, какие устройства имеют обновленные драйверы на CD MB. Вы можете проверить файлы .inf на CD, чтобы узнать, какие из них поддерживаются, но это болезненный процесс.

Обычно я изменяю ключ реестра DevicePath и использую пакеты драйверов, когда создаю образ ПК для последующего клонирования (я работаю в ИТ-отделе), а sysprep заботится обо всем остальном. Но когда вы хотите установить ПК иначе, чем сохраненный образ HD (поэтому вы не используете sysprep), этот процесс не применяется.

Вот что я хочу сделать:

  1. После установки Windows распакуйте пакеты драйверов в папку.

  2. Изменить путь к устройству

  3. Заставьте Windows обновиться до более новых драйверов (самое главное здесь — _уже_распознанные_устройства_, с нераспознанными проблем не будет).

А вот третий шаг я не знаю, как сделать.

решение1

Попробуйте использоватьDevCon, утилита Microsoft.

Утилита DevCon — это утилита командной строки, которая действует как альтернатива диспетчеру устройств. Используя DevCon, вы можете включать, отключать, перезапускать, обновлять, удалять и запрашивать отдельные устройства или группы устройств.

Если вы распаковываете драйверы в папку поиска по умолчанию, вы можете выполнить повторное сканирование, чтобы обнаружить все устройства, которые не были установлены изначально.

решение2

Вы можете использовать DPInst.exe.

Вот руководство:http://blogs.technet.com/b/svengruenitz/...

Это файл DPInst.xml, который я использую для скрытого обновления всех драйверов.

<?xml version="1.0" ?>

<dpinst>

    <!-- Suppress the addition of entries to Programs and Features in 
    Control Panel.-->
    <suppressAddRemovePrograms/>

    <!-- install a driver package for a Plug and Play (PnP) function driver 
    only if the driver package matches a device that is configured in a 
    computer and the driver package is a better match for the device than 
    the driver package that is currently installed on the device. -->
    <scanHardware/>

    <!-- Suppress the display of user interface items that DPInst and 
    Windows generate. -->
    <quietInstall/>

    <!-- The following search and subDirectory elements direct
        DPInst to search all subdirectories (under the DPInst working
        directory) to locate driver packages. -->
    <search>
        <subDirectory>*</subDirectory>
    </search>
</dpinst>

Вы также можете запустить DPInst.exe в командной строке с флагом /C, чтобы увидеть, что он делает.

Документация по DPInstall находится здесь:https://msdn.microsoft.com/...

решение3

СтатьяСкрипт для прямой установки или обновления драйверовВ каталоге Microsoft содержится скрипт 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 }

решение4

Есть несколько (не бесплатных) программ, которые заявляют, что делают это за вас. Две, которые приходят мне на ум, это:

Робот-водитель

Водитель-детектив

Я не пользовался ни одним из них, поэтому не могу ручаться за их качество.

Связанный контент