Posts posted by keul
I apply reg tweaks during first login (with autologon), then install apps and finally execute sysprep (with copyprofile).
It seems that first login is the best way to apply tweaks because if you do it before, HKCU won't be imported for default user.
However, I can't exactly mimic what I used to do during XP unattended install : whatever I do, some reg tweaks keep being erased by windows :
These settings seem to be overwritten when an account is first logged (ie when windows does its pseuso RunOnceEx things -> "Configuring Desktop", "Configuring Internet Explorer" ...).
I managed bypassing this issue by importing reg tweaks in a runonce key so that it's done after first account configuration. Then, at first logon, Administrator account has all tweaks applied.
But this only moves this issue one step beyond : when sysprep executes, copyprofile is successfully done (new user accounts got nearly all tweaks applied), but one more time "Configuring..." erases some of them for this new account.
Can't remember if I already tried re-adding runonce reg import just before executing sysprep so that reg tweaks import would be done for new account as well... Anyway, I find this method pretty much complicated for such a basic thing.
I've got the same issue here and I'm still trying to find an easy way to apply HKCU tweaks for default user (as for now, only hklm tweaks are applied and not even the true Administrator account with autologon inherits from hkcu, only .default has them applied but as it's been said it's only used when no user is logged on so it's of no use anyway)
If I understand correctly what I see in setupact.txt, CopyProfile seems to be run before RunSynchronous during specialize pass...
Your problem lies in the fact that you're missing this statement in <component name="Microsoft-Windows-Setup" ...>
Without this, $OEM$ folder won't be used at all, according to MS.
If you try to install non whql drivers, this is totally normal, or in other (microsoft) words : This behavior is by design.Windows automatically raises the driver signing policy from Ignore to Warn whenever an installation program tries to install a device driver that does not have a digital signature. This is a function of Windows File Protection to promote the overall stability of the operating system.
Well... if you think so, read my explanation again carefully, including step 2 :What it does :
1- Check for suffix files so it does not process shrinking if suffix does not exist.
2- Expand packed files (if you pack the files later for your unattended cd, you'll have better results if files are unpacked before)
And check the batch file I link to (nvShrink.cmd)
Here is the code, for everybody's convenience :
REM nvShrink : Nvidia driver shrinker for unattended installation
REM Usage : "nvShrink xx" xx=suffix for language files to keep
REM if no argument is supplied, suffix=eng
REM ie: "nvShrink fr" will keep french language files
REM version 1.0 by Keul for www.msfn.org
REM Language Suffix Checking
if "%1" == "" set SUFFIX=eng
if not exist nvrs%SUFFIX%.dl_ goto checkUnpacked
if not exist nvwrs%SUFFIX%.dl_ goto checkUnpacked
if not exist nvcp%SUFFIX%.hl_ goto checkUnpacked
if not exist nvwcp%SUFFIX%.hl_ goto checkUnpacked
if not exist nvrs%SUFFIX%.dll goto suffixError
if not exist nvwrs%SUFFIX%.dll goto suffixError
if not exist nvcp%SUFFIX%.hlp goto suffixError
if not exist nvwcp%SUFFIX%.hlp goto suffixError
REM Expanding files
if exist *.??_ expand -r *.??_
if exist *.cf ren *.cf *.cfg
if exist *.cp ren *.cp *.cpl
if exist *.dl ren *.dl *.dll
if exist *.ex ren *.ex *.exe
if exist *.hl ren *.hl *.hlp
if exist *.sy ren *.sy *.sys
if exist *.tv ren *.tv *.tvp
if exist *.xm ren *.xm *.xml
if exist *.??_ del /Q *.??_
REM Removing setup files
set FILELIST=(data1.cab data1.hdr data2.cab engine32.cab ikernel.exe layout.bin setup.bmp Setup.exe Setup.ini setup.inx setup.iss Setup16.bmp setup.skin setup.ibt)
FOR %%I IN %FILELIST% do if exist %%I del %%I
REM Removing language files
ren nvrs%SUFFIX%.dll nvrs%SUFFIX%._dl
ren nvwrs%SUFFIX%.dll nvwrs%SUFFIX%._dl
ren nvcp%SUFFIX%.hlp nvcp%SUFFIX%._hl
ren nvwcp%SUFFIX%.hlp nvwcp%SUFFIX%._hl
ren nvcpl.dll nvcpl._dl
ren nvcpl.hlp nvcpl._hl
ren nvwcplen.hlp nvwcplen._hl
if exist nvrs*.dll del /Q nvrs*.dll
if exist nvwrs*.dll del /Q nvwrs*.dll
if exist nvcp*.hlp del /Q nvcp*.hlp
if exist nvwcp*.hlp del /Q nvwcp*.hlp
ren *._dl *.dll
ren *._hl *.hlp
REM We're done
echo Error : Some language files with suffix "%suffix%" were not found. Shrink aborted.
So, do you really think the purpose is different ?
Don't you think this method is the same as this one (which was written 2 monthes ago) ?
In fact, every nvidia whql driver IS compressed, only beta drivers come already unpacked.
I've noticed a problem with your installer (I don't think it was there with 5.04) : I've just reinstalled windows and installed winamp.msi the way I always did before :
Winamp.msi Xlibrary=1 Xintex=1 Xmodernskin=1 Xaudio=1 Xnsv=1 Xvisual=1 Xextra=1 Xregopt=1 Xtray=1 Xname=XXXXX Xkey=XXXXX /QN
Everything installs as it should, but when I doubleclick on a mp3 file, winamp is launched but file is not played or even added to playlist (the same goes for right-click + Play in Winamp / Enqueue in Winamp).
After a quick look in registry, I found what caused the problem :
the key should be :
"C:\Program Files\Winamp\Winamp.exe" "%1"
instead of :
C:\Program Files\\Winamp\Winamp.exe "%1"
(I think the problem lies in missing quotes rather than in the doubled \)
Notice that quotes are missing in every winamp key, not just play\command.
Am I the only one affected by this problem ?
EDIT : Ok, maybe something else caused the problem. I tried the "repair" option from the msi file with no success. But desinstalling/reinstalling was enough to make it work, no need to modify any registry key.
One thing that could prevent Windows from rebooting is a peripheral in a "wait-state" (I had the same problem with a canon scanner until I installed drivers).
And here ?
BTW, I don't think you can install ATI or any other drivers no WHQL if windows already has one (according to my second post in the above topic). You will need setupapi.dll hacking or inf file removing.
It's been 6 months I'm using PDFCreator in my unattend cd with no problems at all, no need to install GScript or whatsoever (required files are already included), and install file is 7.21 Mo.
installation parameters :
PDFCreator-0_8_0_GNUGhostscript.exe /verysilent /norestart
download location :
That's what I'm trying to do right now
So, did anyone manage to install new non-whql drivers when old whql drivers are also present in drivers.cab during setup ?
I made a lot of tests with WinXpSP2 and couldn't obtain positive results.
My winnt.sif contains "DriverSigningPolicy = Ignore" and "NonDriverSigningPolicy = Ignore", I also use WatchDriversSigningPolicy.exe from Pyron, but these commands are only usefull to install non whql drivers that are NOT present in drivers.cab
I seriously doubt it can work, according to what Msdn says here:
I verified what is said here in setupapi.log after install : (it may not be exactly what you have, I traducted it from french)If you are using the entry DriverSigningPolicy = Ignore and you attempt to install a newer, unsigned copy of a driver that is distributed with Windows XP or Windows Server 2003, Setup installs the signed Windows XP driver instead of the unsigned drivers, in accordance with the ranking process used by the operating system.#I022 "PCI\VEN_10DE&DEV_0282" found in "C:\WINDOWS\Inf\nv4_disp.inf";.... #I023 Section d'installation réelle: nv4.Rang : 0x00002001...
#I022 "PCI\VEN_10DE&DEV_0282" found in "C:\Drivers\video\nVidia\nv4_disp.inf";...
#I087 Driver node can't be trusted, rank changed from 0x00002001 to 0x0000e001.
So after rank has been changed, windows automatically uses his own whql driver...
From MSDN :Description
Determines what should happen when an attempt is made to install any nondevice driver software that has not been certified.
It Seems that the default setting for it is "Ignore"
More information here:
Unsigned non-driver installation behavior
No Driver Signing Warning Is Displayed When You Install the Device Driver
Driver Signing Registry Values Cannot Be Modified Directly in Windows
I don't know if you use BtS driverpacks (lan and audio), but if it's the case, just unzip nForce files and remove AudioDrv, AudioUtl and Ethernet folders and any file in root folder (which means you keep only GART, IDE\WinXp, MemCtl and SMBUS). Remaining files will be something like 2.0Mb, just add these folders in OemPvpDriverPath and you're done.
This may solve issues :
1- If daemonscript installs to C:\, change the installation command to :
start /wait .\Daemonscript.msi /qn TARGETDIR="%ProgramFiles%\D-Tools"
It will then install to Daemon Tools folder.
2- I don't know if it was mentionned before, but you may encounter an issue with DaemonDriveInstall.DaemonScript file (telling that parameters on line 2 are incorrect). You need to have a blank line after DeviceCount|1| (the script parser needs it). So if your script is
file length should be 34 bytes and not 32.
I hope this helps...
Maybe with some reseach on this forum, you could manage to slipstream DirectX 9b into XP SP2... But that would be a lot of work to finally obtain an older version : don't you know that slipstreaming SP2 also updates directX to version 9.0c
Edit : too late...
And...ok well, little bump
I can't believe no-one is interested. Did I spend weeks and weeks coding this batch file for nothing ?
I've just made a script to remove the files listed above. I tested it with 65.xx and 66.xx with no problem at all.
you can get it here : nvShrink.cmd.
What it does :1- Copy nvShrink.cmd in your nvidia drivers folder.
2- Execute "nvShrink.cmd xx", xx being the suffix for the language files you want to keep (ex : "nvShrink fr" prevents *fr.dll and *fr.hlp from being removed). If no argument is given, default suffix "eng" is used.
3- Pack it with 7z, rar, cab or just install it to your system.1- Check for suffix files so it does not process shrinking if suffix does not exist.
2- Expand packed files (if you pack the files later for your unattended cd, you'll have better results if files are unpacked before)
3- Remove the file list given by prathapml
4- Rename temporarily the language files (hlp and dll) to keep
5- Delete any other language files
6- Rename files to keep back to their original extension.
Edit : I updated my script to remove some more files. I just tested it on the lastest beta 66.32 and everything went fine. It sized down from 25.3 Mb (original zip file with cabbed drivers inside the zip archive) to 6.85 Mb (7z archive with juste 1 language and uncabbed drivers inside archive).
So this confirms that Control Panel works with .inf installation during unattended setup.
I can confirm the files I mentionned above can also be removed with no problem at all (of course, you have to keep the suffix for your language).NVRS*.dll
It think so but I'm not 100% sure (I can't remember) because when installing these files in my current system, it may use old control panel files already installed.
I will tell you after my next unattended install (which will surely come when BtS release his new soundDriver Pack ).
You may remark 4 interesting groups of files with the same basename + a suffix corresponding to a particular language.
These files begin with :
I usually only keep those with FR and ENG suffix and I never had any error because of these removed files. (beware, there is an exception : I never tried to remove nvcpl.hlp because of its only 1 letter suffix but maybe it's safe to remove it too).
You can also remove *.cab and *.exe.
These steps have already been done an incredibly number of times by turbomcp and myself and we posted our results a few pages above.
Drvz.exe works :
1- *.7z files are unpacked
2- DevicePath is updated in registry before Windows starts Device Detection
However, when performing device detection, windows doesn't care about the new value of DevicePath. If you edit a vmware snapshot (RAM content) with an hex editor you can easily see that the old value in registry is not updated there (in memory) although it is really updated in \windows\system32\config\software.
So does anyone know a soft to find and replace a value in memory, as this is IMO the only way to get this method working ?
I would like it! Mine (xp french sp2) works a little better than yours, but remenber I get no driver install during setup (which is the point of this method)...
Maybe only french/canadian version work right
Thanks serialzs for your new drvz.exe.
I tested it and... well... it doesn't work. I mean, it's like hybrid method but without renaming files and with a nice window telling me 7z files found...
1- Yes I followed the manual
2- Yes files are unpacked in c:\driverz
3. Yes DevPath.exe adds everything in registry a few seconds after the files are unpacked.
4. No, windows doesn't use them during setup
5. After setup, a click on "update drivers" in "device manager" find drivers automatically in c:\driverz.
So the problem seems to be (with any method I tested - drvz.exe, presetup.cmd...) that my windows doesn't care about devicepath changes AFTER gui starts. But when it is changed before (by oempnpdriverpath or hivesft.inf modification), it works.
a sample autounattend.xml - working good
in Unattended Windows Vista/Server 2008
Posted · Edited by keul
prathapml: is your oemlogo displayed when you use the autounattend file submitted in your 1st post ?
Mine doesn't as windows stores the path in a REG_SZ key instead of a REG_EXPAND_SZ
mc: I use a modded version of prathapml's autounattend file, set network as "home" and never get network page on 1st startup. And now that I use sysprep with a second xml file with network set a "home", I don't get it either... Tell me if you need more information.