Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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

share|improve this question

1 Answer 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
share|improve this answer
    
Great thanks, but how to do I copy it on %temp%? I was using PsExec for the copy. –  Luca Matteis Aug 24 '10 at 7:09
    
Details added above. –  Skyhawk Aug 24 '10 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 '13 at 21:17

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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