a06lp

Drivers from CD: Simple Method

227 posts in this topic

[nevermind...]

Edited by a06lp
0

Share this post


Link to post
Share on other sites

couldnt we include support for 7zip archives?

0

Share this post


Link to post
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)

0

Share this post


Link to post
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

0

Share this post


Link to post
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
0

Share this post


Link to post
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.

0

Share this post


Link to post
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
0

Share this post


Link to post
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.

0

Share this post


Link to post
Share on other sites

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?

0

Share this post


Link to post
Share on other sites

Just thought I'd point something out...

The OTHER Drivers-from-CD method didn't work with RyanVM's Update Packs.

However, this method, as outlined in the first post, is tested, and WORKS, with v1.3.1 of his pack. Enjoy!

:thumbup:whistle:

0

Share this post


Link to post
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

0

Share this post


Link to post
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
0

Share this post


Link to post
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
0

Share this post


Link to post
Share on other sites

glad to hear it works. :)

one of the great things about the autoit aspect of this method is that its so customizable.

enjoy! :thumbup

0

Share this post


Link to post
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.