[Project] Driver Installer
#1
Posted 11 December 2007 - 11:53 PM
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.
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
Posted 12 December 2007 - 02:34 AM
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.
#3
Posted 12 December 2007 - 03:34 PM
PE Bootet into Ram and drivers installed from the CD on a per need basis. Ergo small PE with always the right drivers!
But we would have to get rid of the uncompressing of the whole pack.
#4
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
Posted 12 December 2007 - 04:07 PM
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.
#6
Posted 12 December 2007 - 04:24 PM
I'm not sure that I want to reinvent the wheel for the x'th time- or we could also contact wixfigura and ask if he's interested in going further into these requests if you wish.
My current GUI:
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
Posted 12 December 2007 - 04:26 PM
Peter your HostDriver is superior to this as long as an installed system exists.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
The driverpack solution is only good for machines that have no installed system.
#8
Posted 12 December 2007 - 04:38 PM
Peter, maybe if you tell us what the problem is, we can help!?I'm not sure that I want to reinvent the wheel for the x'th time
My current GUI:
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
Sometimes all that's required is a fresh pair of eyes.
#9
Posted 12 December 2007 - 05:11 PM
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..
-------
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..
#10
Posted 12 December 2007 - 06:06 PM
If i understood Peter right, he has a problem with the general design as some infs keep doing things they shouldn't.Count with me on the testing team for this project!
Let's open a new topic and begin discussing why it isn't working - as medEvil mentioned - the more people testing the better..
Nothing tha can be solved, just by testing.
#11
Posted 12 December 2007 - 09:38 PM
Fantastic! I hope you can get this functioning.As you see, also 'external' drivers can be selected.
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(@ComSpec & " /c Start devmgmt.msc"& " ","",@SW_HIDE) RunWait(@ComSpec & " /c START /WAIT RunDll32.exe Syssetup.dll,UpdatePnpDeviceDrivers"& " ","",@SW_HIDE)
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
Posted 03 January 2008 - 09:32 PM
@GalapoSmart 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.
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
#13
Posted 03 January 2008 - 10:10 PM
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
Posted 04 January 2008 - 12:05 AM
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 ) 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.Restoration of drivers backed up with the app can therefore currently only really be done from the booted OS.
Regards,
Galapo.
#15
Posted 04 January 2008 - 12:35 AM
Regards,
Galapo.
#16
Posted 04 January 2008 - 12:48 AM
Thanks Galapo! I'm gonna give it a try.Yes, that's right. Or generally right-click on the inf file and click 'install'.
Regards,
Galapo.
#17
Posted 04 January 2008 - 10:01 AM
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...Thanks Galapo! I'm gonna give it a try.
Have fun and thanks again to Nuno and Galapo!
#18
Posted 04 January 2008 - 10:29 AM
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
Posted 04 January 2008 - 01:09 PM
Galapo,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.
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
Posted 04 January 2008 - 01:41 PM
From WinPE, you can extract your drivers backup set to %TARGET_DRIVE%\Drivers and then run this script:
:// Load SOFTWARE Hive REG LOAD HKLM\C_SOFTWARE %TARGET_ROOT%\system32\config\SOFTWARE :// 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 ://Optional reg delete "HKEY_LOCAL_MACHINE\C_SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /va /f :// PnP during next GUI boot (like Sysprep mini setup) SET KEY=HKLM\C_SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx REG ADD %KEY% /V TITLE /D "PnP" /f REG ADD %KEY%\000 /VE /D "SetupCopyOEMInf" /f" REG ADD %KEY%\000 /V 1 /D "C:\Drivers\SetupCopyOEMInf.exe C:\Drivers" /f ://REG ADD %KEY%\001 /VE /D "UpdatePnpDeviceDrivers" /f" ://REG ADD %KEY%\001 /V 1 /D "RunDll32.exe Syssetup.dll,UpdatePnpDeviceDrivers" /f :// Unload Hive reg unload HKLM\C_SOFTWAREThe 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
Posted 04 January 2008 - 07:26 PM
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?"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.
I ask mainly because the the part of the code that I posted --
RunWait(@ComSpec & " /c Start devmgmt.msc"& " ","",@SW_HIDE) RunWait(@ComSpec & " /c START /WAIT RunDll32.exe Syssetup.dll,UpdatePnpDeviceDrivers"& " ","",@SW_HIDE)-- 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
Posted 05 January 2008 - 04:21 AM
#23
Posted 05 January 2008 - 04:43 AM
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
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
Posted 05 January 2008 - 06:37 AM
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