Jump to content

Recommended Posts

Posted (edited)
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)

Thanks for your own version of the script. It's more versatile to search for drivers in a directory in ALL used drive letters rather than specifing CDROM or FIXED.

Edited by Bilou_Gateux

Posted

I'm having a problem where SetupCopyOEMInf.exe does not finish running before Setup starts driver detection. It gets about halfway through and then detection kicks in during integration. It still finishes, but I don't know if I'm losing a few drivers or not. Is there something I can do about this?

Posted

Ive actually thought about this (may be why I havent tested it out yet) but I was looking into 7zipping all the files and extracting them and running the commands, but the problem would be if setup starts before it finishes.

  • 2 weeks later...
Posted

I tried this method for a BroadCom 57xx network interface card and it failed. Although it did try to install it evidenced by the yellowed out Ethernet Controller unter network device in the device manager -- that it would not do before. It is the Dell download R87461.exe where I got the driver. What else can I do to get this NIC installed ? Is it a new Microsoft driver signing issue or what ? Thanks.

Bob.Rein@FAA.GOV

Posted
It is the Dell download R87461.exe where I got the driver.

Did you extract the files form the download? this method looks for the INF file...

Posted (edited)

Rewritten the program. It's now even easier!

run autoit3.exe and presetup.au3 from cd (no need for copying to system32 folder anymore):

i386\WinNT.sif

[GuiUnattended]
DetachedProgram = ".\system32\cmd.exe"
Arguments="/Q /C FOR /F %I IN (%SystemRoot%\SYSTEM32\$WINNT$.INF) DO (FOR %J IN (%I$OEM$) DO (IF EXIST %J (start /min /D%J Autoit3.exe presetup.au3)))"

$OEM$\:

autoit3.exe
presetup.au3
SetupCopyOEMInf.exe
WatchDriverSigningPolicy.exe

$OEM$\presetup.au3

ProcessSetPriority("setup.exe",0)
Run(@ScriptDir & "\WatchDriverSigningPolicy.exe")
ProcessWait("WatchDriverSigningPolicy.exe")
RunWait(@ScriptDir & "\SetupCopyOEMInf.exe Drivers")
ProcessClose("WatchDriverSigningPolicy.exe")
ProcessSetPriority("setup.exe",2)

CD-Layout:

├───$OEM$

│      └───Drivers

│               ├───C-Media CMI8738 6.39

│               └───Laptop

│               │     ├───Infared 12.6

│               │     └───Touchpad

│               ├───Medion SAA7134 2.3.1.0

│               ├───Monitor

│               │     └───AL712

│               ├───nVidia ForceWare 77.72

│               └───Samsung ML-1210

│        AutoIt3.exe

│        PreSetup.au3

│        SetupCopyOEMInf.exe

│        WatchDriverSigningPolicy.exe           

└───I386

          winnt.sif

Thanks for info idle.newbie :hello:

Edited by hp38guser
Posted (edited)
Rewritten the program. It's now even easier....(no need for copying to system32 folder anymore)

Ok, I am going to test this on my next U-DVD.

A small explanation of the code:

[GuiUnattended]

DetachedProgram = ".\system32\cmd.exe"

Arguments="/Q /C FOR /F %I IN (%SystemRoot%\SYSTEM32\$WINNT$.INF) DO (FOR %J IN (%I$OEM$) DO (IF EXIST %J (%J\Autoit3.exe %J\presetup.au3)))"

CMD = Starts a new instance of the Windows XP command interpreter

/Q = Turns echo off

/C = Carries out the command specified by string and then terminates

FOR = Runs a specified command for each file in a set of files.

/F = Filenameset - Each file is opened, read and processed before going on to the next file in filenameset.

%I = First Variable name

IN (%SystemRoot%\SYSTEM32\$WINNT$.INF) = location to search (aka - "set")

DO = Specifies the command to carry out for each file.

FOR = Runs a specified command for each file in a set of files.

%J = Second Variable name

IN (%I$OEM$) = location to search (aka - "set")

DO = Specifies the command to carry out for each file.

(IF EXIST %J = Specifies a true condition if the specified filename exists.

(%J\Autoit3.exe %J\presetup.au3))) = run presetup.au3 using autoit3.exe

Edited by a06lp
Posted

$WinNT.sif$ is used to scan for the dospath=?:\ in the [Data] section. However since no quotes can be used in the Arguments section we have to scan the whole file. Pretty much information you got there :)

Posted (edited)

Installing Windows from a flat installation D:\source

Running WINNT32.EXE /s:d:\source\i386 /unattend:D:\source\unattend.txt /syspart:c: /makelocalsource and using only digitally signed drivers from OEMs, i have changed my unattended response file UNATTEND.TXT section:

[GuiUnattended]DetachedProgram = ".\system32\cmd.exe"

Arguments="/Q /C FOR /F %I IN (%SystemRoot%\SYSTEM32\$WINNT$.INF) DO (FOR %J IN (%I\$OEM$) DO (IF EXIST %J ((%J\hidcon.exe %J\CopyInfs.exe %J\PnPDrvrs)))"

%SystemDrive% after reboot (end of txtmode stage of the setup) and before start of the GUI stage of install (T39)

C:\

├---$WIN_NT$.~LS

│    ├───CopyInfs.exe Pyron's SetupCopyOEMInf.exe 21 Kb renamed to 8.3 naming convention

│    ├───HidCon.exe Hide Console tool HidCon.exe 2 Kb

│    ├───$OEM$

│            └───PnPDrvrs OEM Drivers folder

├---$WIN_NT$.~BT

│    ├───winnt.sif

│    ├───$OEM$

│    └───SYSTEM32

├---WINDOWS

│    ├───SYSTEM32

│    └───$winnt$.inf

├BOOT.INI

├NTDETECT.COM

└ntldr

$WINNT$.INF

dospath=C:\$WIN_NT$.~LS

%I=C:\$WIN_NT$.~LS

%J=C:\$WIN_NT$.~LS\$OEM$

DOS command run at T39=C:\$WIN_NT$.~LS\$OEM$\HidCon.exe C:\$WIN_NT$.~LS\$OEM$\CopyInfs.exe C:\$WIN_NT$.~LS\$OEM$\PnPDrvrs

Note:

My modified WINNT.SIF command don't work for a CD based installation.

dospath value in $WINNT$.INF returns a local HDD path for my install method and returns an install CD path for a CD based installation.

My method don't use AutoIT script but all drivers are copied from source $OEM$\PnPDrvrs to %SystemDrive%\$WIN_NT$.~LS\$OEM$ during install

Edited by Bilou_Gateux
Posted
$WinNT.sif$ is used to scan for the dospath=?:\ in the [Data] section. However since no quotes can be used in the Arguments section we have to scan the whole file. Pretty much information you got there :)

Soo, should i add a dospath=<cd-drive>:\ in [Data]?

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...