Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have noticed that when I run the following command

Pushd \\RemoteMachine\C$ && java.exe -version

I get the java version of the computer I am on. However when I run the pushd command with a search option like the command below I get the actual information found on that computer.

Pushd \\RemoteMachine\C$ && dir /s java.exe

Why is this the case? Is it possible to run java.exe -version on a remote PC and have it output that computers information on my screen?

share|improve this question
What Pushd are you using? The built-in Pushd command just pushes a file path onto a stack for later retrieval. – Darth Android Jun 13 '11 at 14:44
up vote 0 down vote accepted

When you run java.exe in your example, the shell only searches the current directory (i.e. \\RemoteMachine\C$) but not its subdirectories. (In other words, it's more like dir java.exe without the /s.)

Since there is no such file in the remote machine's C:\, the next step is to search the directories specified in your %PATH% environment variable (which normally only contains local directories).

To solve your problem, specify the full path to java.exe. You don't even need to use pushd:

C:\> "\\RemoteMachine\C$\Program Files\Java\jre6\bin\java.exe" -version
share|improve this answer

PsExec by SysInternals does exactly what you need it to. Your example would be:

psexec \\RemoteMachine java.exe -version
share|improve this answer
I cant use outside programs like PsExec or that would be perfect. I figured out a way around it but cant supply my own answer yet. After I pushd I need to cd \location of java.exe\. Then I can run -version and it displays correctly – sealz Jun 13 '11 at 14:41

Although PsExec would get the job done I am unable to use that.

I am able to perform the command java.exe -version on the remote machine by changing the directory once I used pushd.

Pushd \\RemoteComputer\C$
cd "Program Files\Java\jre6\bin"
Java.exe -version

Or all at once

Pushd \\RemoteComputer\C$ && cd "Program Files\Java\jre6\bin" && java.exe -version && popd
share|improve this answer

You must log in to answer this question.

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