Skip to content
View in the app

A better way to browse. Learn more.

MSFN

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Drivers from CD: Simple Method

Featured Replies

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


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?

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

Please PM him to bring it to his attention.

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

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

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

Rewritten the program. It's now even easier!

Thanks for info idle.newbie  :hello:

Thanks for this new version. I appreciate the idea not having to hardcoding path (fixed or cdrom disk) like previous scripts.

and thanks for idle.newbie, the writer of Snippet for OemPnPDriversPath, setDevicePath clone

he has a good knowledge of batch scripts. Unfortunately, it is no longer active on this board. :}

  • Author
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

$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 :)

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

$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

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.