Calling C$SYSTEM with openfiles.exe


we have the following environment:

Windows SBS 2011 with 64bit

The cmd-command calls c:\windows\system32\cmd.exe and shows

Microsoft Windows [Version 6.1.7601]

The command c:\windows\system32\openfiles.exe in this mode works perfectly.

We tried to call this program via C$SYSTEM with flags 192 with 32bit-runtime 9.2.5 and get the error

The target system must be running a 32 bit OS

We have tried

cmd /c c:\windows\system32\openfiles.exe
cmd /c openfiles.exe

but get always the same error.

Thanks in advance for all suggestions.

  • When running in a 32-bit process on a 64-bit OS, and calling a process which must be run as 64-bit, you have to use "SysNative", which is a pointer to the C:\Windows\System32 directory (when you use that directory from a 32-bit process on Win64, it automatically maps to C:\Windows\SYSWOW64\).
    We use this:
    %WINDIR%\SysNative\cmd.exe /c openfiles.exe

    The only hitch is you either have to detect 64-bit OS, or use MKLINK /D %WINDIR%\SysNative %WINDIR%\System32 to create the SysNative symbolic link on 32-bit machines.

  • Verified Answer

    Hi Chris,

    thanks for your answer, it works perfectly.