Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - jiimmy

Pages: [1] 2
1
Software / Directx 9a
« on: June 07, 2003, 07:16:08 PM »
Hmm... well Im not sure I completely understand what you are asking but I thought I would add how I obtained the DX 9.0a files for Windows 2000.
  • Open windows explorer and navigate to the [font=\"Courier\"]system32\directx[/font] folder.
  • Run the DirectX download program [font=\"Courier\"]dxwebsetup.exe[/font]. This downloads the compressed files to the [font=\"Courier\"]system32\directx\websetup[/font] folder.
  • As soon as the download portion completes, copy the [font=\"Courier\"]websetup[/font] folder to the desktop. I did this by dragging'n dropping the folder from the explorer window onto the desktop while holding the Control key to copy it. Actually, I think you can even wait until the installation completes and the user is prompted to reboot because I believe the [font=\"Courier\"]websetup[/font] folder is not deleted until after the user clicks the button.
My [font=\"Courier\"]websetup[/font] directory has the following files:
Code: [Select]
audio_nt.cab
audio_nt_eng.cab
bda_w2k.cab
dinput_all_81.cab
dinput_w2k_81.cab
dinput_w2k_81_eng.cab
dplay_nt.cab
dplay_nt_eng.cab
dsetup.dll
dsetup32.dll
dshow_nt.cab
dshow_nt_81.cab
dshow_nt_eng.cab
dshow_w2k_eng.cab
dxdiag_nt_eng.cab
filelist.dat
graphics_nt.cab
graphics_nt_eng.cab
graphics_w2k.cab
graphics_w2k_81.cab
ks_nt.cab
ks_nt_eng.cab
setup_all.cab
setup_w2k.cab
setup_w2k_eng.cab
vb_nt.cab

If you install Dx9.0a over any DX version greater than 8 or so it does NOT download the [font=\"Courier\"]dinput_all_81.cab[/font] because those files are not updated (these are the 186 weird files in the [font=\"Courier\"]system32\directx\dinput[/font] folder).

One catch is that (at least for win2k) some of the files need to have their extension renamed, so I wrote a batch file to do the extraction from the [font=\"Courier\"]websetup[/font] directory and to rename the 3 files FOR WIN2K. The renaming stuff was pulled from the inf files.

[font=\"Courier\"]DXWebExtract.bat[/font]:
Code: [Select]
@ECHO OFF
IF NOT EXIST "%~1" (
ECHO.Extracts DX cabinet files to DXNT and DXBDA folder for redistribution.
ECHO.
ECHO.usage: %~n0 "path to websetup folder"
ECHO.
ECHO.Uses cabarc.exe for extraction which needs to be in current path.
GOTO :EOF
)
SETLOCAL
SET fldr=%~f1
SET shrtfldr=%~fs1
SET d3d8thk=dll
SET joy=cpl
SET quartz=dll

FOR %%X IN (DXNT BDANT) DO IF NOT EXIST "%fldr%\%%X" MKDIR "%fldr%\%%X"

FOR %%X IN (*.cab) DO CALL :Extract "%%~fX"

:Rename
ECHO.
FOR /F "delims=" %%X IN ('DIR /B /S "%fldr%\*.w2k"') DO FOR /F "delims=" %%Y IN ('DIR /B /S "%%~dpnX.*"^| FINDSTR /V /C:.w2k') DO (
DEL /F "%%~fY"
REN "%%~fX" "%%~nxY"
)

:Name
FOR /F "delims=" %%X IN ('DIR /B /S "%fldr%\*.w2k"') DO CALL :MakeName "%%~fX"

GOTO :Done

:Extract
SET name=%~n1
IF "%name%"=="%name:bda=%" (SET dest=DXNT) ELSE (SET dest=BDANT)
cabarc.exe -o X %1 *.* %shrtfldr%\%dest%\
GOTO :EOF

:MakeName
ECHO.
IF DEFINED %~n1 (CALL SET filext=%%%~n1%%) ELSE SET /P filext=Enter the new extension for %~nx1:
ECHO Rename "%~nx1" to "%~n1.%filext%" ?
PAUSE
REN %1 "%~n1.%filext%"
GOTO :EOF

:Done
ENDLOCAL

2
Software / Win2k & IE6 Unattended Install
« on: May 16, 2003, 05:18:07 AM »
My understanding is that qchain.exe just takes care of multiple pending file rename operations on the same file. So as long as the program (IE6) isnt replacing any files that where replaced before you ran qchain.exe, you should be fine. If you want to know for sure you can always look at the output of qchain.exe by passing it a log file name. It tells you exactly what it does and from the info you can infer whether and when it is even needed or not.

For example, from this log file it doesnt look like qchain did anything and probably isnt needed:
Code: [Select]
---- Old Information In The Registry ------
Source:c:ed467fb3\update\update.exe
Version: 5.2.2.10
Destination:
Version:

Source:c:ed467fb3\update\spcustom.dll
Version: 5.2.2.10
Destination:
Version:

Source:c:ed467fb3\update
Version:
Destination:
Version:

Source:c:ed467fb3
Version:
Destination:
Version:

Source:c:ed467fb3
Version:
Destination:
Version:

Source:c:\da895a7b6f4\update\update.exe
Version: 5.2.2.10
Destination:
Version:

Source:c:\da895a7b6f4\update
Version:
Destination:
Version:

Source:c:\da895a7b6f4
Version:
Destination:
Version:

Source:c:\da895a7b6f4
Version:
Destination:
Version:

Source:c:\f84cb3665635ac615431271ac6a978e1\update\update.exe
Version: 5.2.2.10
Destination:
Version:

Source:c:\f84cb3665635ac615431271ac6a978e1\update
Version:
Destination:
Version:

Source:c:\f84cb3665635ac615431271ac6a978e1
Version:
Destination:
Version:

Source:c:\f84cb3665635ac615431271ac6a978e1
Version:
Destination:
Version:

Source:c:4441adf\update\update.exe
Version: 5.2.2.10
Destination:
Version:

Source:c:4441adf\update\spcustom.dll
Version: 5.2.2.10
Destination:
Version:

Source:c:4441adf\update
Version:
Destination:
Version:

Source:c:4441adf
Version:
Destination:
Version:

Source:c:4441adf
Version:
Destination:
Version:

Source:C:\pagefile.sys
Version:
Destination:
Version:

Source:E:\pagefile.sys
Version:
Destination:
Version:

Source:E:\WIN2000\System32\SET42E.tmp
Version: 6.0.2800.1106
Destination:E:\WIN2000\System32\advpack.dll
Version: 5.0.3502.4373

Source:E:\WIN2000\System32\SET472.tmp
Version: 6.0.2800.1106
Destination:E:\WIN2000\System32\shdoclc.dll
Version: 5.0.3502.5039

Source:E:\WIN2000\System32\SET476.tmp
Version: 6.0.2800.1106
Destination:E:\WIN2000\System32\shfolder.dll
Version: 5.0.2920.0

Source:E:\WIN2000\System32\SET478.tmp
Version: 6.0.2800.1106
Destination:E:\WIN2000\System32\shlwapi.dll
Version: 5.0.3502.5332

Source:E:\WIN2000\System32\SET47C.tmp
Version: 6.0.2800.1106
Destination:E:\WIN2000\System32\url.dll
Version: 5.0.3502.4510

Source:E:\WIN2000\System32\SET47E.tmp
Version: 6.0.2800.1106
Destination:E:\WIN2000\System32\urlmon.dll
Version: 5.0.3502.5400

Source:E:\WIN2000\System32\SET482.tmp
Version: 6.0.2800.1106
Destination:E:\WIN2000\System32\wininet.dll
Version: 5.0.3502.4619

Source:E:\WIN2000\System32\SET4E2.tmp
Version: 5.81.4916.400
Destination:E:\WIN2000\System32\comctl32.dll
Version: 5.81.3315.3727

Source:E:\WIN2000\System32\SET4E6.tmp
Version: 1998.3.6074.0
Destination:E:\WIN2000\System32\corpol.dll
Version: 1998.3.6045.0

Source:E:\WIN2000\System32\SET4EF.tmp
Version: 6.0.2800.1106
Destination:E:\WIN2000\System32\ieakui.dll
Version: 5.0.2920.0

 
 
---- New Information In The Registry ------
Source:c:ed467fb3\update\update.exe
Version: 5.2.2.10
Destination:
Version:

Source:c:ed467fb3\update\spcustom.dll
Version: 5.2.2.10
Destination:
Version:

Source:c:ed467fb3\update
Version:
Destination:
Version:

Source:c:ed467fb3
Version:
Destination:
Version:

Source:c:ed467fb3
Version:
Destination:
Version:

Source:c:\da895a7b6f4\update\update.exe
Version: 5.2.2.10
Destination:
Version:

Source:c:\da895a7b6f4\update
Version:
Destination:
Version:

Source:c:\da895a7b6f4
Version:
Destination:
Version:

Source:c:\da895a7b6f4
Version:
Destination:
Version:

Source:c:\f84cb3665635ac615431271ac6a978e1\update\update.exe
Version: 5.2.2.10
Destination:
Version:

Source:c:\f84cb3665635ac615431271ac6a978e1\update
Version:
Destination:
Version:

Source:c:\f84cb3665635ac615431271ac6a978e1
Version:
Destination:
Version:

Source:c:\f84cb3665635ac615431271ac6a978e1
Version:
Destination:
Version:

Source:c:4441adf\update\update.exe
Version: 5.2.2.10
Destination:
Version:

Source:c:4441adf\update\spcustom.dll
Version: 5.2.2.10
Destination:
Version:

Source:c:4441adf\update
Version:
Destination:
Version:

Source:c:4441adf
Version:
Destination:
Version:

Source:c:4441adf
Version:
Destination:
Version:

Source:C:\pagefile.sys
Version:
Destination:
Version:

Source:E:\pagefile.sys
Version:
Destination:
Version:

Source:E:\WIN2000\System32\SET42E.tmp
Version: 6.0.2800.1106
Destination:E:\WIN2000\System32\advpack.dll
Version: 5.0.3502.4373

Source:E:\WIN2000\System32\SET472.tmp
Version: 6.0.2800.1106
Destination:E:\WIN2000\System32\shdoclc.dll
Version: 5.0.3502.5039

Source:E:\WIN2000\System32\SET476.tmp
Version: 6.0.2800.1106
Destination:E:\WIN2000\System32\shfolder.dll
Version: 5.0.2920.0

Source:E:\WIN2000\System32\SET478.tmp
Version: 6.0.2800.1106
Destination:E:\WIN2000\System32\shlwapi.dll
Version: 5.0.3502.5332

Source:E:\WIN2000\System32\SET47C.tmp
Version: 6.0.2800.1106
Destination:E:\WIN2000\System32\url.dll
Version: 5.0.3502.4510

Source:E:\WIN2000\System32\SET47E.tmp
Version: 6.0.2800.1106
Destination:E:\WIN2000\System32\urlmon.dll
Version: 5.0.3502.5400

Source:E:\WIN2000\System32\SET482.tmp
Version: 6.0.2800.1106
Destination:E:\WIN2000\System32\wininet.dll
Version: 5.0.3502.4619

Source:E:\WIN2000\System32\SET4E2.tmp
Version: 5.81.4916.400
Destination:E:\WIN2000\System32\comctl32.dll
Version: 5.81.3315.3727

Source:E:\WIN2000\System32\SET4E6.tmp
Version: 1998.3.6074.0
Destination:E:\WIN2000\System32\corpol.dll
Version: 1998.3.6045.0

Source:E:\WIN2000\System32\SET4EF.tmp
Version: 6.0.2800.1106
Destination:E:\WIN2000\System32\ieakui.dll
Version: 5.0.2920.0

3
Software / Win2k & IE6 Unattended Install
« on: May 16, 2003, 04:45:07 AM »
I havent had any problems using IEAK to create the distribution.

Files:
Code: [Select]
D:\spCD\$OEM$\Cmdlines.txt
D:\spCD\$OEM$\IE6\BRANDING.CAB
D:\spCD\$OEM$\IE6\CRLUPD.CAB
D:\spCD\$OEM$\IE6\ie6setup.bat
D:\spCD\$OEM$\IE6\ie6setup.exe
D:\spCD\$OEM$\IE6\iebatch.txt
D:\spCD\$OEM$\IE6\IEEXINST.CAB
D:\spCD\$OEM$\IE6\iesetup.ini
D:\spCD\$OEM$\IE6\IEW2K_1.CAB
D:\spCD\$OEM$\IE6\IEW2K_2.CAB
D:\spCD\$OEM$\IE6\IEW2K_3.CAB
D:\spCD\$OEM$\IE6\IEW2K_4.CAB
D:\spCD\$OEM$\IE6\MAILNEWS.CAB
D:\spCD\$OEM$\IE6\OEEXCEP.CAB
D:\spCD\$OEM$\IE6\README.CAB
D:\spCD\$OEM$\IE6\SCRIPTEN.CAB
D:\spCD\$OEM$\IE6\WAB.CAB

Below is the contents of files which where modified or created:

Cmdlines.txt:
Code: [Select]
"CMD /Q /C .\TweakUI.bat"
"CMD /Q /C .\SpTools.bat"
"CMD /Q /C .\RKTools.bat"
"CMD /Q /C .\BinTools.bat"
"CMD /Q /C .\Clean.bat"
"CMD /Q /C .\IE6\ie6setup.bat"
"CMD /Q /C .\Registry.bat"
"CMD /Q /C .\Profiles\Defaults.bat"
".\qchain.exe \Qchain.txt"

ie6setup.bat:
Code: [Select]
ECHO.Installing Internet Explorer 6 Service Pack 1 . . .
START /WAIT %~dp0\ie6Setup.exe /C:"ie6wzd /B:%~dp0iebatch.txt /S:""#e"" /Q /R:N"

The rest is NOT necessary if you just want the default installation, of course take out the /B switch above if there is no iebatch.txt file.

iebatch.txt:
Code: [Select]
[Options]
SaveUninstallInfo=0

iesetup.ini:
Code: [Select]
[Options]
Language=0409
Shell_Integration=0
Win95=0
Millen=0
NTx86=0
W2K=6.0.2800.1106
NTalpha=0
ConfirmFileList=0
IELiteMode=0
LocalInstall=1
[Version]
Signature=Active Setup

Below is the contents of the modified files in BRANDING.CAB (which was repackaged). These contain installation settings and customizations.

Code: [Select]
Listing of cabinet file 'BRANDING.CAB' (size 1214):
   3 file(s), 1 folder(s), set ID 2861, cabinet #0

File name                      File size     Date      Time   Attrs
-----------------------------  ---------- ---------- -------- -----
   INSTALL.INS                        957 2002/10/30 01:06:14  -a--
   setup.inf                           54 2002/08/29 07:34:04  -a--
   install.inf                       1420 2002/08/29 07:34:04  -a--

install.inf
Code: [Select]
[Version]
Signature=$Chicago$
AdvancedInf=2.5
LayoutFile=Setup.inf
[CustInstDestSection]
49000,49001,49002,49003=ProgramFilesDir,5
49100,49101,49102,49103=IEFilesDir,5
[Strings]
IEDIR=Internet Explorer
OLDGUID={60B49E34-C7CC-11D0-8953-00A0C90347FF}MICROS
Description=Browser Customizations
StubPath="RunDLL32 IEDKCS32.DLL,BrandIE4 SIGNUP"
Revision="6,0,2800,1106"
GUID=>{60B49E34-C7CC-11D0-8953-00A0C90347FF}MICROS
ClearStubsCmd="RUNDLL32 IEDKCS32.DLL,BrandCleanInstallStubs >{60B49E34-C7CC-11D0-8953-00A0C90347FF}MICROS"
[DefaultInstall]
CopyFiles=CopyFileSect
CustomDestination=CustInstDestSection
RequiredEngine=SetupAPI,"Fatal Error - Missing SETUPAPI.DLL"
DelReg=DelRegSect
AddReg=AddRegSect
RunPostSetupCommands=PostCmdSect
[DestinationDirs]
CopyFileSect=49100,SIGNUP

[ProgramFilesDir]
HKLM,Software\Microsoft\Windows\CurrentVersion,ProgramFilesDir,,%24%

[IeFilesDir]
HKLM,"Software\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE","Path",,"%24%\Program Files\%IEDIR%"

[CopyFileSect]
"INSTALL.INS"

[AddRegSect]
HKLM,"Software\Microsoft\Active Setup\Installed Components\%GUID%",StubPath,,"%StubPath%"
HKLM,"Software\Microsoft\Active Setup\Installed Components\%GUID%",IsInstalled,,"1"
HKLM,"Software\Microsoft\Windows\CurrentVersion\RunOnce",BrandClearStubs,,"%ClearStubsCmd%"

[DelRegSect]
HKLM,"Software\Microsoft\Active Setup\Installed Components\%OLDGUID%"

INSTALL.INS
Code: [Select]
[Branding]
CompanyName=Microsoft Corporation
Version=6,0,2800,1106
Type=0
Wizard_Version=6.00.2800.1106
Custom_Key=MICROSO
Window_Title=
NoBackup=1
FavoritesOnTop=0
NoFavorites=1
Platform=2

[URL]
Home_Page=http://www.microsoft.com/windows
Search_Page=http://www.yahoo.com/search/ie.html
Quick_Link_1_Name =%QL10%.url
Quick_Link_1      =http://www.microsoft.com/isapi/redir.dll?prd=ie&pver=6&ar=CLinks
Quick_Link_2_Name =%QL20%.url
Quick_Link_2      =http://www.microsoft.com/isapi/redir.dll?prd=ie&ar=Email Removed
Quick_Link_3_Name =%QL30%.url
Quick_Link_3      =http://www.microsoft.com/isapi/redir.dll?prd=ie&ar=windows
NoWelcome=1

[Strings]
QL10 = "Customize Links"
QL20 = "Email Removed"
QL30 = "Windows"
[Media]
Build_Download=0
Build_CD=1
Build_LAN=0
Build_BrandingOnly=0
[ActiveSetupSites]
SiteUrl0=http://www.microsoft.com/DOWNLOAD/WIN32
SiteName0=Download Site 0
SiteRegion0=North America
[Internet_Mail]
Window_Title=

4
Software / Windows 2000 unnatended with drivers on CD
« on: May 01, 2003, 07:14:41 PM »
I just wanted to mention that i found WinstallLE extremely usefull for stuff like this (its on the win2k CD under VALUEADDrd Party).  It tracks files installed by software as well as any registry changes made. so it basically gives you everything the software needs to be \"installed\", so you can in theory slipstream anything in this fashion.  

For those interested, the windows registry setup is also located in TXTSETUP.SIF and its easy to modify.  Below is what I did to integrate the (modifiied) direct x infs:

Code: [Select]
[HiveInfs.Fresh]
AddReg = hivedef.inf,AddReg
AddReg = hivesys.inf,AddReg
AddReg = hivesft.inf,AddReg
AddReg = hivecls.inf,AddReg
AddReg = hiveusd.inf,AddReg
AddReg = wsh.inf,AddReg.WSH
AddReg = dmreg.inf,DM.AddReg
AddReg = diactfrm.inf,add.reg
AddReg = dmusic.inf,add.reg
AddReg = dmusic.inf,add.dx8reg
AddReg = dplay.inf,add.reg
AddReg = dsound.inf,DirectSound.AddReg
AddReg = dxntunp.inf,add.reg
AddReg = dxver.inf,D3D_Retail
AddReg = dxver.inf,add.reg
AddReg = ksreg.inf,PlugInRegistration
AddReg = ksreg.inf,DeviceRegistration
AddReg = dxver.inf,Win2K_Drivers32
AddReg = dxver.inf,BDA_InstallDevices
AddReg = dxver.inf,add.dxsetup

[HiveInfs.Fresh.RemoteBoot]
AddReg = hivesys.inf,AddReg.RemoteBoot

[HiveInfs.Upgrade]
DelReg = hivedef.inf,DelRegFirst
DelReg = hivesft.inf,DelRegFirst
AddReg = hivedef.inf,AddReg
DelReg = hivedef.inf,DelReg
AddReg = hivesys.inf,AddReg
DelReg = hivesys.inf,DelReg
AddReg = hivesys.inf,AddReg.Upgrade
AddReg = hivesft.inf,AddReg.Upgrade
AddReg = hivesft.inf,AddReg
DelReg = hivesft.inf,DelReg
AddReg = hivecls.inf,AddReg
DelReg = hivecls.inf,DelReg
AddReg = hiveusd.inf,AddReg
AddReg = wsh.inf,AddReg.WSH
AddReg = dmreg.inf,DM.AddReg
DelReg = dmreg.inf,DM.DelReg

The only catch is that the inf parsing engine is not as \"smart\" as the normal win2k parser is (setupapi.dll i think). For example, it only substitutes variables in the keys and not in the values. and it is worse with quotes; the infs that came with directX would generate errors so they had be modified to get it to work. For directX, it was rather intractable so I made some batch files to automate it.

Here are some speculations of mine about the creation of the registry during setup:

When textmode first starts it loads the registry from SETUPREG.HIV which is in the bootsector, with all the other files listed in DOSNET.INF; when installing using the temporary drive option the bootsector is created in a folder name $WIN_NT$.~BT on the system partition. Setup then begins copying all the files specified in the [Files] section of DOSNET.INF to the temporary folder (something like $WIN_NT$.~LS). After copying the files it then adds the registry data specified in the [HiveInfs.Fresh] section of TXTSETUP.SIF. And then it saves the registry, as well as a backup, to the system32\config folder and there is your registry (So the hives with the .sav extension, which are the system backup, are just a copy of the registry at the end of textmode setup). Next time it starts it will boot from the temporary folder and load the registry from the config folder just like normal.

*** Actually, Im not sure what I was thinking in the last paragraph but I mixed something up and I want to correct it.

Textmode copies the files from the local distribution (or cd) as specified in TXTSETUP.SIF not DOSNET.INF. My bad. Among other things, DOSNET.INF describes whats in the distribution share or cd and is used by winnt32.exe /tempdrive to create the remote or local distribution (and bootsector image in the appropriate place).

5
Software / Windows 2000 unnatended with drivers on CD
« on: May 01, 2003, 02:06:18 AM »
[quote name=\'Jazkal2\' date=\'Apr 16 2003, 10:24 AM\']Could some one walk us through integrating an actual Mass Storage Device into the i386 source files? That would be very helpful.

Thanks,
- Jazkal[/quote]
This may be helpfull...

I think the format for the [SourceDiskFiles] section is, in part:

filename = SourceDisk,,,,,,SourceDisk(Other),DestDir,,

SourceDisk and DestDir are found at the top of TXTSETUP.INF. You just copy the key for the appropriate directory in the [SourceDiskNames] and [WinntDirectories] sections. you get too CHOOSE. you can even create a new entry like i did above with \"Intel Application Accelerator\".

The DestDir is determined by where the file needs to go. Generally this can be found in an inf file. If you have to, install the drivers and find out where all the files go. Then enter the appropiated key for the directories from the [WinntDirectories] section. For Example \"4\" is System32\drivers.

As another note, If i remember, the DRVINDEX.INF file holds the names of all the windows base drivers, service pack drivers, etc.. These drivers are checked against the sp3.cat and what not and i dont think its necessary to modify this file.

** On second thought, removing lines from this file might serve some purpose...
 
If you have trouble loading the drivers during setup?.. could be many things. If the driver needs special registry settings then you need to enter them by hand in the SETUPREG.HIV file. The drivers i did worked fine without pre-entering the reg info so i just left it out, but this was just an IDE driver. You can check to see what the proper reg info is by installing the drivers and looking at the services key. But this info can also be found from the installation inf or more appropriately from a supplied txtsetup.oem, which contains all necessary info to boot with the drivers.  

In fact one check i used when getting mine to work was making sure that all the information that was in my txtsetup.oem file had somehow been entered into TXTSETUP.INF (or in SETUPREG.HIV i suppose). This may or may not be easy because the data formats are different. Now i remember i think I did at one point do a search on txtsetup.oem format to help parse it... yeah here it is. Check this out:

http://msdn.microsoft.com/library/en-us/in...tsetup_1wmq.asp

6
Software / Windows 2000 unnatended with drivers on CD
« on: May 01, 2003, 01:08:18 AM »
In reply to:
>
> jiimmy,
>
>
>
> i found your description about implementing
> mass-storage drivers to a w2k cd for the unattended
> installation. I have modified the txtsetup.sif file
> but w2k hangs during TEXTMODE without displaying any
> error.
> I modified the following section of the txtsetup.sif
> file and copied the driver files *.sys to the I386
> folder.
> Deleted existing *.sy_ driver files.
>
> ************TXTSETUP.SIF**********************
> [SourceDisksFiles]
> ;dac960nt.sys = 1,,,,,,4_,4,1
> dac960nt.sys = 1,,,,,,_x,4,1
> mraid35x.sys = 1,,,,,,_x,4,1
> etc.
>
> [HardwareIdsDatabase]
> PCI\VEN_1069&DEV_0001 = \"dac960nt\"
> PCI\VEN_1069&DEV_0002 = \"dac960nt\"
> PCI\VEN_1069&DEV_0010 = \"dac960nt\"
> PCI\VEN_1069&DEV_0010&SUBSYS_00101069 = \"dac960nt\"
> PCI\VEN_1069&DEV_BA55&SUBSYS_BA551069 = \"dac960nt\"
> PCI\VEN_1011&DEV_1065&SUBSYS_00201069 = \"dac960nt\"
> PCI\VEN_101E&DEV_9010 = \"mraid35x\"
> PCI\VEN_101E&DEV_9060 = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_0438101E = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_0466101E = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_0467101E = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_0490101E = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_04671028 = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_11111028 = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_10C6103C = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_10C7103C = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_10CC103C = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_10CD103C = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_11111111 = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_11121111 = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_03A2113C = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_10CC103C&REV_09 =
> \"mraid35x\"
> etc.
>
> [SCSI.LOAD]
> dac960nt = dac960nt.sys,4
> mraid35x = mraid35x.sys,4
> etc.
>
> [SCSI]
> dac960nt = \"Mylex DAC1100/DAC960PG/PJ/PR/PT/PTL1/PRL
> Series Controller\"
> mraid35x = \"HP NetRAID-xSi RAID Controller Driver\"
> etc.
>


where in textmode is it hanging? after loading what driver? slow the cpu down if you have to to see it.

Did you delete any duplicate hardwareID references?

Are those drivers actually SCSI Miniports? or are they boot bus Extenders?

You know you can find all this information by installing the drivers and looking at the associated services key. Its all there.

maybe try getting just one hardwareID to work first? With repeatable tests like this elimination is usefull, at least i find it to be.

7
Software / Windows 2000 unnatended with drivers on CD
« on: March 25, 2003, 12:36:03 AM »
DeadHampster,

First are you sure its using your drivers to acces the drives during TextMode... On mine it says during boot, \"loading multi(0)disk(0)rdisk(0)partition(1) on IdeChnDr 0...\" or something like that right before it searches the drives.  Without the HardwareId, I dont see how it could select them. But it might just load everything in the list. Anyway you should definately include the hardwareID.

For GUI mode, Are your .sys files copied to system32Drivers? Check your drive to see if they are there. Check the SYSTEMServices key for your drivers to see if they look as they should. The key is setup up by windows from your entries in [SCSI] and [SCSI.load] at the very end of textmode when it says \'saving current configuration\'. It is used to boot from during guimode. Just a note, during CD-ROM boot, windows uses the SYSTEMServices key in SETUPREG.HIV in the I386 folder. It loads all the drivers including ones specified in TXTSETUP.INF. At the end of T-mode, the registry is then saved to the system32config folder as well as backups saved with the \'.sav\' extensions. so you can always see what happened at the end of T-mode by loading these hives.

If any of the driver filenames are the same as any windows drivers then you are out of luck (unless you can rename the files?). This is because it will check them against the windows catalog signature file (sp3.cat) for the windows driver with the same name and it will fail and the file will be replaced by sfc.exe if it even boots which it may not and might be your BSOD. One example is adpu160m.sys. It cant even be used in [MassStorageDrivers].

There are other possible reasons but these come foremost to my mind right now.

8
Software / Windows 2000 unnatended with drivers on CD
« on: March 24, 2003, 01:41:17 AM »
In reply to:

How did you modify the
TXTSETUP.SIF and DOSNET.INF?
I have wanted to include drivers in the install so windows will detect them itself. I have been successful with IBM ServeRAID 4Lx but failed with 2 nic\'s, audio and usb.

Use OemPnpDriversPath for the audio, nics and usb. For the raid, well here is what I did for the intel drivers. Read the posts above about the txtsetup.oem file which contains all this info in a different form.

DOSNET.INF, added these lines at the end of the sections:

[FloppyFiles.3]

d1,IdeBusDr.sys
d1,IdeChnDr.sys

[Files]

d1,IdeBusDr.sys
d1,IdeChnDr.sys
d1,IPrtCnst.dll
d1,IdeChnDr.inf
d1,diactfrm.inf
d1,dmusic.inf
d1,dplay.inf
d1,dsound.inf
d1,dxnt.inf
d1,dxbda.inf
d1,dxdllreg.inf
d1,dxntunp.inf
d1,dxver.inf
d1,ksreg.inf



TXTSETUP.SIF, these sections have the following lines, I did not add all these lines. I give them only to show the order:


[SourceDisksNames.x86]
1   = %wkscd%,cdrom_ip.5,,i386
2    = %spcd%,cdromsp3.tst,,i386,1
3    = \"Intel Application Accelerator Driver\",idebusdr.sys,,i386,1
_1   = %wks1%,disk101,,\"\"
_2   = %wks2%,disk102,,\"\"
_3   = %wks3%,disk103,,\"\"
_4   = %wks4%,disk104,,\"\"
1_   = %wks1%,disk101,,\"\"
2_   = %wks2%,disk102,,\"\"
3_   = %wks3%,disk103,,\"\"
4_   = %wks4%,disk104,,\"\"

[SourceDisksFiles]

yahoo.bmp    = 1,,,,,,,,3,3      
zapotec.bmp  = 1,,,,,,,1,3,3
complus.flg  = 1,,,,,,,2,0,0,~clbcatq.dll
IdeBusDr.sys = 3,,,,,,4_,4,1
IdeChnDr.sys = 3,,,,,,4_,4,0,0
IPrtCnst.dll = 3,,,,,,,2,0,0
IdeChnDr.inf = 3,,,,,,,20,0,0
dxnt.inf     = 2,,,,,,,20,0,0
dxbda.inf    = 2,,,,,,,20,0,0
dxdllreg.inf = 2,,,,,,,20,0,0
diactfrm.inf = 2,,,,,,,,3,3
dmusic.inf   = 2,,,,,,,,3,3
dplay.inf   = 2,,,,,,,,3,3
dsound.inf   = 2,,,,,,,,3,3
dxntunp.inf  = 2,,,,,,,,3,3
dxver.inf    = 2,,,,,,,,3,3
ksreg.inf    = 2,,,,,,,,3,3

[HardwareIdsDatabase]
1394609E&10483 = \"sbp2port\"
GenDisk = \"Disk\",{4D36E967-E325-11CE-BFC1-08002BE10318}
GenOptical = \"Disk\"
GenCdRom = \"CdRom\"
SCSIWormSONY____CD-R___CDU920S__ = \"CdRom\"
GenFloppyDisk = \"flpydisk\"
PCIVEN_8086&DEV_244B&CC_0101 = \"IdeBusDr\"
PCIVEN_8086&DEV_1230 = \"intelide\"
PCIVEN_8086&DEV_7010 = \"intelide\"
PCIVEN_8086&DEV_7111 = \"intelide\"
PCIVEN_8086&DEV_2411 = \"intelide\"
PCIVEN_8086&DEV_2421 = \"intelide\"
PCIVEN_8086&DEV_7199 = \"intelide\"
PCIVEN_105A&DEV_4D33 = \"pciide\"
PCICC_0101 = \"pciide\"
I_Primary_IDE_Channel = \"IdeChnDr\"
I_Secondary_IDE_Channel = \"IdeChnDr\"
*PNP0600 = \"atapi\"

[SCSI.Load]
cpqarray = cpqarray.sys,4
IdeChnDr = IdeChnDr.sys,4
atapi = atapi.sys,4
ncrc710 = ncrc710.sys,4

[BusExtenders.Load]
pcmcia   = pcmcia.sys
IdeBusDr = IdeBusDr.sys
pciide   = pciide.sys

[files.pci]
pci.sys,4

[files.IdeBusDr]
IdeBusDr.sys,4

[files.pciide]
pciide.sys,4
pciidex.sys,4

[BusExtenders]
pcmcia   = \"PCMCIA Support\",files.pcmcia,pcmcia
IdeBusDr = \"Intel® 82801BA Ultra ATA Controller\",files.IdeBusDr,IdeBusDr
pciide   = \"PCI IDE Bus Driver\",files.pciide,pciide

[SCSI]

ipsraidn = \"IBM ServeRAID Adapter\"
IdeChnDr = \"Intel® Ultra ATA Controller\"
atapi    = \"IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller\"
ini910u  = \"Initio Ultra SCSI Host Adapter\"



For reference, IdeBusDr.sys is a BootBusExtender and IdeChnDr.sys is a SCSI Miniport driver.

9
Software / Windows 2000 unnatended with drivers on CD
« on: March 24, 2003, 12:20:17 AM »
If you want to use the OEMPreinstall facility then the drivers have to be copied to the hard drive during setup because %systemroot% is prepended to each of the paths in OEMPnPDriversPath (This of course just adds these to the Source registry key). So they are in $OEM$$1. $1 is copied to your C: drive or whatever.

D:spCD>dir /B /S /A:D $OEM$$1Drivers
D:spCD$OEM$$1DriversASPI
D:spCD$OEM$$1DriversHercules
D:spCD$OEM$$1DriversIntelATA
D:spCD$OEM$$1DriversIntelNIC
D:spCD$OEM$$1DriversIntelSEC
D:spCD$OEM$$1DriversMatrox
D:spCD$OEM$$1DriversASPIDocs
D:spCD$OEM$$1DriversASPIinclude
D:spCD$OEM$$1DriversIntelATAbak
D:spCD$OEM$$1DriversIntelNICWindows
D:spCD$OEM$$1DriversIntelNICWindowsDrivers
D:spCD$OEM$$1DriversIntelNICWindowsDriversIA32
D:spCD$OEM$$1DriversIntelSECWin2000
D:spCD$OEM$$1DriversIntelSECWin98
D:spCD$OEM$$1DriversIntelSECWinMe


With the winnt.sif entries like:

   OemPreinstall=Yes
    OemFilesPath=\"..$OEM$\"
    OemPnPDriversPath=\"DriversMatrox;DriversIntelNIC;DriversHercules\"
    DriverSigningPolicy=Ignore
    ;;NonDriverSigningPolicy=Ignore

10
Software / Windows 2000 unnatended with drivers on CD
« on: March 24, 2003, 12:05:58 AM »
in Reply to:


But I get a \'800b0003\' fatal error message regarding the product catalogs (*.CAT files?) in GUI boot mode, just after the \"Win2000 built on NT\" splash screen.

What modifications would I need make to avoid this annoyance?

You need to preinstall the .cat files. Use the same procedure that is used for installing the .cat files for slipstreamed hotfixes.

  • Copy the .cat files into the I386svcpack directory.
  • Add each filename to the [ProductCatalogsToInstall] section in svcpack.inf.


This will install the catalog into your %SystemRoot%system32CatRoot folder with all the other catalogs. One thing to note is that if your infs are renamed to oem#.inf when installed, then the catalogs are installed with a capital .CAT extension. I have posted about his before. I cant recall if its required to make it work.

For example, my svcpack.inf looks like:

[Version]
Signature=\"$Windows NT$\"
BuildNumber=2195
MajorVersion=5
MinorVersion=0

[SetupData]
CatalogSubDir=\"i386svcpack\"

[ProductCatalogsToInstall]
dxnt.CAT
dxbda.CAT
Q322842.cat
q323172.cat
Q326830.cat
Q326886.cat
ich2br.CAT
ich2core.CAT
ich2smb.CAT
ich2usb.CAT
IATA3000.CAT
ISD.CAT
oeexcep.CAT
ieexcep.CAT
scripten.CAT

[SetupHotfixesToRun]
Q322842.exe -u -n -z -q
Q323172.exe -u -n -z -q
Q326830.exe -u -n -z -q
Q326886.exe -u -n -z -q
RegDlls.bat

and RegDlls.bat (also in I386svcpack) looks like:

@ECHO OFF
TITLE Dll Registration
ECHO.Registering Dlls . . .
%SystemRoot%System32regsvr32.exe /s msvbvm60.dll
REM %SystemRoot%System32dxdllreg.exe
ECHO.Done.

11
Software / $OEM$\\$1 and cmdlines.txt question
« on: February 11, 2003, 09:44:45 PM »
The last screen shown by Windows Setup, just before it reboots for the 2nd time, has 4 progress bars. Something like:
  • Creating start menu Items...

  • Registering components...

  • Deleting temporary files...

  • Saving settings...



The command lines under [SetupHotfixesToRun] in svcpack.inf are executed during the Registering components phase, when the progress bar is about 50%. Immediately following this,   it executes the commands in Cmdlines.txt. This takes the progress bar to roughly 75%.

Does this answer your question?

Also, note that at this point it is using HKLM.DEFAULT as the current user hive and %ProfilesDir%Default User as the current user directory.

12
Software / easy: Start a .bat file in a different window ?
« on: January 23, 2003, 12:44:50 AM »
Did you try START /? ? All the info is there.

Try this.

Main.bat:
@ECHO OFF
ECHO.Command 1 ...
START \"TITLE 1\" /WAIT CMD /Q /C Batch.bat 1 A
ECHO.Done.
ECHO.Command 2 ...
START \"TITLE 2\" /WAIT CMD /Q /C Batch.bat 2 B
ECHO.Done.
ECHO.Command 3 ...
START \"TITLE 3\" /WAIT CMD /Q /C Batch.bat 3 C
ECHO.Done.



Batch.bat:
REM @ECHO OFF NOT NEEDED IF USING /Q SWITCH WITH CMD.
ECHO.Argument 1 is \"%~1\"
ECHO.Argument 2 is \"%~2\"
netstat -a
PAUSE



Another option is to just use:
START \"TITLE 1\" /WAIT Batch.bat 1 A

Then you have to exit the cmd interpreter from Batch.bat itself using the EXIT command.

13
Software / Has anyone figured out how to silent install dx9?
« on: January 15, 2003, 11:48:22 PM »
I think managed Dx is a .NET component or something.

This is from Dxntunp.inf:

[mdxadd.reg]
HKLM,SoftwareMicrosoft.NETFrameworkAssemblyFoldersManagedDX,,,\"%10%Microsoft.NETManaged DirectX%VersionNumber%\"

[mdxdel.reg]
HKLM,SoftwareMicrosoft.NETFrameworkAssemblyFoldersManagedDX


The following is from the \"directx redist.txt\" file in the DirectX 9 Software Development Kit Redistributable Code download:

Installing Managed DirectX requirements
1) .NET Framework is installed before calling the DirectX setup.
2) Use \"/installmanageddx\" command line parameter if using DXSetup.exe


14
Software / Has anyone figured out how to silent install dx9?
« on: January 11, 2003, 09:55:05 PM »
I\'ve been able to slipstream DirectX 9 for win 2k, but it took quite a bit of work to find out what reg sections in the infs needed to be slipstreamed and to modify the inf files to work with the windows textmode setup program. The remaining problem I have is that the setup program does not know about the inf dir ids (like %11%) so all the REG_SZ keys that use the dir ids have to be changed, which is unfortunate. It can be made to work by changing them to REG_EXPAND_SZ types with environent variables or maybe just using relative paths. However, the only way that I can see to have all the reg entries be exactly correct would be to hardcode the drive letter into those paths,


For example,
HKCR,CLSID{636B9F10-0C7D-11D1-95B2-0020AFDC7421}InProcServer32,,,\"%11%DMUSIC.DLL\"
would become
HKCR,CLSID{636B9F10-0C7D-11D1-95B2-0020AFDC7421}InProcServer32,,,\"C:WIN2000system32DMUSIC.DLL\"


which would limit the use of that particular CD.

Maybe someone has a solution to this?

15
Software / Windows 2000 unnatended with drivers on CD
« on: December 23, 2002, 06:49:47 PM »
In reply to:


I was wondering, why did you REM\'ed \";\" out the whole[OEMBootFiles] & [MassStorageDrivers] sections?


I REM\'ed them because I no longer use the [OEMBootFiles] & [MassStorageDrivers] sections to preinstall the drivers.
I integrated them into the i386 distribution so Windows will select them based on the hardware id, as it does when it installs without any oem drivers.

When you include the [MassStorageDrivers] section, Windows bypasses its normal driver detection routine, and simply loads the drivers you specify, and in the order you specify. I find this results in a different driver load order which is persistent. On my machine it results in event log errors, saying something about my scsi cdrom but it works fine. I think it is due to the different order in which the boot drivers are loaded; one of them is probably not accessible when it should be.

The [OEMBootFiles] facility copies the files into an \"OemDir\" folder (for caching?), and also it creates an oem0.inf rather than using the original name, and I hate that stuff. So I wanted to make the drivers install just like the Windows drivers they replace.

Knowing that IdeBusDr.sys replaces intelide.sys (a bus extender) and that IdeChnDr.sys replaces atapi.sys (a SCSI miniport), I just went into DOSNET.INF and TXTSETUP.SIF and added the appropriates lines, using what was already there for atapi.sys and intelide.sys as a guide. I used the Txtsetup.oem as a reference as it contains the hardware Ids for the actual device, and they need to be added to the [HardwareIdsDatabase] section in TXTSETUP.SIF. This is where setup looks for drivers to load when it first starts. It selects drivers based on a matching scheme to find most compatible driver, which is basically the one that has an Id in the database that most closely matches the Id returned when the device is enumerated. Since the Ids supplied by the Intel Txtsetup.oem are the exact Ids, windows will pick them over its own drivers, and they will by installed just like the windows drivers are, without any footprint (and without the oem0.inf).

Actually, the main reason for this is that the CD can still be used on any machine. This is because windows will use the selection routine to determine what to load. If you use the [MassStorageDrivers] section and try to install (from the cd) onto a computer that does not have a device that is listed in the section, it will BSOD with an INNACCESSIBLE_BOOT_DEVICE message.

16
Software / Unattend: Common Silent installs
« on: December 23, 2002, 07:35:41 AM »
How to perfom a silent installation of WinRAR.

Files needed:

1. wrar300.exe - winrar distribution archive.
(Optional)
2. RARREG.KEY - registration code.
3. rarlng.rar - from rarlabs.com (contains Setup.SFX and setup.s)

A. Silent Installation



wrar300.exe /s

B. Registered Installation



This just requires getting RARREG.KEY into the WinRAR program folder. It can be copied before running the installation or a new distribution archive can be created which includes RARREG.KEY. As described in the rarlng.rar help files, its easy to create an archive which is just like the original download (without the digital signature). To do this you will need the two files, Setup.SFX and setup.s, from the rarlng.rar archive:

1. Extract your distribution to a temporary folder like \"wrar300\".
2. Copy RARREG.KEY into the folder.
3. Having WinRAR already installed, the following command will recreate the distribution:

\"< program folder >winrar.exe\" a -r -ep1 -cfg- -s -m5 -z< setup.s > -sfx< Setup.SFX > < archive name > < files to add >

For example with Setup.SFX and setup.s in the folder just above \"wrar300\":

\"c:program fileswinrarwinrar\" a -r -ep1 -cfg- -s -m5 -zsetup.s -sfxSetup.SFX wrar300 wrar300*.*

C.I Preconfigured Settings



To preconfigure WinRAR settings, such as a cascaded context menu, the appropriate registry entries need to be added. The following is a .reg file that enables cascaded menus, sets some file association (ones not set are used by winzip), and disables the desktop and start menu icons:


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USERSoftwareWinRARSetup]
\"ShellExt\"=dword:00000001
\"CascadedMenu\"=dword:00000001
\"MenuIcons\"=dword:00000001

[HKEY_CURRENT_USERSoftwareWinRARSetup.ace]
\"Set\"=dword:00000001

[HKEY_CURRENT_USERSoftwareWinRARSetup.arj]
\"Set\"=dword:00000000

[HKEY_CURRENT_USERSoftwareWinRARSetup.bz]

[HKEY_CURRENT_USERSoftwareWinRARSetup.bz2]
\"Set\"=dword:00000001

[HKEY_CURRENT_USERSoftwareWinRARSetup.cab]
\"Set\"=dword:00000000

[HKEY_CURRENT_USERSoftwareWinRARSetup.gz]
\"Set\"=dword:00000000

[HKEY_CURRENT_USERSoftwareWinRARSetup.jar]
\"Set\"=dword:00000001

[HKEY_CURRENT_USERSoftwareWinRARSetup.lzh]
\"Set\"=dword:00000000

[HKEY_CURRENT_USERSoftwareWinRARSetup.rar]
\"Set\"=dword:00000001

[HKEY_CURRENT_USERSoftwareWinRARSetup.tar]
\"Set\"=dword:00000000

[HKEY_CURRENT_USERSoftwareWinRARSetup.tbz]

[HKEY_CURRENT_USERSoftwareWinRARSetup.tbz2]

[HKEY_CURRENT_USERSoftwareWinRARSetup.uue]
\"Set\"=dword:00000000

[HKEY_CURRENT_USERSoftwareWinRARSetup.zip]
\"Set\"=dword:00000000

[HKEY_CURRENT_USERSoftwareWinRARSetupLinks]
\"Desktop\"=dword:00000000
\"StartMenu\"=dword:00000000
\"Programs\"=dword:00000001


So a sample batch file that installs WinRAR might look like (wrprep.reg is the file above):


@ECHO OFF
TITLE WinRAR Setup
ECHO Installing WinRAR 3.0 . . .
CD \"%~dp0\"
CMD /Q /U /C  >>wrcfg.reg ECHO.\"DisplayIcon\"=\"%SystemDrive%Program FilesWinRARwinRAR.exe,0\"
CMD /Q /U /C  >>wrcfg.reg ECHO.\"InstallLocation\"=\"%SystemDrive%Program FilesWinRAR\"
regedit.exe /s .wrprep.reg
wrar300.exe /s
regedit.exe /s .wrcfg.reg
ECHO Done.


Here another file, wrcfg.reg, is used to fancy up the WinRAR entry in \"AddRemove Programs\". Two lines are appended to this file before it is loaded because the paths need the drive letter. The file wrcfg.reg looks like this:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstallWinRAR archiver]
\"DisplayName\"=\"WinRAR\"
\"DisplayVersion\"=\" 3.00\"
\"Publisher\"=\"Eugene Roshal\"
\"URLInfoAbout\"=\"http://www.rarlab.com\"
\"URLUpdateInfo\"=\"http://www.rarlab.com\"
\"VersionMajor\"=dword:00000003
\"VersionMinor\"=dword:00000000


C.II Preconfigured Settings for All Users



The sample batch file above only changes settings for the currently logged in user. To make all current and future users also have these settings as default, the registry entries need to be added for each user and to the default profile. Each user\'s registry hive, NTUSER.DAT, is located in their profile directory and the default profile is located in the \"Default User\" directory. So these hives each need to be loaded and then the above registry keys need to be added. This is of course easiest to do during a clean install before any users have been added.

One Method:



Here is a method using the Cmdlines.txt and winnt.sif functionality. It is less sophisticated than the next way and doesnt require reg.exe.

First thing to know is that during GUI mode setup, Windows uses the default user profile and thus all user specific changes made at this time will be present for all future users, since a new user\'s initial profile is just copied from the default profile when they first logon. So to load the settings for WinRAR, with wrprep.cfg in the $OEM$ folder, add the following line to Cmdlines.txt:


[Commands]
\"regedit.exe /s .wrprep.reg\"


However, it gets more interesting. Actually, HKEY_CURRENT_USER is mapped to the HKEY_USERS.DEFAULT key, which is the profile used when NO user is logged on (i.e. at the logon prompt); this hive is stored in the system32configdefault file. At the end of GUI mode setup, when setup is saving settings, it creates the default user profile by saving the current user profile to Default UserNTUSER.DAT. So while all the settings will be present for all future users, they will also REMAIN in this .DEFAULT profile, which may or may not be desireable. If needed just delete the entries from the .DEFAULT key after the default profile is saved.

This can be done in a [GUIRunOnce] command or it can be done at the end of GUI mode setup right after settings are saved. To do this requires setting the UserExecute parameter to the appropriate command line in the winnt.sif answer file (undocumented?). To run a command after setup has saved settings, add a line to winnt.sif like:


[SetupParams]
UserExecute=\"%SystemDrive%$WIN_NT$.~LS$OEM$ProfilesRemove.bat\"


Here, Remove.bat might look like:


@ECHO OFF
CD \"%~dp0\"
%SystemRoot%regedit.exe /s .RemovWin.reg .RemovNet.reg .RemovVid.reg .RemovApp.reg


and RemovApp.reg contains the lines:


Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USERSoftwareAdobe]

[-HKEY_CURRENT_USERSoftwareNico Mak Computing]

[-HKEY_CURRENT_USERSoftwareWinZip Computing]

[-HKEY_CURRENT_USERSoftwareWinRAR]


When loaded, this deletes the keys (that had just previously been added) from the .DEFAULT profile. But since this is after the default profile has been saved, the settings will be intact for all users including the admin (Note: the administrator profile is created at the first logon).

Another Method:



Another way is to run the batch file as a [GUIRunOnce] command and add some lines to it like:


SETLOCAL
SET tmpKey=HKUDefault
SET dirKey=\"HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList\" /v ProfilesDirectory
CD \"%~dp0\"
FOR /F \"skip=1 tokens=2*\" %%X IN (\'reg.exe QUERY %dirKey%\') DO FOR /F \"delims=\" %%Z IN (\'ECHO %%Y\') DO SET pdir=%%Z

ECHO Configuring Default User. . .
reg.exe LOAD %tmpKey% \"%pdir%Default UserNTUSER.DAT\"
reg.exe IMPORT \"winrar.reg\"
reg.exe UNLOAD %tmpKey%
ENDLOCAL


This uses reg.exe from the resource kit. It first queries the location of the profiles directory from the registry and then loads the default profile into the \"HKUDefault\" key (arbitrary name). After loading the entries in winrar.reg, it then unloads the hive. Here, winrar.reg would look just like the wrprep.reg above, except it would point to the key that the hive was loaded into, for example:


Windows Registry Editor Version 5.00

[HKEY_USERSDefaultSoftwareWinRAR]

[HKEY_USERSDefaultSoftwareWinRARSetup]
\"ShellExt\"=dword:00000001
\"CascadedMenu\"=dword:00000001
\"MenuIcons\"=dword:00000001
.
.
.


I have also been able to create similar unattended installations for Winzip and Acrobat Reader if anyone is interested.

17
Software / Windows 2000 unnatended with drivers on CD
« on: December 23, 2002, 07:10:38 AM »
In reply to:


BTW, did it worked on you doing a custom bootable distro-CD with $OEM$ on the root of the CD?
If you don\'t mind, can you post your sample WINNT.SIF, TXTSETUP.OEM files here?


I have not messed with the boot sector (win2k only CD). I am using the boot image ripped from my win2k sp1 oem cd. The $OEM$ folder is in the root. I think the OemFilesPath is relative to where the winnt.sif file resides, in other words, to the i386 folder.

The mass storage drivers were from the Intel Application Accelerator and the download came with a Txtsetup.oem file. You can get it from the intel site. Read the unattended installation section in the readme file. Follow the directions to extract the files only.

Here is a sample winnt.sif (with oem storage driver lines as prescribed in the readme file):


[Data]
    AutoPartition=\"0\"
    MsDosInitiated=\"0\"
    UnattendedInstall=\"Yes\"

[Unattended]
    UnattendMode=DefaultHide
    OemPreinstall=Yes
    OemFilesPath=\"..$OEM$\"
    OemPnPDriversPath=\"DriversMatrox;DriversIntelNIC;DriversHercules\"
    DriverSigningPolicy=Ignore
    ;;NonDriverSigningPolicy=Ignore
    OemSkipEula=Yes
    TargetPath=\"WIN2000\"
    Filesystem=LeaveAlone
    OverwriteOemFilesOnUpgrade=No

[MassStorageDrivers]
    \"Adaptec AIC-7899 Ultra160/m PCI SCSI Card\" = RETAIL
    \"Intel® 82801BA Ultra ATA Controller\" = OEM
    \"Primary IDE Channel\" = OEM
    \"Secondary IDE Channel\" = OEM

[OEMBootFiles]
    IdeBusDr.sys
    IdeChnDr.sys
    IdeChnDr.inf
    IATA3000.CAT
    TxtSetup.oem

[GuiUnattended]
    AdminPassword=blah
    AutoLogon=Yes
    AutoLogonCount=2
    OEMSkipRegional=1
    TimeZone=4
    OemSkipWelcome=1
    ProfilesDir=\"%SystemDrive%Users\"
    ;DetachedProgram=\"%SystemRoot%regedit.exe\"
    ;Arguments=\"/s E:ATApass2.reg\"
    ;DetachedProgram=\"%SystemDrive%$WIN_NT$.~LSI386svcpackdxsetup.exe\"
    ;Arguments=\"/windowsupdate /silent /packageinstall\"

;;[IncludeCatalog] EulaCopmlete get params from setuplog.txt
[SetupParams]
    UserExecute=\"%SystemDrive%$WIN_NT$.~LS$OEM$ProfilesRemove.bat\"

[UserData]
;    FullName=*
    FullName=\"User\"
    OrgName=\"\"
    ComputerName=BLAH


;;[SystemFileProtection]
    ;;SFCQuota=0

[GuiRunOnce]
    Command0=\"regedit.exe /s Customadmin.reg\"
    Command1=\"regedit.exe /s CustomURunOnce.reg\"
    Command2=\"CMD /Q /C CustomRunCmds.bat\"
    Command3=\"CMD /Q /C CustomAppsSetup.bat\"
    Command4=\"DriversASPIaspiinst.exe SILENT\"

[Components]
    accessopt = off
    ;paint = off
    cdplayer = off
    charmap=off
    cluster = off
    freecell = off
    fp_extensions = off
    indexsrv_system = off
    minesweeper = off
    ;media_clips = off
    ;media_utopia = off
    pinball = off
    solitaire = off
    chat = off
    dialer = off
    rec = off


[RegionalSettings]
;;;;LanguageGroup=13,4,12,7,8,1
    LanguageGroup=1
    Language=00000409


;[Branding]
;    BrandIEUsingUnattended=Yes
;;    IEBrandingFile=INSTALL.INS

;[Proxy]
;    Proxy_Enable=0
;    Use_Same_Proxy=1

;[URL]
;    Home_Page=http://www.microsoft.com/windows
;    Search_Page=http://www.yahoo.com
;    Quick_Link_1_Name=\"Customize Links.url\"
;    Quick_Link_1=\"http://www.microsoft.com/isapi/redir.dll?prd=ie&pver=6&ar=CLinks\"
;    Quick_Link_2_Name=\"Email Removed.url\"
;    Quick_Link_2=\"http://www.microsoft.com/isapi/redir.dll?prd=ie&ar=Email Removed\"
;    Quick_Link_3_Name=\"Windows.url\"
;    Quick_Link_3=\"http://www.microsoft.com/isapi/redir.dll?prd=ie&ar=windows\"
;    NoWelcome=1

;[FavoritesEx]

[Identification]
    JoinWorkgroup=NONE

[Networking]
    InstallDefaultComponents=No

[NetAdapters]
    Adapter1=params.Adapter1

[params.Adapter1]
    INFID=*

[NetClients]
    MS_MSClient=params.MS_MSClient

[NetServices]
    MS_SERVER=params.MS_SERVER

[NetProtocols]
    MS_TCPIP=params.MS_TCPIP

[params.MS_TCPIP]
    UseDomainNameDevolution=No
    EnableLMHosts=Yes
    AdapterSections=params.MS_TCPIP.Adapter1

[params.MS_TCPIP.Adapter1]
    SpecificTo=Adapter1
    DHCP=Yes
    WINS=No
    NetBIOSOptions=0

18
Software / Windows 2000 unnatended with drivers on CD
« on: December 11, 2002, 01:33:34 AM »
[Data]
    AutoPartition=\"0\"
    MsDosInitiated=\"0\"
    UnattendedInstall=\"Yes\"

[Unattended]
    UnattendMode=DefaultHide
    OemPreinstall=Yes
    OemFilesPath=\"..$OEM$\"
    OemPnPDriversPath=\"DriversMatrox;DriversIntelNIC\"
    DriverSigningPolicy=Ignore
    ;;NonDriverSigningPolicy=Ignore
    OemSkipEula=Yes
    TargetPath=\"WIN2000\"
    Filesystem=LeaveAlone
    OverwriteOemFilesOnUpgrade=No

;[MassStorageDrivers]
;    \"Adaptec AIC-7899 Ultra160/m PCI SCSI Card\" = RETAIL
;    \"Intel® 82801BA Ultra ATA Controller\" = RETAIL
;    \"Primary IDE Channel\" = RETAIL
;    \"Secondary IDE Channel\" = RETAIL

;[OEMBootFiles]
;    IdeBusDr.sys
;    IdeChnDr.sys
;    IdeChnDr.inf
;    IATA3000.CAT
;    TxtSetup.oem

[GuiUnattended]
    AdminPassword=psswd
    AutoLogon=Yes
    AutoLogonCount=2
    OEMSkipRegional=1
    TimeZone=4
    OemSkipWelcome=1
    ProfilesDir=\"%SystemDrive%Users\"
    DetachedProgram=\"%SystemDrive%$WIN_NT$.~LSI386svcpackdxsetup.exe\"
    Arguments=\"/windowsupdate /silent /packageinstall\"


In reply to:

Though the major problem is integrating HAL/3rd party RAID/SCSI controllers under Win2k/XP CD. There\'s a bug in the installer that prevents these from being installed properly, even given the right parameters. http://images.thetechguide.com/forum/public/style_emoticons/<#EMO_DIR#>/sad.gif\' class=\'bbc_emoticon\' alt=\':(\' />


What exactly is the problem? Its worked fine for me. I was even able to integrate drivers into the I386 distribution (and boot disks) by modifying TXTSETUP.SIF and DOSNET.INF, so it selects them on its own from the HW id.

19
Software / SlipStreaming Modified Files?
« on: October 17, 2002, 04:20:34 PM »
If it is a protected or signed file no, unless you can disabled SFC. Otherwise yes. You can use Compress.exe from the resource kit but i think makecab.exe \"filename\" works as well.

20
Software / Slipstream Happy - DX8.1b into Win2k...
« on: October 05, 2002, 05:21:18 AM »
Space - I think your right on that. Im just slowly working my way along here.. not really knowing what Im doing. I was gonna try something along those lines but my problem was fixed so... Ill give it a shot it If i get the time (I think it will take alot of test installs though). thing is, dx7 and dx8 use different files and stuff so it wont be simple replacement. Also, I suspect some stuff (registry entries.) etc. come from the setup.dll\'s and not just infs. dont you just love windows.

Fjellu - I dont know if i was clear about this but all the build files (in i386 and all .CABS) were replaced with their directx8.1b counterparts. This was the key to my problem because before, setup would call dxnt.inf to install directx7 and all its files, but then i would run dx81 from cmdlines and it would remove them but leaving a trace. So I had to get the dx7 files out of there.

And the main point for my post was the thing about the .cat files. Because if you just use the file names as given, \"dx8w2k.cat and \"dx8bda.cat\", in [ProductCatalogsToInstall], as I did in my first attempt ... it no work. And call me an idiot but I had no clue that the capitalization of the target filename is determined by the string in the (svcpack).inf\'s.

But the one file from Iexpress is most definately simplier. Its all about style though:) The way above is how the redistributables are packaged.

Pages: [1] 2