AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 38293
Accepted
Yanko Hernández Álvarez
Yanko Hernández Álvarez
Asked: 2009-07-10 06:17:52 +0800 CST2009-07-10 06:17:52 +0800 CST 2009-07-10 06:17:52 +0800 CST

如何更新所有 Windows 驱动程序?

  • 772

有没有办法强制 Windows 重新检查其数据库中的驱动程序(HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\DevicePath)中的所有设备并更新到可用的最新驱动程序?类似于第一次启动克隆的高清映像时 sysprep 所做的事情。

例如:当您在主板上安装 windows 时,某些设备会被识别并使用 windows CD 中的驱动程序自动安装。其他一些无法识别,因此未安装。通常,您使用 MB CD 更新所有驱动程序。有两种方法可以做到这一点:

  1. .exe 文件:只需运行它并(通常)它会更新所有驱动程序(识别与否)。

  2. .inf 文件:如果设备无法识别,驱动程序安装向导会自动在光盘上找到驱动程序,否则您必须手动更新(设备管理器 -> 设备属性 -> ... -> 更新驱动程序)如果您知道哪些设备已更新 MB CD 上的驱动程序。您可以检查 CD 上的 .inf 文件以查找受支持的文件,但这是一个痛苦的过程。

我通常会修改 DevicePath 注册表项并在创建 PC 映像以稍后进行克隆时使用驱动程序包(我在 IT 部门工作),其余的由 sysprep 负责。但是,当您想要安装与保存的高清图像不同的 PC(因此,您不使用 sysprep)时,此过程不适用。

我想做的是:

  1. windows安装好后,将驱动包解压到一个文件夹中。

  2. 修改设备路径

  3. 强制 Windows 更新到较新的驱动程序(_already_recognized_devices_ 是这里最重要的事情,无法识别的驱动程序没有痛苦)。

这是第三步,我不知道该怎么做。

windows drivers
  • 5 5 个回答
  • 6460 Views

5 个回答

  • Voted
  1. Best Answer
    Jack B Nimble
    2009-07-10T06:42:21+08:002009-07-10T06:42:21+08:00

    尝试使用Microsoft 实用程序DevCon。

    DevCon 实用程序是一个命令行实用程序,可替代设备管理器。使用 DevCon,您可以启用、禁用、重新启动、更新、删除和查询单个设备或设备组。

    只要您将驱动程序解压缩到默认搜索路径中,您就可以调用重新扫描来捕获所有最初未安装的设备。

    • 2
  2. Rich Webby
    2016-02-10T09:21:22+08:002016-02-10T09:21:22+08:00

    您可以使用 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>
    

    您还可以使用 /C 标志在命令提示符下运行 DPInst.exe 以查看它在做什么。

    DPInstall 文档在这里:https://msdn.microsoft.com/...

    • 2
  3. John Rennie
    2009-07-10T06:34:28+08:002009-07-10T06:34:28+08:00

    没有通用的方法。如果您有戴尔,那么戴尔会提供一个驱动程序更新包,它将检查所有戴尔驱动程序并将它们更新到最新版本。通过输入服务器的标签号,您应该能够通过戴尔网站的驱动程序区域找到它。

    JR

    • 0
  4. MattB
    2009-07-10T06:50:48+08:002009-07-10T06:50:48+08:00

    有一些(非免费)程序声称可以为您执行此操作。我能想到的2个是:

    司机机器人

    司机侦探

    我没有使用它们中的任何一个,所以不能保证它们有多好。

    • 0
  5. Ace
    2022-06-27T15:43:04+08:002022-06-27T15:43:04+08:00

    直接从 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 }
    
    • 0

相关问题

  • 您最喜欢的云计算提供商是什么?[关闭]

  • Vanilla Powershell 是否足以成为 Windows 和 DB 服务器管理员的语言?

  • 为什么添加新驱动器后我的磁盘驱动器访问速度如此之慢?

  • 在 Windows Server 2003 下使用 wscipt 从 .asp 文件运行 .exe

  • 最佳混合环境(OS X + Windows)备份?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve