PSexec and windows 2008 server (access denied)

user3032725 picture user3032725 · Dec 4, 2013 · Viewed 15.1k times · Source

I have a program which uses psExec for retrieving environment variables on a remote host. I get the error: Could not start PSEXESVC service on xxhost Access denied.

This command works for windows 2003 servers but not 2008 (it works on 2008 if I run CMD as another user): psexec \xxhost -u xxdomain\xxuser -p xxpasswrd-h cmd /c echo %%JAVA_HOME^%%

I also tried creating a connection before executing psexec (with NET USE)-as above, this works on 2003 but not 2008: NET USE \XXhost psexec \host cmd /c echo %%JAVA_HOME^%%

The problem is that I can't use RUNAS in batchfiles as it prompts for password. So, does anybody know how a workaround without having to make changes on the remote server?

Answer

Paul Feld picture Paul Feld · Feb 26, 2014

It took me hours to find a working way to PsExec between 2 Windows 7 Computers with non-Admin user starting PsExec ... Disabling UAC (EnableLUA=0, ConsentPromptBehaviorAdmin=0, LocalAccountTokenFilterPolicy=1) did not work, turning off the Firewalls did not work...

Here i found the working way - thanks JelmerS: (Info from https://serverfault.com/questions/489822/psexec-is-not-connecting-to-machine-using-supplied-username-and-password/489845)

This is because psexec still tries to access the ADMIN$ share with your local credentials, before executing your command as another user. According to this thread, you can cache credentials before executing psexec:

cmdkey.exe /add:MACHINE_NAME_HERE /user:MACHINE_NAME_HERE\Administrator /pass:PASSWORD_HERE 
psexec.exe \\MACHINE_NAME_HERE -i notepad
cmdkey.exe /delete:MACHINE_NAME_HERE