SysWOW64 and 64-bit Windows
Barring some kind of monetary or technical restriction, chances are that you are running (at least some) 64-bit machines in your environment. And as such, you have probably encountered the SysWOW64 directory. In this post, I will attempt to succinctly explain Microsoft’s File System Redirector and how it works with SysWOW64.
Only 32-bit programs can be executed on 32-bit Windows. Both 32-bit and 64-bit programs can be executed on 64-bit Windows. In order for 64-bit Windows to support both kinds of programs, system files are segregated based upon their “bitness”. In the file system, this is demonstrated as the difference between the SysWOW64 and System32 folders (among others).
SysWOW64 is part of Window’s WOW64 subsystem which ensures the compatibility of 32-bit programs as they run on 64-bit Windows. Counterintuitively, SysWOW64 is a folder that contains 32-bit system files and dlls, while the System32 folder contains 64-bit system files and dlls. The main reason for this weird name scheme is simply for backwards compatibility, as some programs are “hardcoded” with the system32 path.
On 64-bit Windows:
“%SystemRoot%\System32” – 64-bit system files
“%SystemRoot%\SysWOW64” – 32-bit system files
When a 32-bit program is executed, it may attempt to use the system32 folder. When this happens, Windows transparently redirects the program to “%SystemRoot%\SysWOW64” where all of the supporting 32-bit system files reside. If you want to force a 32-bit program to access a file under “%SystemRoot%\System32” without being redirected, you would have to use the “%SystemRoot%\sysnative” link.
More information on Windows File Redirector can be found here.
For the most part, all of this stuff runs seamlessly. But, as an admin, you may have complications from this, especially as you write your scripts. In fact, I will use this post as a primer for a future post that I plan to write regarding custom inventory rules with Dell Kace. Stay tuned for that.