How does 32-bit cmd.exe run 64-bit cmd.exe on Windows Server 2003 x64?

This is a 7-Zip resolution for Windows Server 2008 64-bit .

I am trying to avoid an overly complex build process to make several 7-zip exe files. I just need .cmd to start my Java process after reading some 64-bit registry entries. However, for success with a single EXE file, it must be 32 bits.

The above question found a trick for Windows Server 2008 to detect 32-bit cmd.exe and replace it with 64 bits. Is there a way to do this on Windows Server 2003? There is a patch for Windows that allows reg.exe to access 64-bit records in 32-bit mode, but I can’t be sure that the client server is such that a workaround is not an option.

+7
source share
1 answer

To run the 64-bit cmd.exe from the 32-bit cmd.exe, you must have access to the c:\Windows\System32 without being redirected to the c:\Windows\SysWow64 . In Win2008, you can achieve this by accessing the path c:\Windows\Sysnative . Unfortunately, a fix is ​​required on Win2003 (see http://support.microsoft.com/kb/942589 ).

There is a workaround - you can create an NTFS junction point that directs to the c:\Windows\System32 and use the path to this junction point instead of c:\Windows\System32 . Using System Internals junction.exe I was able to create such a junction point from 32-bit cmd.exe and run 64-bit cmd.exe.

+13
source

All Articles