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.

Snippet for OemPnPDriversPath, setDevicePath clone

Featured Replies

OemPnPDriversPath.cmd

@ECHO OFF
IF "%1"=="" GOTO EOF
IF NOT EXIST %1 GOTO EOF
IF "%2"=="" GOTO EOF
IF NOT EXIST %2 GOTO EOF

SETLOCAL ENABLEDELAYEDEXPANSION
SET OemPnPDriversPath=$
SET STDOUT=WINNT.SIF
TYPE>%STDOUT% 2>NUL

::traverse drivers path
CALL :TRAVERSAL %1
ECHO %OemPnPDriversPath:~2%
::recreate winnt.sif
CALL :RECREATE %2 %STDOUT% Unattended OemPnPDriversPath "%OemPnPDriversPath:~2%"

GOTO EOF

:TRAVERSAL
PUSHD %1
IF EXIST *.INF SET OemPnPDriversPath=!OemPnPDriversPath!;%CD:~3%
FOR /F %%I IN ('DIR /AD /OGN /B') DO (
 CALL :TRAVERSAL %CD%\%%I
)
POPD
GOTO EOF

:RECREATE
::%1=Source, %2=Destination, %3=Section, %4=Key, %5=Value
SET SECTION=NO
SET KEY=NO
FOR /F "usebackq tokens=1,2*" %%I IN ("%1") DO (
 IF "%%J"=="=" (
   IF /I "%%I"=="%4" (
     ECHO   %4 = %5>>%2
     SET UPDATED=YES
   ) ELSE (
     ECHO   %%I %%J %%K>>%2
   )
 ) ELSE (
   IF /I "%%I"=="[%3]" (
     SET SECTION=YES
   ) ELSE (
     IF NOT "%SECTION%"=="NO" (
       IF "%KEY%"=="NO" (
         ECHO   %4 = %5>>%2
         SET KEY=YES
       )
       SET KEY=NO
     )
   )
   ECHO.>>%2
   ECHO %%I>>%2
 )
)
GOTO EOF

:EOF

It's a Pyron's SetDevicePath.exe clone in .cmd batch scripting, a modified version of my Detached.cmd. It scans every directories under where you specified, looking for *.inf, and write corresponding OemPnPDriverPath entry into WINNT.SIF.

It needs two arguments, #1 full-path to your drivers' directory, #2 your WINNT.SIF.

1.copy/extract every drivers to where it should be. eg:

XCOPY "C:\UWCD root\$OEM$\$1\Drivers" C:\Drivers
or
7za x Drivers_MassStorage.7z -y -oC:\

2.run the script.

OemPnPDriversPath.cmd C:\Drivers "C:\UWCD root\i386\WINNT.SIF"

note:

1.pretty your WINNT.SIF, make sure every "=" between key/value pair has space before/after it. eg:

OemPreinstall = Yes

You can do this with RegExp capable text editor like EmEditor, replace all "^(\s*;?\s*\w+)\s*=\s*" with "\1 = ".

2.do not run this .cmd inside i386, or your WINNT.SIF will be empty, 'cause output WINNT.SIF is on current directory.


great ! nice ! wonderfull !

i like cmd scripts.

i will keep this one and try it.

:thumbup

Works perfect but the name you choose for WINNT.SIF in your example is a bit confusing. :wacko:

OemPnPDriversPath.cmd C:\Drivers "C:\UWCD root\i386\WINNT.SIF"

Use 8.3 naming convention for your path and it's more easy.

OemPnPDriversPath.cmd C:\Drivers C:\XPCREATE\CDROOT\i386\WINNT.SIF

Edited by Bilou_Gateux

  • 4 months later...

I can't get this script to work...

It DOES give output: I find a new WINNT.SIF file in the current directory, with everything in it except the comments. But unfortunately also without OemPnPDriversPath...

How did it work for you Bilou_Gateaux?

My %systemdrive% is as described below:

$OEM$ dir

oemdir.jpg

PnPDrvrs dir

PnPDrvrs.jpg

UNATTEND.TXT code

Open command prompt in C:\PnPDrvrs:

OEMPnPDriversPath C:\PnPDrvrs C:\$OEM$\UNATTEND.TXT

C:\PnPDrvrs\WINNT.SIF content:

OemPnPDriversPath = "PnPDrvrs\Display\Intel;PnPDrvrs\Display\NVidia;PnPDrvrs\Hdc\Intel;PnPDrvrs\Media\Fujitsu;
***//cut for easy reading//***
PnPDrvrs\Net\BRCM;PnPDrvrs\Net\Intel;PnPDrvrs\System\Intel;PnPDrvrs\Usb\Intel"

For me it is like this:

K:\OemPnPDriversPath.cmd

K:\$OEM$\$1\DP

K:\I386\winnt.sif

And OemPnPDriversPath.cmd has to search for devicepaths in K:\$OEM$\$1\DP, adding them to K:\I386\winnt.sif.

EDIT: but as I said, it doesn't work...

The batch file doesn't direct edit your source WINNT.SIF but recreate a new one wich is saved to the dir where you have saved the batch file.

Try first to move the batch file to your DP dir ie K:\$OEM$\$1\DP and then, the resulting new SIF file should be in K:\$OEM$\$1\DP\WINNT.SIF

The batch file doesn't direct edit your source WINNT.SIF but recreate a new one wich is saved to the dir where you have saved the batch file.

I know that... but the one that I find in the current directory doesn't contain the OemPnPDriversPath...

OK i have created the same dir tree as you on my D: partition

D:\$OEM$\$1\PnPDrvrs contains all drivers subdirs and OEMPnPDriversPath.cmd

D:\I386 contains the original WINNT.SIF

Open command prompt:

cmd /k cd /d D:\$OEM$\$1\PnPDrvrs

run:

OEMPnPDriversPath D:\$OEM$\$1\PnPDrvrs D:\I386\WINNT.SIF

and check the result (new WINNT.SIF) in D:\$OEM$\$1\PnPDrvrs

OemPnPDriversPath = "$OEM$\$1\PnPDrvrs\Display\Intel;$OEM$\$1\PnPDrvrs\Display\NVidia;$OEM$\$1\PnPDrvrs\Hdc\Intel;$OEM$\$1\PnPDrvrs\Media\Fujitsu;$OEM$\$1\PnPDrvrs\Net\BRCM;$OEM$\$1\PnPDrvrs\Net\Intel;$OEM$\$1\PnPDrvrs\System\Intel;$OEM$\$1\PnPDrvrs\Usb\Intel"

But the solution is not clean as having the PnP Drivers dir on root of harddrive to build the OemPnPDriversPath =

Compare the result with my previous post.

I suggest to first build the winnt.sif with your DP dir in root of hard drive and then move to the subdir you want ie $OEM$\$1

Hmm too bad... I thougt your script changed it at runtime! I'm still working on a script that automatically updates the path in the t-39 stage. Thus as a attached program! Actually exactly the same as Pyron's SetDevicePath.exe, but I want it as an cmd-script!

Actually exactly the same as Pyron's SetDevicePath.exe, but I want it as an cmd-script!

Why do you want a cmd file so badly, if the executable has been confirmed working by so many?

Actually exactly the same as Pyron's SetDevicePath.exe, but I want it as an cmd-script!

Why do you want a cmd file so badly, if the executable has been confirmed working by so many?

Well, maybe hard to explain, but I'll try:

I just like to have something that I know HOW it works. Just out of curiosity, and to be assured that it does what I think it does. Also, I might want to add/modify some things, every now and then.

Well, maybe hard to explain, but I'll try:

I just like to have something that I know HOW it works. Just out of curiosity, and to be assured that it does what I think it does.

I understand you, I'm the same. But if I see that something has been working for hundreds of people, then I'll gladly use it...

This script is nice btw, but I'd wonder why he didn't use a utility to update the winnt.sif.

That way he could replace the whole :RECREATE routine into this line:

nircmd inisetval "d:\xp_unattend\I386\winnt.sif" "Unattended" "OemPnPDriversPath" "~qTHIS_IS_THE_NEW_VALUE~q"

http://www.nirsoft.net/utils/nircmd.html

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.