Jump to content











Photo
- - - - -

[Project] Driver Installer


  • Please log in to reply
86 replies to this topic

#1 Brito

Brito

    Platinum Member

  • .script developer
  • 10616 posts
  • Location:boot.wim
  • Interests:I'm just a quiet simple person with a very quiet simple life living one day at a time..
  •  
    European Union

Posted 11 December 2007 - 11:53 PM

This project has just been posted by wixfigura on MSFN but I thought it might be interesting for some of the projects going around here.

http://www.msfn.org/...er-t109019.html

------------------------------------------

Maybe you know the problem: you have a PC with a missing driver and you dont like to search the net for the right one. So - thats the solution.

Made a little frontend for SPDrvScn from Vernalex to install the Driverpacks from Driverpacks.net AFTER setup is done.

Posted Image

Either you need a modified Windows-CD with "method2" integrated driverpacks or, every medium you like, (USB, CD, Flash, HDD...), just the OEM folder in the root is needed. So you can create maybe a standalone driver-CD.
Put driver.exe everywhere you like on your CD/DVD. It will search the OEM folder in the CDs root (where the 7zipped drivers are in) and let you choose which kinda pack you want to decompress and install.
Then serarches which inf driver is needed and installs it.
If you have your own drivers integrated (3rd-party) the 7zip has to begin with "DP3...". Maybe "DP3rd.7z".

This is the english version :Download Driver.exe

This is the german version:Download Treiber.exe

One thing: If you want to create a standalone, the packs you´ve downoladed from Driverpacks.net has to be renamed like driverpackBASE did it, if you use integration method2. if you do not, they are not recognized.

It is written in Autoit. For those who want to modify it and make it better, this is the au3 source. 7zip, SPDrvScn and DriverSigningPolicyDisabler are integrated.

Download au3 Source

#2 thunn

thunn

    Silver Member

  • .script developer
  • 531 posts
  • Location:Brooklyn, New York
  • Interests:computers<br />mechanics<br />distortion<br /><br />
  •  
    United States

Posted 12 December 2007 - 02:34 AM

My new HP laptop is about to run a reduced Vista setup in a moment which I know will be missing a few drivers.
I pushed a full backup image down to a usb hdd and for good messure I ran a driver backup tool, Just wanted to thank you for this additional backup, plan C. :cheers: :cheers:

#3 MedEvil

MedEvil

    Platinum Member

  • .script developer
  • 7771 posts

Posted 12 December 2007 - 03:34 PM

The uncompress part makes me a little uneasy, but besides that it sounds like a good way to have small but universal PE.
PE Bootet into Ram and drivers installed from the CD on a per need basis. Ergo small PE with always the right drivers! :cheers:
But we would have to get rid of the uncompressing of the whole pack.

:cheers:

#4 pscEx

pscEx

    Platinum Member

  • Team Reboot
  • 12707 posts
  • Location:Korschenbroich, Germany
  • Interests:What somebody else cannot do.
  •  
    European Union

Posted 12 December 2007 - 03:51 PM

This project has just been posted by wixfigura on MSFN but I thought it might be interesting for some of the projects going around here.
Maybe you know the problem: you have a PC with a missing driver and you dont like to search the net for the right one. So - thats the solution.
...


Does that mean that I should send my current 'hostDriver' to the 'recycle bin'?

I seriously do not want to publish 'hostDriver' right now, because there still are too many items the program does not solve yet.

(I do not understand how an autoit program handles all of them)

Peter

#5 Brito

Brito

    Platinum Member

  • .script developer
  • 10616 posts
  • Location:boot.wim
  • Interests:I'm just a quiet simple person with a very quiet simple life living one day at a time..
  •  
    European Union

Posted 12 December 2007 - 04:07 PM

The only advantage I see from this tool is using it on a laptop with missing drivers and grab them from a CD source that was customized with driverpacks.

Your hostDriver project if I recall - would move the currently working drivers on the host machine onto the removable media.

Some drivers are not included by default on driverpacks - webcams, modems and biometric devices are usually neglected but already come installed on many laptops (for example) and are later needed.

This is something that Driver Installer isn't doing - or we could also contact wixfigura and ask if he's interested in going further into these requests if you wish.

:cheers:

#6 pscEx

pscEx

    Platinum Member

  • Team Reboot
  • 12707 posts
  • Location:Korschenbroich, Germany
  • Interests:What somebody else cannot do.
  •  
    European Union

Posted 12 December 2007 - 04:24 PM

- or we could also contact wixfigura and ask if he's interested in going further into these requests if you wish.

I'm not sure that I want to reinvent the wheel for the x'th time
My current GUI:
hostdriver.gif
As you see, also 'external' drivers can be selected.

But not all of them are currently installed correctly by hostDriver
(And I doubt that the autiIt progam can)

Peter

#7 MedEvil

MedEvil

    Platinum Member

  • .script developer
  • 7771 posts

Posted 12 December 2007 - 04:26 PM

Does that mean that I should send my current 'hostDriver' to the 'recycle bin'?

I seriously do not want to publish 'hostDriver' right now, because there still are too many items the program does not solve yet.

(I do not understand how an autoit program handles all of them)

Peter

Peter your HostDriver is superior to this as long as an installed system exists.
The driverpack solution is only good for machines that have no installed system.

:cheers:

#8 MedEvil

MedEvil

    Platinum Member

  • .script developer
  • 7771 posts

Posted 12 December 2007 - 04:38 PM

I'm not sure that I want to reinvent the wheel for the x'th time
My current GUI:
hostdriver.gif
As you see, also 'external' drivers can be selected.

But not all of them are currently installed correctly by hostDriver
(And I doubt that the autiIt progam can)

Peter

Peter, maybe if you tell us what the problem is, we can help!?
Sometimes all that's required is a fresh pair of eyes.

:cheers:

#9 Brito

Brito

    Platinum Member

  • .script developer
  • 10616 posts
  • Location:boot.wim
  • Interests:I'm just a quiet simple person with a very quiet simple life living one day at a time..
  •  
    European Union

Posted 12 December 2007 - 05:11 PM

Count with me on the testing team for this project! :cheers:

There's likely no better Windows source to use as test lab than a Portuguese version that is bound to uncover all unimaginable bugs and severe calamity situations.. :cheers:

-------

btw: Your app is designed having in mind the PE XP world where the mentioned tool on this topic is used on regular windows post install situations.

Can you make it run in automated mode? (adding network drivers from the host machine for example)

Let's open a new topic and begin discussing why it isn't working - as medEvil mentioned - the more people testing the better..

:cheers:

#10 MedEvil

MedEvil

    Platinum Member

  • .script developer
  • 7771 posts

Posted 12 December 2007 - 06:06 PM

Count with me on the testing team for this project! :cheers:

Let's open a new topic and begin discussing why it isn't working - as medEvil mentioned - the more people testing the better..

If i understood Peter right, he has a problem with the general design as some infs keep doing things they shouldn't.
Nothing tha can be solved, just by testing.

:cheers:

#11 Galapo

Galapo

    Platinum Member

  • .script developer
  • 3841 posts
  •  
    Australia

Posted 12 December 2007 - 09:38 PM

As you see, also 'external' drivers can be selected.

Fantastic! I hope you can get this functioning.

Regarding the program of this thread, it calls devmgmt.msc and RunDll32.exe to install the drivers from the paths added to 'HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DevicePath' by SPDrvScn:
RunWait&#40;@ComSpec & &#34; /c Start devmgmt.msc&#34;& &#34; &#34;,&#34;&#34;,@SW_HIDE&#41;

RunWait&#40;@ComSpec & &#34; /c START /WAIT RunDll32.exe Syssetup.dll,UpdatePnpDeviceDrivers&#34;& &#34; &#34;,&#34;&#34;,@SW_HIDE&#41;

I have not tested with this actually works from PE.

Smart Driver Backup is able to "backup" drivers from the local system, either from a gui version or commandline. This might help in testing the gathering of driver files of hostDriver from the local system.

http://www.911cd.net...o...st&p=138089

Regards,
Galapo.

#12 amalux

amalux

    Platinum Member

  • Tutorial Writer
  • 2813 posts
  •  
    United States

Posted 03 January 2008 - 09:32 PM

Smart Driver Backup is able to "backup" drivers from the local system, either from a gui version or commandline. This might help in testing the gathering of driver files of hostDriver from the local system.

http://www.911cd.net...o...st&p=138089

Regards,
Galapo.

@Galapo

This is an interesting tool but I can't figure out how to restore the saved drivers (what's the point of backing up if you can't restore?). The driver data seems incomplete but the only way to know would be a test restoration. If this worked for restoring drivers to an earlier backup from an image or clean install, that would be pretty sweet (but something tells me it's not so easy). I know your just suggesting this tool from another forum but you seem savvy about it and you're here, so you get the question :cheers:

#13 Galapo

Galapo

    Platinum Member

  • .script developer
  • 3841 posts
  •  
    Australia

Posted 03 January 2008 - 10:10 PM

Hi amalux,

I wish it had a restore option, too! That actually the hard bit -- getting drivers installed into a system from PE. Options that work under a normal system seem to fail from PE, probably due to missing components or registry settings.

Restoration of drivers backed up with the app can therefore currently only really be done from the booted OS.

Regards,
Galapo.

#14 amalux

amalux

    Platinum Member

  • Tutorial Writer
  • 2813 posts
  •  
    United States

Posted 04 January 2008 - 12:05 AM

Restoration of drivers backed up with the app can therefore currently only really be done from the booted OS.

Regards,
Galapo.

Thanks Galapo, just so we're clear; there is no 'automatic' driver restore option from within the app's ui. You have to re-install each driver manually using 'rundll32.exe advpack.dll...', right? or, maybe (haven't tested) another app like DriverForge (to try and bring the discussion back on topic :cheers: ) My feeling is that this will probably not work for 'complicated' hardware like printers, video and audio cards, etc. but I would like to test once I know the preferred method of restoration.

#15 Galapo

Galapo

    Platinum Member

  • .script developer
  • 3841 posts
  •  
    Australia

Posted 04 January 2008 - 12:35 AM

Yes, that's right. Or generally right-click on the inf file and click 'install'.

Regards,
Galapo.

#16 amalux

amalux

    Platinum Member

  • Tutorial Writer
  • 2813 posts
  •  
    United States

Posted 04 January 2008 - 12:48 AM

Yes, that's right. Or generally right-click on the inf file and click 'install'.

Regards,
Galapo.

Thanks Galapo! I'm gonna give it a try. :cheers:

#17 amalux

amalux

    Platinum Member

  • Tutorial Writer
  • 2813 posts
  •  
    United States

Posted 04 January 2008 - 10:01 AM

Thanks Galapo! I'm gonna give it a try. :cheers:

Gave it a try and I love it! SmartDriverBackup is, by far, the best and fastest driver backup tool I've seen and it's free! DriverForge is the perfect companion tool for restoring new or backed up drivers. As a test, I was able to backup all my 3rd party drivers; compress them and add them to my DriverPacks CD, all from in PE and then restore the selected drivers to the system folder. These tools would have saved me many hours of wasted time on a job I had just this last weekend; I won't be without them again! Here's some pics and the scripts if anyone's interested...



Have fun and thanks again to Nuno and Galapo! :cheers:

#18 Galapo

Galapo

    Platinum Member

  • .script developer
  • 3841 posts
  •  
    Australia

Posted 04 January 2008 - 10:29 AM

Hi amalux,

Good to hear of your success!

I'm curious as to whether you ran DriverForge from PE? If from PE, what is stopping the app from installing to the PE system and not to the non-booted windows system?

Thanks,
Galapo.

#19 amalux

amalux

    Platinum Member

  • Tutorial Writer
  • 2813 posts
  •  
    United States

Posted 04 January 2008 - 01:09 PM

Hi amalux,

Good to hear of your success!

I'm curious as to whether you ran DriverForge from PE? If from PE, what is stopping the app from installing to the PE system and not to the non-booted windows system?

Thanks,
Galapo.

Galapo,

Yes, everything was run from PE (RAM-Boot) with no limitations that I could find. I was able to restore drivers (from compressed or uncompressed, HDD and CD sources) to the host OS which I had manually uninstalled prior without any problem (not a real test though).

"what is stopping the app from installing to the PE system and not to the non-booted windows system?" I read this several times and I'm not sure what you mean. What are you trying to do, install drivers to the PE system files? Sort of like what hostNIC (or hostDriver) does? Yes, I think that's what you must mean and it sounds intriguing; I will try it and let you know! - I'm also planning to see if restoring drivers to a fresh installed OS works, now that would be impressive!

#20 bilou_gateux

bilou_gateux

    Frequent Member

  • Expert
  • 230 posts
  •  
    France

Posted 04 January 2008 - 01:41 PM

AFAIK, you cannot install drivers from WinPE to %TARGET_ROOT%

From WinPE, you can extract your drivers backup set to %TARGET_DRIVE%\Drivers and then run this script:

&#58;// Load SOFTWARE Hive

REG LOAD HKLM\C_SOFTWARE %TARGET_ROOT%\system32\config\SOFTWARE



&#58;// DriverSearching

REG ADD HKLM\C_SOFTWARE\Policies\Microsoft\Windows\DriverSearching /v DontSearchWindowsUpdate /t REG_DWORD /d 1 /f

REG ADD HKLM\C_SOFTWARE\Policies\Microsoft\Windows\DriverSearching /v DontPromptForWindowsUpdate /t REG_DWORD /d 1 /f

REG ADD HKLM\C_SOFTWARE\Policies\Microsoft\Windows\DriverSearching /v DontSearchCD /t REG_DWORD /d 1 /f

REG ADD HKLM\C_SOFTWARE\Policies\Microsoft\Windows\DriverSearching /v DontSearchFloppies /t REG_DWORD /d 1 /f



&#58;//Optional

reg delete &#34;HKEY_LOCAL_MACHINE\C_SOFTWARE\Microsoft\Windows\CurrentVersion\Run&#34; /va /f



&#58;// PnP during next GUI boot &#40;like Sysprep mini setup&#41;

SET KEY=HKLM\C_SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx



REG ADD %KEY% /V TITLE /D &#34;PnP&#34; /f



REG ADD %KEY%&#92;&#48;00 /VE /D &#34;SetupCopyOEMInf&#34; /f&#34;

REG ADD %KEY%&#92;&#48;00 /V 1 /D &#34;C&#58;\Drivers\SetupCopyOEMInf.exe C&#58;\Drivers&#34; /f



&#58;//REG ADD %KEY%&#92;&#48;01 /VE /D &#34;UpdatePnpDeviceDrivers&#34; /f&#34;

&#58;//REG ADD %KEY%&#92;&#48;01 /V 1 /D &#34;RunDll32.exe Syssetup.dll,UpdatePnpDeviceDrivers&#34; /f



&#58;// Unload Hive

reg unload HKLM\C_SOFTWARE
The script i use is more complex/bugged so i have kept only the core of it.

tools required:
Paraglider SetTargetRoot
Pyron SetupCopyOEMInf

SetupCopyOEMInf

The SetupCopyOEMInf function copies a specified .inf file to the %windir%/Inf directory.

Remarks
The SetupCopyOEMInf function copies a specified .inf file into the %windir%\Inf directory. SetupCopyOEMInf does not recopy the file if it finds that a binary image of the specified .inf file already exists in the Inf directory with the same name or a name of the form OEM*.inf. When SetupCopyOEMInf copies a file, it renames the copied file to OEM*.inf. Name provided is unique and cannot be predicted.

SetupCopyOEMInf uses the following procedure to determine if the .inf file already exists in the Inf directory:

All .inf files with names of the form OEM*.inf are enumerated and any files that have the same file size as the specified .inf file are binary compared.

The Inf directory is searched for the source filename of the .inf file. If an .inf file of the same name exists and is the same size as that of the specified .inf file, the two files are binary compared to determine if they are identical.

If the specified .inf file already exists a further check is performed to determine if the specified .inf file contains a CatalogFile= entry in its [Version] section. If it does, the .inf files's %windir%\Inf primary filename with a ".cat" extension is used to determine if the catalog is already installed. If there is a catalog installed, but it is not the same as the catalog associated with the source .inf, this is not considered to be a match and enumerations continue. It is possible to have multiple identical .inf files with unique catalogs contained in %windir%\Inf directory. If an existing match is not found, the .inf and .cat files are installed under a new and unique name.

OEM .inf files that do not specify a CatalogFile= entry are considered invalid with respect to digital signature verification.

In cases where the .inf file must be copied to the %windir%\Inf directory, any digital signature verification failures are reported.

If the .inf and .cat files already exist, these existing filenames are used and the file replacement behavior is based on the specified CopyStyle flags. Replacement behavior refers only to the source media information stored in the .pnf. Existing .inf, .pnf, and .cat files are not modified.


For Mass Storage Devices, you must use another method:
MSDInst.exe
Galapo OfflineSysPrep
cdob Fix_hdc_plugin

#21 Galapo

Galapo

    Platinum Member

  • .script developer
  • 3841 posts
  •  
    Australia

Posted 04 January 2008 - 07:26 PM

"what is stopping the app from installing to the PE system and not to the non-booted windows system?" I read this several times and I'm not sure what you mean.

Sorry, I should have rephrased my question positively: What allows the program to install the drivers to the non-booted windows system and not to the PE?

I ask mainly because the the part of the code that I posted --
RunWait&#40;@ComSpec & &#34; /c Start devmgmt.msc&#34;& &#34; &#34;,&#34;&#34;,@SW_HIDE&#41;

RunWait&#40;@ComSpec & &#34; /c START /WAIT RunDll32.exe Syssetup.dll,UpdatePnpDeviceDrivers&#34;& &#34; &#34;,&#34;&#34;,@SW_HIDE&#41;
-- would suggest that the drivers are installed to the PE system. Mass storage drivers are a little more tricky as information has to be entered into CriticalDeviceDatabase and I'm not sure that it could do this. As bilou_gateux posted, there are a few apps that can do this from PE, MS's own MSDInst.exe, which since I am not tied to an OEM I am unable to obtain or test. So basically, I wrote my OfflineSysPrep as a free alternative to it and Acronis's UniversalRestore.

However, bilou_gateux script, I can see how it works.

@bilou_gateux
Thank you for posting the snippet here. That is very helpful, and I may add a feature to OfflineSysPrep to perform those actions in the instance where a user doesn't want to run sysprep.exe itself but wants OfflineSysPrep to use its own internal sysprepping operations.

Thanks!

Galapo.

#22 amalux

amalux

    Platinum Member

  • Tutorial Writer
  • 2813 posts
  •  
    United States

Posted 05 January 2008 - 04:21 AM

Well, I've done a bit more testing with pretty dismal results :cheers: . My hope was to find a way to backup, critical drivers from a failing system prior to a fresh OS install and then restore those drivers back without too much trouble (preferably from a PE environment). I can't tell you how often it happens that the owner/client doesn't have the re-installation disk(s) that came with the PC (or have the wrong ones) or the backup files are supposed to be on the HDD but have been corrupted or lost. Tracking down the correct drivers is often very time consuming or even impossible. Just knowing the vendor and device info, often, isn't enough and trying to get correct drivers from the manufacturer? You're better off with Google. So I setup the following test; restore (re-install) drivers that I backed up from a simple XP SP2 install in which I had setup, minimal, driver-only, installations for a hp D7160 printer and a Creative Audigy sound card (the two targets for this test). Problem: After 'restoring' the backed up drivers, I don't end up with the same configuration I had when I backed them up! In the case of the printer, I eventually got all the drivers reinstalled from the five different directories created by DriverForge (can't this be consolidated to one location?) and though the setup kept asking for 'mmdriver.inf', it rejected the one I pointed to in the system folder, asking again and again for the 'installation disk'. Finally, installation finishes and no errors or flags but certain files and functions, like hpqtbx, which allows you to run diagnostics, check ink levels and printer status etc. from the PC are unavailable because they were installed to a local program folder by the original 'drivers-only' installer. So the printer functionality is crippled and it's worse for the sound card which, even though at the time the drivers were backed up, had the latest WDM drivers (required for most modern audio applications, like Sonar, etc) now only have the old, buggy VXD drivers which I never installed in the first place! These old drivers aren't even supported by XP and the option to install them from ctzapxx is grayed out, so I don't know how they were even backed up. Anyway, I'm getting frustrated with the process now and I'm going to hold off on further testing of the PE environs (for now). I knew it wouldn't be as simple as Backup, Restore and go but I at least hoped I could back up the right drivers. As for what was being installed from PE in the initial tests? I'm now certain the restore was incomplete, at best, relying on files and registry keys not removed (as usual) during the 'un-install' process; I knew that at the time which is why restoring the drivers to a clean install was an important first step. Anyway, that's it for now, any more ideas or suggestions are welcome, maybe I'm just tired but I don't see the point of trying to do something from PE that doesn't even work from Windows (for me, anyway). Thanks again to Galapo, bilou_gateux, Nuno et al. for the great suggestions and information! :cheers:

#23 Galapo

Galapo

    Platinum Member

  • .script developer
  • 3841 posts
  •  
    Australia

Posted 05 January 2008 - 04:43 AM

Hi amalux,

Just a few quick questions: did you restore the drivers from PE, or did you also test attempting to restore them from Windows itself? If from Windows, do you try the few different methods available?

If you did attempt restore options from windows itself, it may be that SmartDriverBackup does not completely backup complex drivers like some sound drivers etc.

Thanks,
Galapo.

#24 phox

phox

    Silver Member

  • .script developer
  • 764 posts

Posted 05 January 2008 - 06:10 AM

Anyway, that's it for now, any more ideas or suggestions are welcome, maybe I'm just tired but I don't see the point of trying to do something from PE that doesn't even work from Windows (for me, anyway).


I have tested DoubleDriver, DriverMax, SmartDriverBackup and DriverForge,
but not a single one of them is able to back up and restore drivers correctly.

Up to now I did not found acceptable solution for the task.

Any additional ideas?!

#25 Galapo

Galapo

    Platinum Member

  • .script developer
  • 3841 posts
  •  
    Australia

Posted 05 January 2008 - 06:37 AM

Hi phox,

Did any of them backup correctly? That would be the first step.

Thanks,
Galapo.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users