How can I use WMI and Powershell to determine if a computer running a 32-bit operating system can support a 64-bit operating system?
Below is a sample Powershell (Windows Powershell - WPS) script that will detect if a computer that is running a 32-bit operating system will support a 64-bit operating system using WMI (Windows Management Instrumentation).
$strComputerName = "."
$strCpuArchitecture = ""
$intCurrentAddressWidth = 0
$intSupportableAddressWidth = 0
$objWmi = Get-WmiObject -class "Win32_Processor" -namespace "root\cimV2" -computer $strComputerName
$intCurrentAddressWidth = $objWmi.AddressWidth
$intSupportableAddressWidth = $objWmi.DataWidth
switch ($objWmi.Architecture)
{
0 {$strCpuArchitecture = "x86"}
1 {$strCpuArchitecture = "MIPS"}
2 {$strCpuArchitecture = "Alpha"}
3 {$strCpuArchitecture = "PowerPC"}
6 {$strCpuArchitecture = "Itanium"}
9 {$strCpuArchitecture = "x64"}
}
if ($intCurrentAddressWidth -eq $intSupportableAddressWidth)
{
"System Type: $intCurrentAddressWidth-bit operating system - Processor Architecture: $strCpuArchitecture"
}
else
{
"System Type: $intCurrentAddressWidth-bit operating system ($intSupportableAddressWidth-bit capable) - Processor Architecture: $strCpuArchitecture"
}
Sample Output (32-bit Windows Vista with a 64-bit capable CPU):
System Type: 32-bit operating system (64-bit capable) - Processor Architecture: x64
For more information on Windows Powershell:
https://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx
For more information on downloading Windows Powershell v1:
https://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx
Comments
- Anonymous
January 11, 2010
Very helpful. Thanks!