Interactive mode of PSExec not working for console application

I am trying to use PSExec to kick off a console application on a remote computer in an interactive state. When I run something like this:

PsExec.exe -s -d -i 1 \\MyServer notepad.exe

It launches Notepad just fine. If I then run this:

PsExec.exe -s -d -i 1 \\MyServer C:\Temp\MyConsoleApp.exe

It launches the command windows but doesn't do anything as far as I can tell. As in, when I run my console application locally, it displays a "heartbeat" every 5 seconds, but when I run it remotely, nothing is displayed in the command window. The .exe does show up as a process in Task Manager. Any ideas?


i think you have to set the working directory with -w :

PsExec.exe -s -d -i 1 -w c:\temp \\MyServer MyConsoleApp.exe

http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx


If no window appears, it is likely because the session id in the invocation of psexec is wrong.

This is set as the number after the -d flag.

The id number you want will appear in the 'ID' column of the list on the Users tab of taskmgr.exe It's usually 1, but might not be. And ommitting the number can also cause no window to appear.

eg, I ran:

psexec -i -d -s c:\windows\regedit.exe

(as advised elsewhere) and although I got a message: "... regedit.exe started on ... with process ID ...", no window appeared, even though I could see in taskmgr.exe that it was running with the indicated process ID.

However, when I ran:

psexec -s -d -i 1 regedit.exe

The window did appear. It so happened that my ID was 1.


I think you can look at the session Id for your current user and pass it as parameter with -i For example :

PsExec.exe -s -d **-i 2** -w c:\temp \\MyServer MyConsoleApp.exe

To look at the correct session Id you can open cmd and run command : query session Sometimes the session Id is 2 for the active user you want to start process for, so try looking for your correct session Id and use it with -i patameter. It should work. It worked for me.