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. Commented Aug 24, 2010 at 7:09
  • Details added above.
    – Skyhawk
    Commented 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
    Commented Jun 3, 2013 at 21:17

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .