I am trying to retrieve the environment variable to detect whether the system is 32 or 64 bit.
But on 64 bit server the environment variable %processor_architecture%
is returning x86
instead of AMD64
.
Does anyone has any clue about this?
I am trying to retrieve the environment variable to detect whether the system is 32 or 64 bit.
But on 64 bit server the environment variable %processor_architecture%
is returning x86
instead of AMD64
.
Does anyone has any clue about this?
MOST RELIABLE SOLUTION:
Method 1:
(Two step Validation with
PROCESSOR_ARCHITECTURE
andPROCESSOR_ARCHITEW6432
)Method 2:
source: https://superuser.com/a/293143/249349
You may be getting the wrong environment variable. If your application is a 32-bit application running on a 64-bit OS the process version of this environment variable will return x86. If you want to find the architecture of the machine, you can grab it from the following registry entry:
Or if you're using .NET, then you can use this call to get it:
From the command line you can try this:
There is even a more simple solution using
cmd
:You can also get this from an environment variable,
PROCESSOR_ARCHITEW6432
. See this article for more info.