I know this is an OT but I have been beating my head against the wall with this issue today as well, unrelated to LS. I don't think this is a LS issue at all. I think it is an WMI issue in Win XP and 2003(?). Please correct me if I am totally wrong here.
If I use generic WMI Explorer against two identical HP 6930p machines(P8600 Core2Duo) a 32bit XP install returns all possible indicators from CIM_Processor and WIN32_Processor as 32bit.
Doing the same on a 32bit Windows 7 machine correctly reports a 32bit OS (addressWidth)running on a 64bit Processor(datawidth, architecture and Caption).
Installing the hotfix for the correct processor name, does not resolve this. Updating the BIOS firmware did not resolve it either. I didn't try the XP hotfix for correct # of cores/MT ability.
There was some reference to this issue and how WMI changed with Vista at Technet's TheScriptingGuy blog but all the links i found are outdated and I have not been able to find the post.
using http://web.inter.nl.net/hcc/J.Steunebrink/chkcpu.htm
and psexec the following might be a workaround
i have not tested the script but the source was a subscription site, so I could not link to it. I tested the chkcpu, it works as designed.
Set oWS = CreateObject("WScript.Shell")
Set oFS = CreateObject("Scripting.FileSystemObject")
sComputer = "ComputerNameHere"
sScriptName = WScript.ScriptName
sScriptPath = WScript.ScriptFullName
sTemp = Replace(sScriptName, ".vbs", ".txt")
sTempFile = Replace(sScriptPath, sScriptName, sTemp)
oWS.Run "cmd.exe /c psexec \\" & sComputer & " -c C:\Windows\System32\chkcpu32 /v >" & Chr(34) & sTempFile & chr(34),0 ,True
Set oTempFile = oFS.OpenTextFile(sTempFile, 1)
Do While oTempFile.AtEndOfStream <> True
sText = oTempFile.ReadLine
If Instr(sText, "64-bit support") Then
sText = LCase(sText)
If InStr(sText, "no") Then
oWS.Popup "CPU with 64-bit support NOT detected", ,sComputer , vbExclamation
Else
oWS.Popup "CPU with 64-bit support DETECTED!", ,sComputer , vbInformation
End If
Exit Do
End If
Loop
oTempFile.Close
oFS.DeleteFile(sTempFile)
maybe this will help someone or someone will post how to pull the correct 64bit flag from WMI in XP.