It can get a little confusing with different file redirection provided by windows to access 32 and bit libraries in a 64 bit Windows system. This post in intended to just provide a concise summary of when to us which path. More details can be found in links given in reference section.
System32: Contains 64 bit dlls and executables and 64 bit applications can access them by putting system32 in their target path.
So a 64 bit application can call 64 bit powershell by using this path:
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
SysWOW64: Contains 32 bit dlls and executables. So 64 bit applications can access these by putting syswow64 in their target path. 32 bit applications will be redirected to this folder if they make a call with system32 in the target path.
So a 64 bit application can access the 32 bit version of powershell by going to this path:
%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe
Note: if a 32 bit application makes a call to System32 it is automatically redirected to SysWOW64.
Sysnative: is a virtual folder, a special alias used to indicate that the file system should not redirect the access to SysWOW64
So a 32 bit application can call 64 bit version of powershell by using this path:
%SystemRoot%\sysnative\WindowsPowerShell\v1.0\powershell.exe
Source\Target
|
64 bit
|
32 bit
|
64 bit
|
system32
|
syswow64
|
32 bit
|
sysnative
|
system32/syswow64
|
http://www.samlogic.net/articles/sysnative-folder-64-bit-windows.htm
https://msdn.microsoft.com/en-us/library/windows/desktop/aa384187%28v=vs.85%29.aspx
No comments:
Post a Comment