February 23, 200719 yr 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....
February 23, 200719 yr 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)
February 23, 200719 yr http://www.cpuinfo.de/index.php?lang=en&am...amp;articleid=1This software tells you what instruction sets a CPU knows.
February 24, 200719 yr 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.StatusNextWhich produces this on my AMD test box: --------- CPU Check ---------SystemName: VISTA-PCDeviceID: CPU0SocketDesignation: CPU 1NumberOfCores: 1NumberOfLogicalProcessors: 1Manufacturer: AuthenticAMDName: AMD Athlon(tm) 64 Processor 3700+Description: AMD64 Family 15 Model 39 Stepping 1ProcessorId: 078BFBFF00020F71ProcessorType: 3CurrentClockSpeed: 2193MaxClockSpeed: 2193ExtClock: 200DataWidth: 64L2CacheSize: 1024L3CacheSize: 0PowerManagementSupported: FalseStatus: OK
February 24, 200719 yr Author 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....
February 25, 200719 yr 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: 64That would be 32 if a 32bit processor, 64 for a 64bit processor.
February 25, 200719 yr Author I guess I have to pay attention.... Thanks man....I will give it a go tomorrow and try it out!
February 26, 200719 yr Author 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!
February 26, 200719 yr or you could just use cpu info and check for AMD64 or EM64T instruction sets like SubZero suggests
February 26, 200719 yr 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.ProcessorTypeManufacturer: AuthenticAMDName: AMD Athlon(tm) 64 Processor 3700+Description: AMD64 Family 15 Model 39 Stepping 1ProcessorId: 078BFBFF00020F71ProcessorType: 3You'd have to parse it though, for the name, description, or processorID.
February 27, 200719 yr Author Thanks people for all of the suggestions!I am going for Clubertis suggestion and then parsing the info for "keywords".....
April 2, 200719 yr 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?
Create an account or sign in to comment