I am using PsExec to access two servers from my laptop. Access to one of the servers (running Windows 2008R2 Enterprise) works fine. Access to the other (Windows 2008R2 Standard) fails with an error (message below). My laptop has Windows 8.1.
Literature
- I've verified that my systems match the requirements, as specified here
- Investigating an earlier access denied, I followed the steps outlined here
Commands
Steps taken:
net use \\<servername>\Admin$ /user:me *
succeedsdir \\<servername>\Admin$
lists the remote directory, as expectedPsExec.exe \\<servername> -e cmd
is very slow, and then fails with the message:Error establishing communication with PsExec service on <servername>: The system cannot find the file specified.
To the best of my knowledge (though I'm no Windows expert), I am in the administrator group on both the client and server machine.
Analysis 1
- After executing the command,
psexesvc.exe
is still running on the remote machine, so the command at least partially succeeds - Before each invocation, I stop and delete the
psexesvc
service, and remove the executable manually
Analysis 2
I used wireshark to observe the communication between client and server. The following seems to happen:
- File
PSEXESVC.EXE
gets successfully created and written - A "Bind" and a "Map" of SVCCTL
- Delay of about 20 seconds (?)
- Several SVCCTL calls (presumably resulting in the
PSEXESVC
service being created and started) - Named pipe
PSEXESVC
is opened and successfully written to - Named pipes for stdin, stdout and stderr cannot be found (
STATUS_OBJECT_NAME_NOT_FOUND
)
Trying to eliminate a permissions problem, I tried to verify that the named pipes actually don't exist, by running pipelist.exe
(found here) on the server side. I did not actually see the pipes, but if they existed only for a very short time, I might not have run pipelist.exe
frequently enough.
Version numbers
- PsExec version 2.11