-i 2 means you explicitly want to communicate as system on the Session number 2.
So the first question is: are you sure that session is still available??
Windows terminate and reuse session numbers as it want, so there is no guarantee that the same session number is still up running after one day.
Go to the remote machine and start Process Explorer to enumerate the sessions and look for the number 2.
There is also another parameter for psexec that make you choose the process name used on the remote machine, so you don't have to be sure the remote service has been really deleted.
-r Specifies the name of the remote service to create or interact.
with.
So you can try using the -r parameter with a random generated name by you.. and better you can check the remote sessions available before trying to connect using the qwinsta command:
qwinsta /server:servername
will return the remote running sessions like it does locally
qwinsta
SESSIONNAME USERNAME ID STATE TYPE DEVICE
services 0 Disc
console Administrator 1 Active
rdp-tcp 65536 Listen
Bottom line, call qwinsta to be sure the session you want interact with is still up and running , randomize the name of the remote PSEXECSVC..
HTH
-mario