Skype for Business Online operated by 21Vianet More…Less
When you install Skype for Business, you need to choose between a 32-bit version installer and a 64-bit version installer. Use the 32-bit installer if you’re using a 32-bit version of Windows and the 64-bit installer with a 64-bit version of Windows. To determine which version of Windows you’re using, follow the steps in Method 1 or 2. If one method doesn’t work, try the other.
Method 1: View the System window in Control Panel
-
Click Start, type system in the search box, and, under Control Panel, click System.
Note: If System isn’t listed under Control Panel in the search results, click Control Panel to see more results.
-
Under System, look at the System type entry. It will say either 32-bit Operating System or 64-bit Operating System.
Method 2: View the System Information window
-
Click Start, type system in the search box, and, under Programs, click System Information.
Note: If System Information isn’t listed under Programs in the search results, click Programs to see more results.
-
In the right pane, look at the System Type entry. For a 32-bit version operating system, it will say X86-based PC. For a 64-bit version, you’ll see X64-based PC.
To choose the installer
When you know which version of Skype for Business you need, choose the Skype for Business installer, and then install Skype for Business.
-
Open the Office 365 portal, and sign in.
-
Under Get started with Office 365, click PC & Mac.
-
(Optional) In the Language list, select a different language.
-
Under Version, do one of the following:
-
If you’re running the 32-bit version of Windows, skip to Step 4.
-
If you’re running the 64-bit version of Windows, click Advanced, and then, in Version list, select 64-bit.
-
-
Click Install.
Top of Page
Need more help?
Want more options?
Explore subscription benefits, browse training courses, learn how to secure your device, and more.
Communities help you ask and answer questions, give feedback, and hear from experts with rich knowledge.
What to Know
- All Windows 11 installations are 64-bit, and Windows XP is most likely 32-bit.
- For Windows 10, 8 & 7, go to Control Panel > System and Security > System. Check System type.
- Windows Vista is similar, but go to Control Panel > System and Maintenance > System.
Not sure if your installed version of Windows is 32-bit or 64-bit? One quick way to tell is by looking at information about your operating system installation in Control Panel. However, the specific steps involved depend a lot on which operating system you’re using.
Windows 11, 10, 8, 7 & Vista: 64-Bit or 32-Bit?
Windows 11 only comes in 64-bit, and Windows 7 Starter Edition and Windows Vista Starter Edition are available only in 32-bit.
Here’s how to tell if you have a 64-bit or 32-bit version of Windows 10, 8, 7, and Vista:
-
Open the Control Panel.
You can check your Windows system type much faster from the Power User Menu (WIN + X). With that menu open, select System and then skip to Step 4.
-
Choose System and Security within Control Panel, or System and Maintenance if you’re on Windows Vista.
You won’t see a System and Security link in Control Panel if your view is set to either Large icons or Small icons. If so, select System and then skip to Step 4.
-
Choose System.
This screen can also be opened by executing the control /name Microsoft.System command from Run or Command Prompt.
-
Find the System area, located under the large Windows logo. Within there, next to System type, it will say either 64-bit Operating System or 32-bit Operating System.
The second bit of information, either x64-based processor or x86-based processor, indicates the hardware architecture. It’s possible to install a 32-bit edition of Windows on either an x86 or x64 based system, but a 64-bit edition can only be installed on x64 hardware.
Windows XP: 64-Bit or 32-Bit?
The General tab in System Properties provides all the details.
-
Select Start and then choose Control Panel.
-
Select Performance and Maintenance.
If you don’t see this link, open System and then go down to Step 4.
-
Choose System.
-
Locate the System area to the right of the Windows logo.
You should be on the General tab in System Properties.
-
Under System is basic information about the version of Windows XP installed on your computer:
- Microsoft Windows XP Professional Version [year] means you’re running Windows XP 32-bit.
- Microsoft Windows XP Professional x64 Edition Version [year] means you’re running Windows XP 64-bit.
There are no 64-bit versions of Windows XP Home or Windows XP Media Center Edition. If you have either of these editions of Windows XP, you’re running a 32-bit operating system.
-
Now you know if you’re running Windows XP 64-bit or 32-bit.
Check the ‘Program Files’ Folder Name
This method isn’t as easy to understand as using Control Panel, but it does provide a quick way of checking on whether you’re running a 64-bit or 32-bit version of Windows, and is especially helpful if you’re looking for this information from a command line tool.
If your version of Windows is 64-bit, you’re able to install both 32-bit and 64-bit software programs, so there are two different «Program Files» folders on your computer. However, 32-bit versions of Windows have just one folder, since they can only install 32-bit programs.
Here’s an easy way to comprehend this…
Two program folders exist on a 64-bit version of Windows:
- 32-bit location: C:\Program Files (x86)\
- 64-bit location: C:\Program Files\
‘Program Files’ Folders in Windows 10 64-bit.
32-bit versions of Windows have just one folder:
- 32-bit location: C:\Program Files\
‘Program Files’ Folder in Windows 10 32-bit.
Therefore, if you find only one folder when checking this location, you’re using a 32-bit version of Windows. If there are two «Program Files» folder, you’re for sure using a 64-bit version.
You can also use the dir command in Command Prompt to view these folders. Just make sure to execute the command from the root of the C drive.
Is Windows 64-bit or 32-bit?
If you’re running Windows XP, chances are it’s 32-bit. However, if you’re on Windows 10, Windows 8, Windows 7, or Windows Vista, the chance that you’re running a 64-bit version goes up considerably. All Windows 11 installations are 64-bit.
Of course, this isn’t something you want to take a guess at. Knowing if your copy of Windows is 32-bit or 64-bit becomes very important when installing device drivers for your hardware and choosing between certain kinds of software.
FAQ
-
What’s the difference between Windows 32-bit and 64-bit?
The difference between Windows 32-bit and 64-bit is processing power. A 64-bit processor can handle more data simultaneously, so it’s more capable overall. Most new processors are based on the 64-bit architecture and are fully compatible with 32-bit operating systems.
-
How do I run 32-bit programs on 64-bit Windows?
To run 32-bit applications on 64-bit Windows, right-click the application and go to Properties > Compatibility. Select Run this program in compatibility mode for and choose the version in which you want to run the program.
-
How do I upgrade from 32-bit to 64-bit Windows 10?
To upgrade Windows 10 to 64-bit, you’ll have to perform a clean install, so back up all your data; ensure you have a 64-bit CPU. Download the Windows Media Creation Tool to create a 64-bit Win 10 installation flash drive. Shut down your computer, plug in the flash drive, and follow the Windows setup prompts.
Thanks for letting us know!
Get the Latest Tech News Delivered Every Day
Subscribe
on May 19, 2019
There are multiple ways to check whether a Windows computer is running 32-bit OS or of 64-bit one.
Check 32 or 64 bit using WMIC
You can get to know the OS architecture by running the below simple command.
wmic os get OSArchitecture
Example:
c:\>wmic os get OSArchitecture OSArchitecture 64-bit c:\>
Using program files folder:
If you have a separate program files folder for x86 applications(named Program Files(x86) ) then we can infer that you are running X64 Windows on your computer.
Few things to note:
- You can run X64 based Windows OS only on 64-bit computer. If your computer is of 32-bit then the software(Windows OS or any other applications) running on your computer must be of 32-bit only.
- If your computer is of 64-bit, then it does NOT mean that you have 64-bit OS. You can run either 32-bit OS or 64-bit OS on a 64-bit computer.
- Even if you are running 64-bit OS, you can still install 32-bit applications on your computer. All the 32-bit applications are installed to a separate folder named “C:\Programs Files(x86)“.
Believe it or not, my installer is so old that it doesn’t have an option to detect the 64-bit version of Windows.
Is there a Windows DLL call or (even better) an environment variable that would give that information for Windows XP and Windows Vista?
One possible solution
I see that Wikipedia states that the 64-bit version of Windows XP and Windows Vista have a unique environment variable: %ProgramW6432%
, so I’m guessing that’d be empty on 32-bit Windows.
This variable points to Program Files
directory, which stores all the installed program of Windows and others. The default on English-language systems is C:\Program Files
. In 64-bit editions of Windows (XP, 2003, Vista), there are also %ProgramFiles(x86)%
which defaults to C:\Program Files (x86)
and %ProgramW6432%
which defaults to C:\Program Files
. The %ProgramFiles%
itself depends on whether the process requesting the environment variable is itself 32-bit or 64-bit (this is caused by Windows-on-Windows 64-bit redirection).
npocmaka
55.6k18 gold badges148 silver badges188 bronze badges
asked Mar 2, 2009 at 2:33
Clay NicholsClay Nichols
11.9k30 gold badges110 silver badges170 bronze badges
7
To check for a 64-bit version of Windows in a command box, I use the following template:
test.bat:
@echo off
if defined ProgramFiles(x86) (
@echo yes
@echo Some 64-bit work
) else (
@echo no
@echo Some 32-bit work
)
ProgramFiles(x86)
is an environment variable automatically defined by cmd.exe (both 32-bit and 64-bit versions) on Windows 64-bit machines only.
answered Dec 2, 2009 at 13:53
7
Here is some Delphi code to check whether your program is running on a 64 bit operating system:
function Is64BitOS: Boolean;
{$IFNDEF WIN64}
type
TIsWow64Process = function(Handle:THandle; var IsWow64 : BOOL) : BOOL; stdcall;
var
hKernel32 : Integer;
IsWow64Process : TIsWow64Process;
IsWow64 : BOOL;
{$ENDIF}
begin
{$IFDEF WIN64}
//We're a 64-bit application; obviously we're running on 64-bit Windows.
Result := True;
{$ELSE}
// We can check if the operating system is 64-bit by checking whether
// we are running under Wow64 (we are 32-bit code). We must check if this
// function is implemented before we call it, because some older 32-bit
// versions of kernel32.dll (eg. Windows 2000) don't know about it.
// See "IsWow64Process", http://msdn.microsoft.com/en-us/library/ms684139.aspx
Result := False;
hKernel32 := LoadLibrary('kernel32.dll');
if hKernel32 = 0 then RaiseLastOSError;
try
@IsWow64Process := GetProcAddress(hkernel32, 'IsWow64Process');
if Assigned(IsWow64Process) then begin
if (IsWow64Process(GetCurrentProcess, IsWow64)) then begin
Result := IsWow64;
end
else RaiseLastOSError;
end;
finally
FreeLibrary(hKernel32);
end;
{$ENDIf}
end;
answered Oct 27, 2009 at 22:25
BlorgbeardBlorgbeard
101k48 gold badges228 silver badges272 bronze badges
8
From a batch script:
IF PROCESSOR_ARCHITECTURE == x86 AND
PROCESSOR_ARCHITEW6432 NOT DEFINED THEN
// OS is 32bit
ELSE
// OS is 64bit
END IF
Using Windows API:
if (GetSystemWow64Directory(Directory, MaxDirectory) > 0)
// OS is 64bit
else
// OS is 32bit
Sources:
- HOWTO: Detect Process Bitness
- GetSystemWow64Directory function
answered Nov 27, 2011 at 16:20
Leif GruenwoldtLeif Gruenwoldt
13.6k5 gold badges60 silver badges64 bronze badges
1
I tested the solution I suggested in my question:
Tested for Windows Environment Variable: ProgramW6432
If it’s non empty then it’s 64 bit Windows.W
answered Mar 17, 2009 at 19:05
Clay NicholsClay Nichols
11.9k30 gold badges110 silver badges170 bronze badges
6
See the batch script listed in How To Check If Computer Is Running A 32 Bit or 64 Bit Operating System. It also includes instructions for checking this from the Registry:
You can use the following registry location to check if computer is running 32 or 64 bit of Windows operating system:
HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor\0
You will see the following registry entries in the right pane:
Identifier REG_SZ x86 Family 6 Model 14 Stepping 12
Platform ID REG_DWORD 0x00000020(32)
The above “x86” and “0x00000020(32)” indicate that the operating system version is 32 bit.
Wolf
9,7097 gold badges62 silver badges108 bronze badges
answered Nov 27, 2011 at 16:09
Leif GruenwoldtLeif Gruenwoldt
13.6k5 gold badges60 silver badges64 bronze badges
8
If you can make API calls, try using GetProcAddress / GetModuleHandle to check for the existence of IsWow64Process which is only present in Windows OS that have 64-bit versions.
You could also try the ProgramFiles(x86) environment variable used in Vista/2008 for backwards compatibility, but I’m not 100% sure about XP-64 or 2003-64.
Good luck!
answered Mar 2, 2009 at 2:40
JasonJason
9851 gold badge6 silver badges12 bronze badges
4
I used this within a login script to detect 64 bit Windows
if "%ProgramW6432%" == "%ProgramFiles%" goto is64flag
shA.t
16.6k5 gold badges54 silver badges111 bronze badges
answered Mar 4, 2010 at 23:29
TallGuyTallGuy
611 silver badge1 bronze badge
I don’t know what language you’re using, but .NET has the environment variable PROCESSOR_ARCHITEW6432
if the OS is 64-bit.
If all you want to know is whether your application is running 32-bit or 64-bit, you can check IntPtr.Size
. It will be 4 if running in 32-bit mode and 8 if running in 64-bit mode.
answered Mar 2, 2009 at 2:40
Andrew EnsleyAndrew Ensley
11.6k16 gold badges62 silver badges73 bronze badges
3
I want to add what I use in shell scripts (but can easily be used in any language) here.
The reason is, that some of the solutions here don’t work an WoW64, some use things not really meant for that (checking if there is a *(x86) folder) or don’t work in cmd scripts.
I feel, this is the «proper» way to do it, and should be safe even in future versions of Windows.
@echo off
if /i %processor_architecture%==AMD64 GOTO AMD64
if /i %PROCESSOR_ARCHITEW6432%==AMD64 GOTO AMD64
rem only defined in WoW64 processes
if /i %processor_architecture%==x86 GOTO x86
GOTO ERR
:AMD64
rem do amd64 stuff
GOTO EXEC
:x86
rem do x86 stuff
GOTO EXEC
:EXEC
rem do arch independent stuff
GOTO END
:ERR
rem I feel there should always be a proper error-path!
@echo Unsupported architecture!
pause
:END
answered Jul 8, 2012 at 14:37
JosefJosef
1,4672 gold badges24 silver badges41 bronze badges
6
A lot of answers mention calling IsWoW64Process()
or related functions. This is not the correct way. You should use GetNativeSystemInfo()
which was designed for this purpose. Here’s an example:
SYSTEM_INFO info;
GetNativeSystemInfo(&info);
if (info.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) {
// It's a 64-bit OS
}
Also see:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms724340%28v=vs.85%29.aspx
answered Mar 24, 2015 at 4:42
jcofflandjcoffland
5,23838 silver badges43 bronze badges
0
I don’t know on which Windows version it exists, but on Windows Vista and later this runs:
Function Is64Bit As Boolean
Dim x64 As Boolean = System.Environment.Is64BitOperatingSystem
If x64 Then
Return true
Else
Return false
End If
End Function
answered Feb 2, 2011 at 14:31
In C#:
public bool Is64bit() {
return Marshal.SizeOf(typeof(IntPtr)) == 8;
}
In VB.NET:
Public Function Is64bit() As Boolean
If Marshal.SizeOf(GetType(IntPtr)) = 8 Then Return True
Return False
End Function
Carl Onager
4,1122 gold badges38 silver badges66 bronze badges
answered Mar 2, 2009 at 3:00
Renaud BompuisRenaud Bompuis
16.6k4 gold badges56 silver badges86 bronze badges
2
I use this:
@echo off
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
echo 64 BIT
) else (
echo 32 BIT
)
It works on Windows XP, tested it on Windows XP Professional Both 64 bit and 32 bit.
answered Jan 9, 2015 at 13:03
user83250user83250
171 silver badge6 bronze badges
I know this is ancient but, here’s what I use to detect Win764
On Error Resume Next
Set objWSHShell = CreateObject("WScript.Shell")
strWinVer = objWSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\BuildLabEx")
If len(strWinVer) > 0 Then
arrWinVer = Split(strWinVer,".")
strWinVer = arrWinVer(2)
End If
Select Case strWinVer
Case "x86fre"
strWinVer = "Win7"
Case "amd64fre"
strWinVer = "Win7 64-bit"
Case Else
objWSHShell.Popup("OS Not Recognized")
WScript.Quit
End Select
answered Jan 19, 2012 at 21:43
I tested the following batch file on Windows 7 x64/x86 and Windows XP x86 and it’s fine, but I haven’t tried Windows XP x64 yet, but this will probably work:
If Defined ProgramW6432 (Do x64 stuff or end if you are aiming for x86) else (Do x86 stuff or end if you are aiming for x64)
answered Jan 2, 2012 at 13:16
MatchMatch
212 bronze badges
Using Windows Powershell, if the following expression returns true, then it’s a 64 bit OS:
(([Array](Get-WmiObject -Class Win32_Processor | Select-Object AddressWidth))[0].AddressWidth -eq 64)
This was taken and modified from: http://depsharee.blogspot.com/2011/06/how-do-detect-operating-system.html (Method #3). I’ve tested this on Win7 64 bit (in both 32 and 64 bit PowerShell sessions), and XP 32 bit.
answered Jan 21, 2014 at 22:15
CJBSCJBS
15.2k6 gold badges89 silver badges135 bronze badges
The best way is surely just to check whether there are two program files directories, ‘Program Files’and ‘Program Files (x86)’
The advantage of this method is you can do it when the o/s is not running, for instance if the machine has failed to start and you wish to reinstall the operating system
answered Apr 25, 2014 at 7:42
2
Interestingly, if I use
get-wmiobject -class Win32_Environment -filter "Name='PROCESSOR_ARCHITECTURE'"
I get AMD64 in both 32-bit and 64-bit ISE (on Win7 64-bit).
answered Jul 9, 2014 at 3:17
Mike ShepardMike Shepard
17.5k6 gold badges51 silver badges69 bronze badges
Another way created by eGerman that uses PE numbers of compiled executables (does not rely on registry records or environment variables):
@echo off &setlocal
call :getPETarget "%SystemRoot%\explorer.exe"
if "%=ExitCode%" EQU "00008664" (
echo x64
) else (
if "%=ExitCode%" EQU "0000014C" (
echo x32
) else (
echo undefined
)
)
goto :eof
:getPETarget FilePath
:: ~~~~~~~~~~~~~~~~~~~~~~
:: Errorlevel
:: 0 Success
:: 1 File Not Found
:: 2 Wrong Magic Number
:: 3 Out Of Scope
:: 4 No PE File
:: ~~~~~~~~~~~~~~~~~~~~~~
:: =ExitCode
:: CPU identifier
setlocal DisableDelayedExpansion
set "File=%~1"
set Cmp="%temp%\%random%.%random%.1KB"
set Dmp="%temp%\%random%.%random%.dmp"
REM write 1024 times 'A' into a temporary file
if exist "%File%" (
>%Cmp% (
for /l %%i in (1 1 32) do <nul set /p "=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
)
setlocal EnableDelayedExpansion
) else (endlocal &cmd /c exit 0 &exit /b 1)
REM generate a HEX dump of the executable file (first 1024 Bytes)
set "X=1"
>!Dmp! (
for /f "skip=1 tokens=1,2 delims=: " %%i in ('fc /b "!File!" !Cmp!^|findstr /vbi "FC:"') do (
set /a "Y=0x%%i"
for /l %%k in (!X! 1 !Y!) do echo 41
set /a "X=Y+2"
echo %%j
)
)
del !Cmp!
REM read certain values out of the HEX dump
set "err="
<!Dmp! (
set /p "A="
set /p "B="
REM magic number has to be "MZ"
if "!A!!B!" neq "4D5A" (set "err=2") else (
REM skip next 58 bytes
for /l %%i in (3 1 60) do set /p "="
REM bytes 61-64 contain the offset to the PE header in little endian order
set /p "C="
set /p "D="
set /p "E="
set /p "F="
REM check if the beginning of the PE header is part of the HEX dump
if 0x!F!!E!!D!!C! lss 1 (set "err=3") else (
if 0x!F!!E!!D!!C! gtr 1018 (set "err=3") else (
REM skip the offset to the PE header
for /l %%i in (65 1 0x!F!!E!!D!!C!) do set /p "="
REM next 4 bytes have to contain the signature of the PE header
set /p "G="
set /p "H="
set /p "I="
set /p "J="
REM next 2 bytes contain the CPU identifier in little endian order
set /p "K="
set /p "L="
)
)
)
)
del !Dmp!
if defined err (endlocal &endlocal &cmd /c exit 0 &exit /b %err%)
REM was the signature ("PE\0\0") of the PE header found
if "%G%%H%%I%%J%"=="50450000" (
REM calculate the decimal value of the CPU identifier
set /a "CPUID=0x%L%%K%"
) else (endlocal &endlocal &cmd /c exit 0 &exit /b 4)
endlocal &endlocal &cmd /c exit %CPUID% &exit /b 0
answered Aug 20, 2014 at 9:20
npocmakanpocmaka
55.6k18 gold badges148 silver badges188 bronze badges
Here is a simpler method for batch scripts
@echo off
goto %PROCESSOR_ARCHITECTURE%
:AMD64
echo AMD64
goto :EOF
:x86
echo x86
goto :EOF
answered Nov 20, 2014 at 13:58
MaxMax
1712 silver badges4 bronze badges
Answer for Newer Versions of Windows
Today, I posted some code on another question and an explanation of how to do this with IsWow64Process2 for Windows 10 version 1511 or later and Windows Server 2016. Additionally, the code determines if the process is 32 or 64 bit and whether the process is running under the WOW64 emulator.
One of the main reasons I have posted the answer is because while there were several suggestions to use IsWow64Process2, no code that I saw showed how.
Please see the answer here: https://stackoverflow.com/a/59377888/1691559
answered Dec 23, 2019 at 0:16
XitalogyXitalogy
1,5922 gold badges14 silver badges17 bronze badges
You can use the module from npm called @wider/utils_where-am-i. This runs in any javascript environment on a windows machine and elsewhere such as linux. On a windows machine it delivers an object which has { os: ‘win32’ } or { os : ‘win64’ }. It can run as legacy plain javascript say in wshell, in classic ASP or nodeJS
answered Sep 12, 2021 at 9:04
Check the Registry for the existence of HKLM\SOFTWARE\Wow6432Node
— If it’s there, the system is 64-bit
— 32-bit, otherwise.
answered Apr 4, 2013 at 15:36
1
I wrote a simple command line application that will tell you whether your processor and your OS are either 64-bit or 32-bit.
Readout example:
C:\bitchecker
The CPU is 64-bit and the OS is 32-bit
Per request, here is the source, compiled using CLI option, written in AutoIt.
If @CPUARCH = "x86" Then
$CPUARCH = "32-bit"
Else
$CPUARCH = "64-bit"
EndIf
If @OSARCH = "x86" Then
$OSARCH = "32-bit"
Else
$OSARCH = "64-bit"
EndIf
ConsoleWrite("The CPU is " & $CPUARCH & " and the OS is " & $OSARCH)
And here is an example if you want switches for CPU (-c) and OS (-o):
Dim $CPUARCH, $OSARCH
If @CPUARCH = "x86" Then
$CPUARCH = "32-bit"
Else
$CPUARCH = "64-bit"
EndIf
If @OSARCH = "x86" Then
$OSARCH = "32-bit"
Else
$OSARCH = "64-bit"
EndIf
If $CmdLine[0] = 0 Then
ConsoleWrite("The CPU is " & $CPUARCH & " and the OS is " & $OSARCH)
Else
Select
Case $CmdLine[1] = "-c"
ConsoleWrite($CPUARCH)
Case $CmdLine[1] = "-o"
ConsoleWrite($OSARCH)
Case Else
ConsoleWrite("The CPU is " & $CPUARCH & " and the OS is " & $OSARCH)
EndSelect
EndIf