WDS, WinPE and HALs on XP and Vista
#1
Posted 08 April 2008 - 07:29 AM
http://support.microsoft.com/kb/309283
Which says that if ACPI is enabled, XP will automatically detect the correct HAL.
But if it ends up being true that we cannot use images any longer to deploy our machines using Ghost, then I do not see where there is a difference between that and using the WDS and WinPE. With exception of Vista, you have to capture an existing XP image as a WIM, which basically makes it the same process as Ghost.
Someone tell if I am wrong or there is another way.
#2
Posted 08 April 2008 - 09:03 AM
#3
Posted 08 April 2008 - 10:17 AM
'On Error Resume Next
Set objWshShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
' Activate the partition
Call ActivateDisk()
' Customize the local sysprep.inf file based on the HAL type
Call UpdateSysprepinf ()
' Done, quit.
WScript.Quit
Sub ActivateDisk()
' Wait a few seconds, assign drive letter and activate
wscript.sleep 5000
cmd = "cmd /c diskpart.exe /s Activate.txt"
rc = objWshShell.run(cmd, 6, 1)
End Sub
Sub UpdateSysprepinf ()
' Find out the HAL type
sHalType = objWshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Enum\Root\ACPI_HAL\0000\HardwareID")
' Write HAL type to sysprep.inf
If sHalType(0) = "acpiapic_up" Then
WriteIni "c:\sysprep\sysprep.inf", "Unattended", "UpdateUPHAL", "ACPIAPIC_UP,%WINDIR%\Inf\Hal.inf"
ElseIf sHalType(0) = "acpiapic_mp" Then
WriteIni "c:\sysprep\sysprep.inf", "Unattended", "UpdateHAL", "ACPIAPIC_MP,%WINDIR%\Inf\Hal.inf"
End if
End Sub
Function ReadIni(file, section, item)
ReadIni = ""
file = Trim(file)
item = Trim(item)
Set ini = objFSO.OpenTextFile( file, 1, True)
Do While ini.AtEndOfStream = False
line = ini.ReadLine
line = Trim(line)
If LCase(line) = "[" & LCase(section) & "]" Then
line = ini.ReadLine
line = Trim(line)
Do While Left( line, 1) <> "["
'If InStr( 1, line, item & "=", 1) = 1 Then
equalpos = InStr(1, line, "=", 1 )
If equalpos > 0 Then
leftstring = Left(line, equalpos - 1 )
leftstring = Trim(leftstring)
If LCase(leftstring) = LCase(item) Then
ReadIni = Mid( line, equalpos + 1 )
ReadIni = Trim(ReadIni)
Exit Do
End If
End If
If ini.AtEndOfStream Then Exit Do
line = ini.ReadLine
line = Trim(line)
Loop
Exit Do
End If
Loop
ini.Close
End Function
Sub WriteIni( file, section, item, myvalue )
in_section = False
section_exists = False
item_exists = ( ReadIni( file, section, item ) <> "" )
wrote = False
file = Trim(file)
itemtrimmed = Trim(item)
myvalue = Trim(myvalue)
temp_ini = objFSO.GetParentFolderName(file) & "\" & objFSO.GetTempName
Set read_ini = objFSO.OpenTextFile( file, 1, True, TristateFalse )
Set write_ini = objFSO.CreateTextFile( temp_ini, False)
While read_ini.AtEndOfStream = False
line = read_ini.ReadLine
linetrimmed = Trim(line)
If wrote = False Then
If LCase(line) = "[" & LCase(section) & "]" Then
section_exists = True
in_section = True
ElseIf InStr( line, "[" ) = 1 Then
in_section = False
End If
End If
If in_section Then
If item_exists = False Then
write_ini.WriteLine line
write_ini.WriteLine item & "=" & myvalue
wrote = True
in_section = False
Else
equalpos = InStr(1, line, "=", 1 )
If equalpos > 0 Then
leftstring = Left(line, equalpos - 1 )
leftstring = Trim(leftstring)
If LCase(leftstring) = LCase(item) Then
write_ini.WriteLine itemtrimmed & "=" & myvalue
wrote = True
in_section = False
End If
End If
If Not wrote Then
write_ini.WriteLine line
End If
End If
Else
write_ini.WriteLine line
End If
Wend
If section_exists = False Then ' section doesn't exist
write_ini.WriteLine
write_ini.WriteLine "[" & section & "]"
write_ini.WriteLine itemtrimmed & "=" & myvalue
End If
read_ini.Close
write_ini.Close
If objFSO.FileExists(file) then
objFSO.DeleteFile file, True
End if
objFSO.CopyFile temp_ini, file, true
objFSO.DeleteFile temp_ini, True
End Sub
This post has been edited by TheReasonIFail: 08 April 2008 - 10:20 AM
#4
Posted 08 April 2008 - 12:36 PM
Does memory timing have any effect on the image at all? And if so, is there any documentation or editorial anywhere online I can find to view its effectiveness/non-effectiveness?
#5
Posted 08 April 2008 - 01:01 PM
#6
Posted 08 April 2008 - 01:05 PM
#7
Posted 08 April 2008 - 01:13 PM
fizban2, on Apr 8 2008, 01:05 PM, said:
But if your base image is syspreped using the ACPI HAL, you should be able to update it to any other HAL without a problem.
This post has been edited by TheReasonIFail: 08 April 2008 - 01:13 PM
#8
Posted 08 April 2008 - 10:51 PM
TheReasonIFail, on Apr 8 2008, 03:13 PM, said:
Actually that is not technically correct. You can update the HAL to another compatible HAL. You can force the change between non-compatible HAL's as the script above does but it is not supported by Microsoft.
#9
Posted 09 April 2008 - 06:40 AM
IcemanND, on Apr 8 2008, 10:51 PM, said:
Well, it works great for us here when the base PC is an ACPI PC.
#10
Posted 09 April 2008 - 07:06 AM
TheReasonIFail, on Apr 9 2008, 07:40 AM, said:
IcemanND, on Apr 8 2008, 10:51 PM, said:
Well, it works great for us here when the base PC is an ACPI PC.
i think we all agree the script will work as anyone who is updating their HAL in their XP image is doing the same thing, Iceman was just pointing out the specifics. back to the original post, Go download the Microsoft deployment Toolkit and the WAIK, you will be able to create both XP, 2003, Vista and 2008 based images from that tool, it will also intergrate into SCCM if you are looking to move to that from SMS
#11
Posted 10 April 2008 - 09:57 AM
fizban2, on Apr 9 2008, 09:06 AM, said:
TheReasonIFail, on Apr 9 2008, 07:40 AM, said:
IcemanND, on Apr 8 2008, 10:51 PM, said:
Well, it works great for us here when the base PC is an ACPI PC.
i think we all agree the script will work as anyone who is updating their HAL in their XP image is doing the same thing, Iceman was just pointing out the specifics. back to the original post, Go download the Microsoft deployment Toolkit and the WAIK, you will be able to create both XP, 2003, Vista and 2008 based images from that tool, it will also intergrate into SCCM if you are looking to move to that from SMS
Thanks I've already used the WAIK but our MS rep told us we can't use that anymore. So I am switching to OPK instead because of our licensing. It works the same. I've got a handle on Vista and 2008, but we get the choice of moving from Ghost to WDS for XP and I'm trying to make sure it will work out properly once we switch. The only issue I have with XP on HALs is the following:
We create XP images on a per-board basis, not a big mess of boards. So the only thing we will see in a different cfg with one image is perhaps a Celeron vs a Core 2 or on the other side a X64 vs a LE1620. Either way, the CPU is the only thing that will change. All of the boards we use are set up as ACPI. The deal is that XP Pro SP2 detects the HAL at the start of Windows loading so it won't crash if you change the processor out. Of course the original image needs to be made on a UP, because it is designed to scale to an MP if it detects a CPU change.
This is what is noted in the KB article I posted above under bullet 4. I also tested this using identicle configs except for CPU type. Install everything on the PC with the Celeron (including drivers and apps). Make note of the HWID in Devmgmt and the full HAL name given. Turn the machine off, take out the HDD, put it in the machine with the Core 2, boot up and compare against the HAL again. It changes to the MP HAL with no errors to be found.
So this is why I am wondering why it is even needed to change the HAL after imaging, or even have multiple images for different HALs in this case. Yes I understand the need for this if 1) you aren't using similar hardware 2) you aren't using XP Pro SP2 or newer. But since XP can autodetect the HAL, you should be able to use the same image for either MP or UP case. Of course you couldn't use it if you disabled ACPI or tried to put it on an IA64 or what have you.
Anyways its lunch time for me. Let's talk about this some more eh?
#12
Posted 10 April 2008 - 10:37 AM
I'm curious as to why your rep told you that you could not use the WAIK.
#13
Posted 10 April 2008 - 11:55 AM
IcemanND, on Apr 10 2008, 12:37 PM, said:
We do/will not use WDS to deploy to corporate pcs, ie workstations and servers within our company. We got this understanding:
WAIK is to deploy within your own company
OPK is to deploy onto machines that are to be sold/redistributed
In addition to using WDS with the OPK, we are also able to make product recovery media with it.
#14
Posted 26 April 2008 - 02:53 PM
TheReasonIFail, on Apr 8 2008, 09:17 AM, said:
So does that script automatically choose the multiprocessor ACPI HAL or the normal uniprocessor ACPI HAL based on what type of computer it's being installed on? Where in the setup process can I insert the script? Although I have used RIS in the past, I am new to WDS, and I'd like to not have to have two different images on the WDS server if possible.
#15
Posted 29 April 2008 - 10:30 AM
thefultonhow, on Apr 26 2008, 02:53 PM, said:
Well, the script doesn't choose the HAL, it updates sysprep.inf with whatever HAL is being used on the PC.
I have the script set to run after I've loaded the image on the drive using imagex.
I have one image for all the PC's I use and it works great for me.
#16
Posted 29 April 2008 - 01:34 PM
TheReasonIFail, on Apr 29 2008, 10:30 AM, said:
thefultonhow, on Apr 26 2008, 02:53 PM, said:
Well, the script doesn't choose the HAL, it updates sysprep.inf with whatever HAL is being used on the PC.
I have the script set to run after I've loaded the image on the drive using imagex.
I have one image for all the PC's I use and it works great for me.
How do you trigger the script to run?
#17
Posted 29 April 2008 - 05:21 PM
#18
Posted 12 May 2008 - 11:36 AM
#19
Posted 12 October 2008 - 11:12 AM
Is there any way to solve this by not touching to the bios and not get this **(
#20
Posted 12 October 2008 - 12:34 PM
Not by any chance 0x0000007b?
jaclaz



Help

Back to top









