Jump to content

Will machine be able to run x64?


Br4tt3

Recommended Posts

Do u guyz know of any way of how to determine if a specific machine is capable of running x64 based operating systems using either WMI or some CLI tool? I wanna be able to have a script return if it is possible that this machine will allow u to run x64 based operating systems even though a x86 OS is installed!

Thanks....

Link to comment
Share on other sites


easiest answer is to check your processor. if its an intel Core Duo or any other dual/quad core it should run x64 with no problems. The only cores that wont are RISC processors like ARM, Apple G Cores and a few others. (Intel and AMD are know as CISC processors, so any CISC dual core should run it fine)

Link to comment
Share on other sites

Creating a WMI script that queries Win32_Processor and checks the processor will tell you everything you need to know:

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_Processor",,48)
For Each objItem in colItems
Wscript.Echo " ---------"
Wscript.Echo " CPU Check"
Wscript.Echo " ---------"
Wscript.Echo
Wscript.Echo "SystemName: " & objItem.SystemName
Wscript.Echo
Wscript.Echo "DeviceID: " & objItem.DeviceID
Wscript.Echo "SocketDesignation: " & objItem.SocketDesignation
Wscript.Echo
Wscript.Echo "NumberOfCores: " & objItem.NumberOfCores
Wscript.Echo "NumberOfLogicalProcessors: " & objItem.NumberOfLogicalProcessors
Wscript.Echo
Wscript.Echo "Manufacturer: " & objItem.Manufacturer
Wscript.Echo "Name: " & objItem.Name
Wscript.Echo "Description: " & objItem.Description
Wscript.Echo
Wscript.Echo "ProcessorId: " & objItem.ProcessorId
Wscript.Echo "ProcessorType: " & objItem.ProcessorType
Wscript.Echo
Wscript.Echo "CurrentClockSpeed: " & objItem.CurrentClockSpeed
Wscript.Echo "MaxClockSpeed: " & objItem.MaxClockSpeed
Wscript.Echo "ExtClock: " & objItem.ExtClock
Wscript.Echo "DataWidth: " & objItem.DataWidth
Wscript.Echo "L2CacheSize: " & objItem.L2CacheSize
Wscript.Echo "L3CacheSize: " & objItem.L3CacheSize
Wscript.Echo
Wscript.Echo "PowerManagementSupported: " & objItem.PowerManagementSupported
Wscript.Echo
Wscript.Echo "Status: " & objItem.Status
Next

Which produces this on my AMD test box:

 ---------
CPU Check
---------

SystemName: VISTA-PC

DeviceID: CPU0
SocketDesignation: CPU 1

NumberOfCores: 1
NumberOfLogicalProcessors: 1

Manufacturer: AuthenticAMD
Name: AMD Athlon(tm) 64 Processor 3700+
Description: AMD64 Family 15 Model 39 Stepping 1

ProcessorId: 078BFBFF00020F71
ProcessorType: 3

CurrentClockSpeed: 2193
MaxClockSpeed: 2193
ExtClock: 200
DataWidth: 64
L2CacheSize: 1024
L3CacheSize: 0

PowerManagementSupported: False

Status: OK

Link to comment
Share on other sites

Thanks for the replies...

Fair enough, but what u guyz are saying is that I will have to create some kind of dictionary that I will base my decision on? Like if, the script returns "Intel Core 2 Duo" then x64 will be fine.... I was more looking for some WMI property or something that would return x64Capable = True/False, 1/0 or something.....

Thanks....

Link to comment
Share on other sites

Thanks for the replies...

Fair enough, but what u guyz are saying is that I will have to create some kind of dictionary that I will base my decision on? Like if, the script returns "Intel Core 2 Duo" then x64 will be fine.... I was more looking for some WMI property or something that would return x64Capable = True/False, 1/0 or something.....

Thanks....

Pay attention :)

This WMI call in my script..

Wscript.Echo "DataWidth:				  " & objItem.DataWidth

...gives you the output...

DataWidth:				  64

That would be 32 if a 32bit processor, 64 for a 64bit processor.

Link to comment
Share on other sites

Sorry Cluberti... that did not do it...... the "DataWidth" WMI property only seemed to return the current loaded operating systems datawidth much like that "addresswidth" property.... In other words, if running the script on a x64 capable machine (Core 2 Duo) but it has an x86 operating system loaded, the script returns "32"....... Thanks anyways man, I guess I need to talk some C++ dudes to be able get that sorted out! :)

Link to comment
Share on other sites

This should still give it to you (although cpuinfo can be used too, I'm not against it, but this is at least scriptable):

	Wscript.Echo "Manufacturer:			   " & objItem.Manufacturer
Wscript.Echo "Name: " & objItem.Name
Wscript.Echo "Description: " & objItem.Description
Wscript.Echo
Wscript.Echo "ProcessorId: " & objItem.ProcessorId
Wscript.Echo "ProcessorType: " & objItem.ProcessorType

Manufacturer:			   AuthenticAMD
Name: AMD Athlon(tm) 64 Processor 3700+
Description: AMD64 Family 15 Model 39 Stepping 1

ProcessorId: 078BFBFF00020F71
ProcessorType: 3

You'd have to parse it though, for the name, description, or processorID.

Link to comment
Share on other sites

  • 1 month later...

I'm kind of in the same boat. I have a Sony Vaio VGN-FE770 that will install XP_32, Vista_32 and Vista_64, but balks at the starting windows part of the DOS install in XP64 and 2003_64. I've tried loading and slipstreaming the SATA drivers, but that makes no difference. Slipstreaming SP2 didn't either. WinPE64 and WinPE2_64 both boot on it. Near as I can guess there is some bios chicanery prevent its install. Anyone know a way to start the debugger for the DOS portion of the install?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...