如何在Windows 10和8.1中导出(备份)和恢复设备驱动程序

时间:2020-01-09 10:46:38  来源:igfitidea点击:

在执行重新安装或者清理Windows安装后,用户需要为计算机上安装的设备安装实际的驱动程序版本。重新安装系统后,用户必须立即从供应商的网站手动下载驱动程序或者使用各种驱动程序包工具(使用这些工具可以安装不同的垃圾和AD软件)。不过,在Windows10和8.1中有一种更简单的方法来重新安装设备驱动程序。不是每个人都知道在重新安装Windows之前,你可以为系统上安装的所有驱动程序创建一个备份副本。有了这个备份,我们可以在Windows清理安装期间快速安装所有必需的驱动程序。

在本文中,我们将向我们展示创建Windows中安装的所有驱动程序的备份的基本方法,以及不使用第三方工具从备份中恢复驱动程序的方法。

使用Export-WindowsDriver Cmdlet导出驱动程序

在Windows 8.1 Update 1中,出现了一个新的Powershell cmdlet- Export-WindowsDriver,它允许直接从驱动程序存储导出所有已安装的第三方驱动程序(非Microsoft驱动程序)(Export-WindowsDriver cmdlet已在所有Windows 10版本中可用)。此cmdlet将大大简化并加快重新安装Windows的过程。以前,要创建系统中安装的驱动程序的备份副本,必须使用第三方应用程序(如DoubleDriver、DriverMax等)。

因此,要直接从当前Windows 10或者8.1镜像导出所有已安装的第三方驱动程序,请以管理员身份启动PowerShell控制台并运行以下命令:

Export-WindowsDriver –Online -Destination c:\export-drivers

说明驱动程序文件保存到目录c:\export drivers。必须提前创建。

如果需要从脱机安装的Windows镜像中导出驱动程序,例如,导出到文件夹c:\win\u image,则命令应如下所示:

Export-WindowsDriver -Path c:\win_image -Destination c:\export-drivers

运行cmdlet后,屏幕将显示有关不是操作系统一部分的所有导出驱动程序的信息。

运行PowerShell命令后,我们将获得一个目录,其中包含Windows中安装的所有驱动程序的备份副本。每个驱动程序和所有相关文件都存储在它们自己的目录中,这个目录由驱动程序的INF文件名调用。

每个目录包含安装驱动程序所需的所有文件(不仅是*.inf文件,还包括所有相关的*.sys、.dll、.exe和其他类型的文件)。Export-WindowsDriver cmdlet根据驱动程序inf文件的CopyFiles部分中指定的文件列表,生成安装驱动程序所需的文件列表。

要以方便的形式显示所有导出驱动程序的列表,并指明类、供应商和驱动程序版本,让我们使用以下两个命令导出驱动程序:

$BackupDrv = Export-WindowsDriver -Online -Destination c:\export-drivers

之后,让我们在表中显示结果:

$BackupDrv | Select-Object ClassName, ProviderName, Date, Version | Sort-Object ClassName

如我们所见,结果表显示了驱动程序类、制造商、版本和日期:

我们可以将有关导出驱动程序的信息保存到CSV文件中:

$BackupDrv| Select-Object ClassName, ProviderName, Date, Version |Export-Csv c:\ps\backup_drivers_list.txt

可以使用ClassName属性列出特定设备类的驱动程序。例如,要只列出打印机驱动程序,请运行以下命令:

$BackupDrv | where { $_.classname -like "printer" }

要显示特定供应商的驱动程序列表,请使用以下命令:

$BackupDrv | Where{ $_.ProviderName -Match "NVIDIA"}

如何使用DISM备份驱动程序

DISM实用程序还提供了备份驱动程序并将其导入Windows映像的功能。
要将所有驱动程序导出到C:\export drivers目录,请打开提升的命令提示符并运行命令:

dism /online /export-driver /destination:C:\export-drivers

导出24–oem0.inf中的1个:驱动程序包已成功导出

如您在示例中所示,DISM实用程序成功地将24个驱动程序导出到指定目录。

使用PNPUtil导出已安装的设备驱动程序

在所有版本的Windows中,从Windows 7开始,都有一个实用程序——CLI工具PNPUtil.exe,通常用于在Windows中添加或删除驱动程序(之前我们演示了如何从驱动程序存储中删除旧的和不必要的驱动程序以节省磁盘空间)。
打开提升的命令提示符并运行命令:

pnputil.exe /export-driver * c:\export-drivers

生成目录中的驱动程序可以使用PowerShell或DISM(如何将驱动程序滑向Windows映像)手动分发到其他系统,或者自动使用基于PNPUtil、DISM、PowerShell、MDT、SCCM等的脚本。

如何从备份还原设备驱动程序

重新安装Windows后,可以使用目录和设备驱动程序的备份副本,以便在干净的系统中安装。
您可以通过右键单击INF文件并选择“安装”菜单项来安装特定驱动程序。
您还可以通过设备管理器安装特定的设备驱动程序。

打开设备管理器控制台,选择要替换的驱动程序的设备,单击“更新驱动程序”->浏览我的计算机以获取驱动程序软件”。指定具有驱动程序备份的目录路径。要自动扫描所有子文件夹到相应的驱动程序,请选择“包括子文件夹”选项。
但是,有一种更简单的方法来安装备份中包含的所有驱动程序。要执行此操作,请使用以下PowerShell脚本:

$drvinffiles = Get-ChildItem -Path "C:\export-drivers\" -Filter "*.inf" -Recurse -File
foreach($drvinffile in $drvinffiles){
	$drvinffile.FullName
    pnputil.exe -i -a "$drvinffile.FullName"
}

这个PoSh脚本依次扫描指定目录中的所有文件夹,搜索所有inf文件,并使用PNPUtil实用程序在驱动程序存储中安装驱动程序。
您还可以使用DISM实用程序的Add Driver参数将备份目录中的所有驱动程序集成到Windows映像中:

DISM /online /Add-Driver /Driver:C:\export-drivers /Recurse

您可以向联机和脱机Windows映像添加驱动程序(请参阅如何将USB 3.0驱动程序注入Windows 7安装介质的示例)。
因此,在本文中,我们研究了在Windows中导出和导入驱动程序的不同方法。此外,您还讨论了Windows 10和Windows 8.1 Update 1中的新cmdlet Export-WindowsDriver,该cmdlet允许您将系统中安装的所有第三方驱动程序导出到单独的文件夹中。