DriverStoreExplorer icon indicating copy to clipboard operation
DriverStoreExplorer copied to clipboard

Request: Export selected drivers

Open Thdub opened this issue 6 years ago • 9 comments
trafficstars

Hello, using RAPR since long time now and I always wished to be able to export drivers (to a selected folder) from the application. Maybe I miss point exporting all drivers as a CSV list, but personally, I find this useless. Exporting drivers would be nicer imho.

I have to use powershell for that...Dism /online /export-driver /destination:"mypath"

Would be even better to be able to "export selected drivers" (and not export ALL like in export csv)

Thank you

ps: for reference, I grabbed the dism command from there: https://www.thewindowsclub.com/backup-restore-drivers-windows-10

Thdub avatar Nov 24 '18 22:11 Thdub

Then we could have file menu like this: Export CSV list Export selected driver(s)

in french: Exporter la liste (.csv) Exporter le(s) pilote(s) sélectionné(s)

Thdub avatar Nov 24 '18 23:11 Thdub

I thought about implement this feature a few month ago but never got chance to do it yet. There are 2 way to implement that:

  1. Newer Win 10 (probably RS1) pnputil support import/export driver. A relative small change to the tool can make use of that. However, we can't support older OS.
  2. Move to use Dism API. However, this is a significant change which I haven't found any time to do it yet.

lostindark avatar Nov 27 '18 04:11 lostindark

I use DISM++ (a lot) and it does this just fine. https://github.com/Chuyu-Team/Dism-Multi-language www.chuyu.me

Thdub avatar Nov 28 '18 00:11 Thdub

DISM++ didn't open source their entire software. Some library they use are open sourced. The link above only points to their localization files.

lostindark avatar Nov 28 '18 04:11 lostindark

Looked into this again. Dism API on Win 10 or newer allows export all third party drivers. Pnputil on Win 10 allows export all or selected third party drivers.

Unfortunately there is no public API that supports export selected drivers on all systems.

DISM++ is probably using a non-public API of Windows. I looked into it and found there is a driver store API. However, I ran into some interop issue with that API. Also, using a non-public API doesn't seem a good idea.

lostindark avatar Jul 30 '19 21:07 lostindark

Is there an alternative way to implement this feature?

JonnyTech avatar Sep 13 '19 14:09 JonnyTech

This Export feature would be definitely great and make rapr complete… +1 ATM I use Double Driver: http://www.boozet.org/dd.htm

Hexaae avatar Oct 08 '19 09:10 Hexaae

I added "Export All Drivers" functionality in latest release. Will work on "Export selected drivers".

lostindark avatar Sep 21 '20 06:09 lostindark

Thanks to the previous discussion for sharing the technique about exporting driver.

For your information, if pnputil's /export-driver feature is available on your system,

PS> pnputil
Microsoft PnP Utility
...
Commands:
...
  /export-driver <oem#.inf | *> <target directory>

    Export driver package(s) from the driver store into a target directory.

    Examples:
      Export driver package:
        pnputil /export-driver oem6.inf .
      Export all driver packages:
        pnputil /export-driver * c:\backup

then you can use

pnputil /export-driver oem{number}.inf C:\your\backup\dir-that-has-existed

to export/backup the driver you want.

Note that

  • the oem{number}.inf identifier (e.g oem6.inf) of the driver you want to export could be found by command
    pnputil /enum-drivers
    
  • and the target directory should be pre-created by youself otherwise error.

ynyyn avatar Jul 01 '23 12:07 ynyyn