Jump to content

Drivers from CD: Simple Method


a06lp

Recommended Posts


actually, id much rather have it all contained in the autoit script...mainly because of the "RunWait" command...the problem with presetup.cmd is that windows setup DOES NOT pause when executing it, so you could potentially end up with only half the drivers extracted when windows hunts for drivers (at least I heard that was the biggest problem)

Link to comment
Share on other sites

actually, id much rather have it all contained in the autoit script...mainly because of the "RunWait" command...the problem with presetup.cmd is that windows setup DOES NOT pause when executing it, so you could potentially end up with only half the drivers extracted when windows hunts for drivers (at least I heard that was the biggest problem)

You can't let wait the Windows Setup with AutoIt. However you can force the Windows Setup to idle-mode for the time being.

Reason for me to use AutoIt is the ProcessClose function. When using nLite sometimes Taskkill would fail if you have removed lot's of components

Link to comment
Share on other sites

what do you mean by idle-mode? does that mean that if I inclue extracting the 7zip archive using Run.Wait it will idle at DetachedProgram?

Also, why the need to input the cd when using this method for any devices that were not connected during install...is it because of a registry setting? Im just asking if it is something we can change because I copy the driver directory from the cd to hard drive just for the purpose of not needing the cd again.

Edited by evilvoice
Link to comment
Share on other sites

Different write up for the script.

; Files To Use
$FILE_0 = "setup.exe"
$FILE_1 = "WatchDriverSigningPolicy.exe"
$FILE_2 = "SetupCopyOEMInf.exe "

$CD = DriveGetDrive( "CDROM" )

; Check Drives
For $I = 1 to $CD[0]
If FileExists( $CD[$I] & "\win51ip.SP2" ) Then $iDrive = $CD[$I] & "\$oem$\"
Next

; Setup = Idle
ProcessSetPriority ( $FILE_0 , 0 )

; Process Drivers
Run  ( $iDrive & $FILE_1 )
ProcessWait ( $FILE_1 )
RunWait  ( $iDrive & $FILE_2 & $iDrive & "Drivers" )
ProcessClose ( $FILE_1 )

; Setup = Normal
ProcessSetPriority ( $FILE_0 , 2 )

; Delete File
FileDelete ( @SystemDir & "\driver.au3" )

Not sure if the ProcessWait is really needed tho...then again haven't tested this method yet ether.

Link to comment
Share on other sites

If you want all drivers get installed from HDD you have only to modify the SetupCopyOEMInf.exe command line.

For example you want the Drivers to be located in \Windows\Drivers you can use this code:

driver.au3

$CD = DriveGetDrive("CDROM")
For $I=1 to Number($CD[0])
$pa = $CD[$I] & "\win51ip.SP2"
 If FileExists($pa) Then
    $instDrv=$CD[$I]
 Endif
Next
ProcessSetPriority ( "setup.exe", 0)
Run($instDrv & "\$oem$\WatchDriverSigningPolicy.exe")
ProcessWait("WatchDriverSigningPolicy.exe")
RunWait($instDrv &  "\$oem$\SetupCopyOEMInf.exe " & @WindowsDir & "\Drivers")
ProcessClose("WatchDriverSigningPolicy.exe")
ProcessSetPriority ( "setup.exe", 2)
FileDelete(@SystemDir & "\driver.au3")

Where in $oem$\$$\System32:

autoit3.exe
driver.au3

Following files in $oem$

SetupCopyOEMInf.exe
WatchDriverSigningPolicy.exe

And in $oem$\$$\drivers your driver files :)

Edited by hp38guser
Link to comment
Share on other sites

so why the need for a06lp's last note in the first post? I assumed it was something else, like a registry problem, or something, but if using setupcopyoeminf.exe on the windows\source\drivers dir will make it so windows does not prompt for the cd when installing NEW devices, then Ill use that method, just thought it was more in depth.

Link to comment
Share on other sites

  • 2 weeks later...

still havent tried it out yet, but i do think this should be stickied or merged...or something to keep it at the top...a bunch of people say this method works better than the previous version...so maybe the old should be replaced with the new?

Link to comment
Share on other sites

Does this method work for Windows 2000 Pro? I tried to follow instructions on the first page, change only one thing in Drivers.au3: win51ip.SP2 to cdrom_ip.5. But it didn't work for me.

In old method there is a possibility to compress drivers, place them on CD and then uncompress from CD to the system drive installing from there. Is it possible in new method? Sorry I'm not familiar with AutoIt.

Regards,

Oleg 2

Link to comment
Share on other sites

Great work, all of you :thumbup

Will now test if this works from USB drives as well, by means of the DriveGetDrive("ALL") instruction.

Also, Bashrat, why don't you make this one a sticky and "un-sticky" the "Unlimited number of drivers + keeping the drivers." thread since that one is outdated.

Edited by Afterdawn
Link to comment
Share on other sites

Yes yes it works like a charm! Now I've got all my applications / hotfixes, tweaks ánd all my drivers on my 2GB USB flashdrive! :D Only when a new Service Pack is released I will need to update my CD!

Thanks to all of you!

Here is my modified auto-it script file btw:

$array = DriveGetDrive("ALL")
For $item=1 to Number($array[0])
 $srcPath = $array[$item] & "\drivers"
 If FileExists($srcPath) Then
    ProcessSetPriority("setup.exe", 0)
    Run($srcPath & "\WatchDriverSigningPolicy.exe")
    ProcessWait("WatchDriverSigningPolicy.exe")
    RunWait($srcPath & "\SetupCopyOEMInf.exe " & $srcPath)
    ProcessClose("WatchDriverSigningPolicy.exe")
    ProcessSetPriority("setup.exe", 2)
 Endif
Next
FileDelete(@WindowsDir & "\t39.au3")

Note that there are a few things different here:

- All used drive letters will be searched for a directory called \drivers

- It assumes that WatchDriverSigningPolicy.exe and SetupCopyOEMInf.exe are in this directory

- These two files are not deleted, only the auto-it script file (which in my case is called t39.au3 in the Windows directory)

One more thing: When you're installing Windows XP and you are at the partitioning part of the Setup (the only part which isn't unattended in my case), you should be able to see your flashdrive already. This way you can check whether it shall be accessible at the t-39 minute stage. The used filesystem (FAT or NTFS) isn't of any importance.

Edited by Afterdawn
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...