¿Cómo actualizar todos los controladores de Windows?

¿Cómo actualizar todos los controladores de Windows?

¿Hay alguna manera de obligar a Windows a volver a verificar?tododispositivos contra controladores en su base de datos (HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\DevicePath) y actualizar a los últimos controladores disponibles? Algo similar a lo que hace sysprep cuando se inicia por primera vez una imagen HD clonada.

Por ejemplo: cuando instala Windows en una placa base, algunos dispositivos se reconocen e instalan automáticamente con los controladores del CD de Windows. Algunos otros no se reconocen y por tanto no se instalan. Normalmente, utiliza el CD MB para actualizar todos los controladores. Hay dos maneras de hacerlo:

  1. Archivo .exe: simplemente ejecútelo y (normalmente) actualizará todos los controladores (reconocidos o no).

  2. Archivo .inf: si no se reconoce el dispositivo, el asistente de instalación del controlador encontrará el controlador en el CD.automáticamente, de lo contrario tendrás que actualizar manualmente (Administrador de dispositivos -> propiedades del dispositivo -> ... -> Actualizar controlador)SIusted sabe qué dispositivos tienen controladores actualizados en el CD de MB. Puede consultar los archivos .inf en el CD para encontrar cuáles son compatibles, pero es un proceso doloroso.

Normalmente modifico la clave de registro de DevicePath y uso paquetes de controladores cuando creo una imagen de PC para clonarla más tarde (trabajo para un departamento de TI), y sysprep se encarga del resto. Pero cuando desea instalar una PC diferente a la imagen HD guardada (por lo tanto, no usa sysprep), este proceso no se aplica.

Lo que quiero hacer es:

  1. Una vez instalado Windows, descomprima los paquetes de controladores en una carpeta.

  2. Modificar ruta del dispositivo

  3. Obligue a Windows a actualizar a los controladores más nuevos (los dispositivos_ya_reconocidos_ son lo más importante aquí, no hay problema con los no reconocidos).

Es el tercer paso que no sé cómo hacer.

Respuesta1

Intenta usarDevCon, una utilidad de Microsoft.

La utilidad DevCon es una utilidad de línea de comandos que actúa como alternativa al Administrador de dispositivos. Con DevCon, puede habilitar, deshabilitar, reiniciar, actualizar, eliminar y consultar dispositivos individuales o grupos de dispositivos.

Siempre que descomprima sus controladores en una ruta de búsqueda predeterminada, puede realizar una nueva exploración para capturar todos los dispositivos que no están instalados inicialmente.

Respuesta2

Puede utilizar DPInst.exe.

Aquí tienes una guía:http://blogs.technet.com/b/svengruenitz/...

Este es el archivo DPInst.xml que uso para actualizar silenciosamente todos los controladores.

<?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>

También puede ejecutar DPInst.exe en el símbolo del sistema con el indicador /C para ver qué está haciendo.

La documentación de DPInstall está aquí:https://msdn.microsoft.com/...

Respuesta3

El artículoScript para instalar o actualizar controladores directamentedel catálogo de Microsoft contiene un script de PowerShell para hacerlo para todos los controladores.

El artículo incluye buenas explicaciones de cada parte del guión. A continuación reproduzco solo el script básico con solo cambios menores (que no he probado):

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

Respuesta4

Hay algunos programas (no gratuitos) que pretenden hacer esto por usted. Los 2 que se me ocurren son:

robot conductor

detective conductor

No he usado ninguno de ellos, así que no puedo dar fe de lo buenos que son.

información relacionada