2

On certain remote computers when I use PsExec to run installers (.exe files), PsExec just hangs there. When I try running the installer, that PsExec transferred, directly from the remote computer (located in system32) I get the following popup error message:

NSIS Error
Error Launching Installer

This only seems to happen on 64bit computers and only for some installers. However after googling a bit I didn't seem to find a solution.

This link tells me that it might have something to do with the fact that it's running under system32.

The weird thing is that if I copy the installer from system32 to somewhere else like my desktop and run it from there, it works!

What's going on here?

Thanks

1 Answer 1

1

Paradoxically, on a 64-bit Windows machine:

  1. c:\windows\wow64\ contains 32-bit system files.
  2. c:\windows\system32\ contains 64-bit system files.

When a 32-bit program tries to access c:\windows\system32\, it is redirected to c:\windows\wow64\. This is very similar to what happens when 32-bit programs are installed to the c:\program files (x86)\ directory by redirection.

You may find the following discussion helpful: http://forums.shoutcast.com/showthread.php?t=237297

Bottom line: You have discovered one of the many reasons why running installers from system32 is never a sound practice. If you do not need the installer after the installation is complete, consider copying the installer to a temporary location and deleting it when the installation is done. If you would prefer to keep the installer around on each machine, consider establishing a place where installers belong (e.g. c:\install\program-name).

Example of how to use a temporary location:

psexec \\target-pc -e -c -f -w c:\windows\temp installer.exe

Details:

  • -e: don't load your profile (speeds things up and saves disk space on the remote PC)
  • -c: copy the file
  • -f: overwrite if a file with the same name is already there (use with caution)
  • -w c:\windows\temp: set the working directory to c:\windows\temp
3
  • Great thanks, but how to do I copy it on %temp%? I was using PsExec for the copy. Aug 24, 2010 at 7:09
  • Details added above.
    – Skyhawk
    Aug 24, 2010 at 16:17
  • -w won't work for every installer. It stills hangs with the same bug that sysinternals guys won't resolve. This is better: copy installer.exe in the remote C:\Windows\SysWOW64 directory. Run psexec \\remotemachine -c -f installer.exe and it'll work. It will copy the file to C:\Windows\System32 but as there is a filename with the same name in SysWOW64 it will work. Note that this IS NOT a workaround. Just pointing out the flaw in psexec code.
    – Sebastian
    Jun 3, 2013 at 21:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.