
Shamwari
Content Type
Profiles
Forums
Events
Posts posted by Shamwari
-
-
OK guys, how about "Does anyone know when this is created"? Is it after the WPI apps have installed. I need to have a VBScript looping to stay open until WPI is complete. I used to use the presence of the RunOnceEx title to keep the script looping until the apps had installed, but obviously I can't use this anymore.
0 -
How are you getting your fnsh_log.cmd to your system drive? It should be in the root of \$OEM$\$1\, is it?
0 -
Good question, I have only just upgraded yesterday from 4.35 which used RunOnceEx, so am still getting to grips with the new updates...
0 -
Have you tried doing an install without WPI and the GuiRunOnce entry in your WinNT.sif, just to check the installation works ok?
0 -
You are right, WPI no longer uses RunOnceEx.
0 -
I wonder if anyone can answer this:
I have noticed that the HKCU\Software\WPI key is created in the registry. Does anyone know when this is created, and why, and are any other keys created under other circumstances, such as aborting, completion, etc?
0 -
Under profile you can specify a home directory with a drive letter mapping, and you can specify a path when setting up the user: \\server_name\%username%
With regards My Documents being in that directory, you need to have a look at redirected folders using a group policy.
Hope that this helps.
0 -
The clients must be configured to look to your WSUS server, usually done via a group policy.
0 -
I don't know if this tool can help, but I found it very useful:
Hope it helps.
Shamwari
0 -
Bâshrat the Sneaky
Could I just clarify your recommendation on which to integrate into a clean source first. I have posted this topic after searching the forum, and wonder if others need this info. I was patching my source up to date with the latest hotfixes, and then integrating my drivers. When you do it this way round, however, your svcpack.inf gets blatted.
Thanks for all the great work and support on your DriverPacks.
Shamwari
0 -
Are you trying to automate the patching of your XP source with the latest hofixes? If you are, you could use the following cmd found at Gadgets and Tech news:
@Echo off
rem ////////////////////////////////////////////////////////////////////////////
rem // IntegrateAll.bat
rem // This Batch file integrates the hotfixes for Windows XP SP2
rem // Syntax:
rem // Integrateall <DistributionFolder>
rem ////////////////////////////////////////////////////////////////////////////
if "%~1" == "-p" goto Process
rem ////////////////////////////////////////////////////////////////////////////
rem // Main routine
rem // %1 contains Options
rem //
rem //
rem // Verify that we are pointing to a distribution folder base
rem //
if exist "%~1\I386" goto FolderExists
echo -- "%~1" is not a distribution folder.
echo Syntax:
echo IntegrateAll ^<DistributionFolder^>
goto END
:FolderExists
echo ::: Integrating Updates :::
set DISTDIR="%~1"
set HFINT="%~1\i386\svcpack\HFINT.DAT"
set HFINTTEMP="%~1\i386\svcpack\HFINT.TMP"
rem //
rem // Do 885835 and then 885250 to start with. There is a conflict here. So
rem // we need to do some special processing. Note: 885835 is superceeded by
rem // 885250 but we want an entry so that the hotfix show as installed
rem //
call %0 -p KB885835 "KB885835.exe"
rem // Modify the line mrxsmb.sys (change it to mrxsmb.sys.tmp)
for /f "usebackq" %%L in (%HFINT%) DO (
if %%L==mrxsmb.sys (
echo %%L.tmp>>%HFINTTEMP%
) else (
echo %%L>>%HFINTTEMP% )
)
move /y %HFINTTEMP% %HFINT% > NUL
rem // Integrate 85250
call %0 -p KB885250 "KB885250.exe"
rem // Modify the line back (change the mrxsmb.sys.tmp back to mrxsmb.sys)
for /f "usebackq" %%L in (%HFINT%) DO (
if %%L==mrxsmb.sys.tmp (
echo mrxsmb.sys>>%HFINTTEMP%
) else (
echo %%L>>%HFINTTEMP%
)
)
move /y %HFINTTEMP% %HFINT% > NUL
rem //
rem // Now integrate all the rest of the hotfixes.
call %0 -p KB873339 "KB873339.exe"
call %0 -p KB885626 "KB885626.exe"
call %0 -p KB885836 "KB885836.exe"
call %0 -p KB886185 "KB886185.exe"
call %0 -p KB887742 "KB887742.exe"
call %0 -p KB888113 "KB888113.exe"
call %0 -p KB888302 "KB888302.exe"
call %0 -p KB890046 "KB890046.exe"
call %0 -p KB890859 "KB890859.exe"
call %0 -p KB891781 "KB891781.exe"
call %0 -p KB893066 "KB893066.exe"
call %0 -p KB893756 "KB893756.exe"
call %0 -p KB893803 "KB893803.exe"
call %0 -p KB894391 "KB894391.exe"
call %0 -p KB896358 "KB896358.exe"
call %0 -p KB896422 "KB896422.exe"
call %0 -p KB896423 "KB896423.exe"
call %0 -p KB896424 "KB896424.exe"
call %0 -p KB896428 "KB896428.exe"
call %0 -p KB896688 "KB896688.exe"
call %0 -p KB899587 "KB899587.exe"
call %0 -p KB899589 "KB899589.exe"
call %0 -p KB899591 "KB899591.exe"
call %0 -p KB900725 "KB900725.exe"
call %0 -p KB901017 "KB901017.exe"
call %0 -p KB901214 "KB901214.exe"
call %0 -p KB902400 "KB902400.exe"
call %0 -p KB904706 "KB904706.exe"
call %0 -p KB905414 "KB905414.exe"
call %0 -p KB905749 "KB905749.exe"
echo.
echo ::: Done :::
echo.
goto END
rem ////////////////////////////////////////////////////////////////////////////
rem ////////////////////////////////////////////////////////////////////////////
:Process
rem //
rem // %2 will contain the KB number
rem // %3 will contain the Exe file name
rem //
echo Integrating %2
"%~3" /integrate:%DISTDIR% /passive
:EndProcess
goto END
rem ////////////////////////////////////////////////////////////////////////////
:END0 -
3 laptops and 2 fairly chunky PCs.
0 -
Also, any user with admin privelleges will be able to reset this password.
0 -
dlevens
Excellent post, I support 10 000 PCs which are rebuilt on a regular basis, and I can confirm that you can use one image for all hardware. We use an unattended install to create the image, and I would just like to add some advice to those trying to achieve this:
Add the following to your unattend.txt/winnt.sif
[Unattended]
ComputerType = "Advanced Configuration and Power Interface (ACPI) PC", RetailYou will then have an image that when syspreped will work on any acpi compliant PC (we are still supporting PC over 4 years old)
Any PC that has problems imaging with this image can have the unattended install forced on it, and we know it will be identical to the image.
If you change software versions regularly, keep the software installs outside the image, i.e. in runonceex first map a drive, and then install add on software over the network.
The advantage of an image is that it is a 32bit environment, so you can add as many drivers as you wish without hitting the DOS limitations of an unattended network installation.
The second thing you need to do to deal with different mass storage devices is add the following to your sysprep.inf
[Sysprep]
BuildMassStorageSection = Yescableguy_uk:
Both installs have their uses, but in my opinion, if you can create a "universal image", it beat the unattended install hands down in both speed and robustness. However, to create a good image, in my opinion, you need a good unattended installation to create it. It is alot easier changing things in one place, untill you have an unattended install you are satisfied with. At this point you sysprep the result, create your image, and freeze development on both.
Kind regards and good luck.
0 -
This sounds like a virus to me too. You could try using Stinger to cure if it is a fairly recent virus (Stinger only checks for a subset of viruses). If the virus includes a backdoor trojan, I would seriously consider a rebuild of XP.
Spyware etc: you can Google SpyBot and AdAware for utilities to check your system.
0 -
OK, how about RyanVM's MSFN Files Page Post SP2 Update Pack?
0 -
druiddk
Thanks for the info, I will test this in our environment and report back. It just seems too easy to me to be true!
Regards0 -
The digital Scalextrix set with cordless controllers... For my 4 year old son of course!
0 -
I know this sounds obvious, but why don't you do a clean XP install with SP2 already slipstreamed?
0 -
How about the following batch I found on http://www.nzgadget.com/ article posted Sunday, September 11, 2005:
"Put the following into a batch file (I called it IntegrateAll.bat). Execute the batch file with the command:
IntegrateAll C:\XP"
@Echo off
rem ////////////////////////////////////////////////////////////////////////////
rem // IntegrateAll.bat
rem // This Batch file integrates the hotfixes for Windows XP SP2
rem // Syntax:
rem // IntegrateAll <DistributionFolder>
rem ////////////////////////////////////////////////////////////////////////////
if "%~1" == "-p" goto Process
rem ////////////////////////////////////////////////////////////////////////////
rem // Main routine
rem // %1 contains Options
rem //
rem //
rem // Verify that we are pointing to a distribution folder base
rem //
if exist "%~1\I386" goto FolderExists
echo -- "%~1" is not a distribution folder.
echo Syntax:
echo IntegrateAll ^<DistributionFolder^>
goto END
:FolderExists
echo ::: Integrating Updates :::
set DISTDIR="%~1"
set HFINT="%~1\i386\svcpack\HFINT.DAT"
set HFINTTEMP="%~1\i386\svcpack\HFINT.TMP"
rem //
rem // Do 885835 and then 885250 to start with. There is a conflict here. So
rem // we need to do some special processing. Note: 885835 is superceeded by
rem // 885250 but we want an entry so that the hotfix show as installed
rem //
call %0 -p KB885835 "WindowsXP-KB885835-x86-ENU.exe"
rem // Modify the line mrxsmb.sys (change it to mrxsmb.sys.tmp)
for /f "usebackq" %%L in (%HFINT%) DO (
if %%L==mrxsmb.sys (
echo %%L.tmp>>%HFINTTEMP%
) else (
echo %%L>>%HFINTTEMP% )
)
move /y %HFINTTEMP% %HFINT% > NUL
rem // Integrate 85250
call %0 -p KB885250 "WindowsXP-KB885250-x86-ENU.exe"
rem // Modify the line back (change the mrxsmb.sys.tmp back to mrxsmb.sys)
for /f "usebackq" %%L in (%HFINT%) DO (
if %%L==mrxsmb.sys.tmp (
echo mrxsmb.sys>>%HFINTTEMP%
) else (
echo %%L>>%HFINTTEMP%
)
)
move /y %HFINTTEMP% %HFINT% > NUL
rem //
rem // Now integrate all the rest of the hotfixes.
call %0 -p KB888302 "WindowsXP-KB888302-x86-ENU.exe"
call %0 -p KB887472 "WindowsXP-KB887472-x86-enu.exe"
call %0 -p KB891781 "WindowsXP-KB891781-x86-ENU.exe"
call %0 -p KB888113 "WindowsXP-KB888113-x86-ENU.exe"
call %0 -p KB867282 "WindowsXP-KB867282-x86-ENU.exe"
call %0 -p KB873333 "WindowsXP-KB873333-x86-ENU.exe"
call %0 -p KB890175 "WindowsXP-KB890175-x86-ENU.exe"
call %0 -p KB886185 "WindowsXP-KB886185-x86-enu.exe"
call %0 -p KB885836 "WindowsXP-KB885836-x86-ENU.exe"
call %0 -p KB873339 "WindowsXP-KB873339-x86-ENU.exe"
call %0 -p KB887742 "WindowsXP-KB887742-x86-ENU.exe"
call %0 -p KB883939 "WindowsXP-KB883939-x86-ENU.exe"
call %0 -p KB890046 "WindowsXP-KB890046-x86-ENU.exe"
call %0 -p KB890859 "WindowsXP-KB890859-x86-ENU.exe"
call %0 -p KB893066 "WindowsXP-KB893066-v2-x86-ENU.exe"
call %0 -p KB893086 "WindowsXP-KB893086-x86-ENU.exe"
call %0 -p KB896358 "WindowsXP-KB896358-x86-ENU.exe"
call %0 -p KB896422 "WindowsXP-KB896422-x86-ENU.exe"
call %0 -p KB896428 "WindowsXP-KB896428-x86-ENU.exe"
call %0 -p KB898461 "WindowsXP-KB898461-x86-ENU.exe"
call %0 -p KB903235 "WindowsXP-KB903235-x86-ENU.exe"
call %0 -p KB901214 "WindowsXP-KB901214-x86-ENU.exe"
call %0 -p KB893803v2 "WindowsInstaller-KB893803-v2-x86.exe"
call %0 -p KB896727 "WindowsXP-KB896727-x86-ENU.exe"
call %0 -p KB899587 "WindowsXP-KB899587-x86-ENU.exe"
call %0 -p KB894391 "WindowsXP-KB894391-x86-ENU.exe"
call %0 -p KB899588 "WindowsXP-KB899588-x86-ENU.exe"
call %0 -p KB896423 "WindowsXP-KB896423-x86-ENU.exe"
call %0 -p KB899591 "WindowsXP-KB899591-x86-ENU.exe"
call %0 -p KB893756 "WindowsXP-KB893756-x86-ENU.exe"
echo.
echo ::: Done :::
echo.
goto END
rem ////////////////////////////////////////////////////////////////////////////
rem ////////////////////////////////////////////////////////////////////////////
:Process
rem //
rem // %2 will contain the KB number
rem // %3 will contain the Exe file name
rem //
echo Integrating %2
"%~3" /integrate:%DISTDIR% /passive
:EndProcess
goto END
rem ////////////////////////////////////////////////////////////////////////////
:ENDDisclaimer: this is not my work, but it works a charm, and make updating a clean XP source a doddle.
Regards
0 -
Try a regtweak, we used to use the following before migrating to Local Group Policies. We apply retweaks using RunOnceEx:
[code][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sr]
"Start"=dword:00000004
"ImagePath"=hex(2):5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
74,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,52,\
00,49,00,56,00,45,00,52,00,53,00,5c,00,73,00,72,00,2e,00,73,00,79,00,73,00,\
00,00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sr\Parameters]
"FirstRun"=dword:00000001[/code]
Regards0 -
Does this happen all the time, or just when you first boot up into Windows? I know that, although necessary, anti virus programs (of which Symantec is one of the worst offenders) eat a lot of resource, especially if they are trying to check for updates and/or do a system scan on first log on of the day, ie it may have missed a scheduled system scan during the night, so runs it the next time you boot your PC up. I would disconnect from the Internet, uninstall the anti virus program, to see if this is what is causing it.
On the other hand, if you have an unattended Windows CD/DVD, you can't beat a clean install. In my experience, this is often by far the quickest solution, even though you don't get to the bottom of the root cause of the problem (and the obvious experience you get from going through the pain!!!)
Regards
0 -
Make sure $OEM$ is at the same level as i386 - not inside it. MS documentation is wrong in this account as it tells you to place $OEM$ inside i386. This is incorrect. $OEM$ should be alongside i386.
For a CD install this is correct, but for a network install the $oem$ dir should be inside the i386 dir. The OemFilesPath statement should point to the root of the i386 dir in your distribution share. Without this statement, the $oem$ dir and all subdirs will be ignored. The driver dir should in fact be in the \$oem$\$1 dir.
Regards
0 -
Don't know if this is any use to anybody, but this is a tool I have used:
Very useful for PC Name = MAC address
Also same tool can be used on more than just XP.
He add a VB script for serial numbers:
'
' Example VB Script for passing serial number from BIOS to WSName
'
' Edit Const's as required
'
' Note that some BIOS's may be require the serial number to be trimmed to
' fit within the allows 15 characters, my Toshiba Tecra 8100 for example
' returns : 70013268,PT810A-12C52,PMAT2A12C522/S3A0305D001
' The sticker on the back just says : 70013268J, as I can determine the
' manufacturer and model I can trim this down easily enough
'
' Some BIOS offer the ability to store asset information, I don't have access
' to one of these for testing but I assume the process will be very similar
'
' WMI support was introduced with Windows 2000 (?check this) so you'll need to
' use another mechanism to retrieve the serial number on older Windows machines
'
Option Explicit
Const PATH_TO_WSNAME = "C:\WSNAME.EXE"
Const WSNAME_PARAMETERS = "/REBOOT"
Dim strSerialNumber, strTEMP, strCommandLine, fso, WshShell
set fso = CreateObject("Scripting.FileSystemObject")
set WshShell = WScript.CreateObject("WScript.Shell")
'Check WSName exists
if not fso.FileExists(PATH_TO_WSNAME) then
WScript.Echo "ERROR, Could not find WSNAME in " & fso.GetParentFolderName(PATH_TO_WSNAME)
WScript.Quit(1)
end if
' --- Get the serial number, abort script on error
if Not GetWMIStuff("Win32_BIOS","SerialNumber",strSerialNumber) then
WScript.Echo "ERROR, Could not retrieve serial number"
WScript.Quit(1)
end if
' --- If we got this far then we have the serial number, if you want to see it
' --- uncomment the next line
'WScript.Echo "The raw serial number is " & strSerialNumber
' --- Tidy up the serial number, if required
strSerialNumber = TidySerialNumber(strSerialNumber)
' --- Uncomment the next line if you want to see it the result
'WScript.Echo "The tidied serial number is " & strSerialNumber
' --- Add leading Alpha characters to avoid DNS confusion
strSerialNumber="WKS-" & strSerialNumber
'WScript.Echo "The tidied serial number is " & strSerialNumber
' --- Build Command Line, to check out the command line uncomment
strCommandLine = PATH_TO_WSNAME & " /N:" & strSerialNumber & " " & WSNAME_PARAMETERS
WScript.Echo "About to run the following command:" & vbCRLF & vbCRLF & strCommandLine
' --- Now call WSName with the serial number
Call WshShell.Run(strCommandLine,1,FALSE)
' --- Game Over!
' ---------------------- Helper Functions ----------------------
Function GetWMIStuff(strInstance,strProperty,strResult)
Dim colWMIStuff, objWMI, propWMI
GetWMIStuff=False
Set colWMIStuff= GetObject("winmgmts:").InstancesOf(strInstance)
For Each objWMI In colWMIStuff
For each propWMI in objWMI.Properties_
If (Not IsNull(propWMI.Value) AND UCase(propWMI.Name) = UCase(strProperty)) Then
strResult=propWMI.Value
GetWMIStuff=True
Exit Function
End If
Next
Next
End Function
' --------------------------------------------------------------
Function TidySerialNumber(strSerialNumber)
Dim strModel
On Error Resume Next ' Turn off error checking
TidySerialNumber=strSerialNumber
Call GetWMIStuff("Win32_BIOS","Description",strModel)
if Instr(UCase(strModel),"TECRA8100") then ' This will a Tecra8100. I know how to tidy up.
TidySerialNumber=Left(strSerialNumber,Instr(strSerialNumber,",")-1) ' Trim at the first comma
end if
On Error Goto 0 ' Turn error checking back on
End FunctionRegards
0
WPI Problem
in Windows Post-Install Wizard (WPI)
Posted
It all looks fine then. Maybe there was a corruption during the ISO creation stage? Have you tried recreating the ISO and burning another CD/DVD?