Friday, January 14, 2011

How do I run a batch file async using PSExec?

I have a batch file I run that, among other things, reset's the NICs in the machine. I have some watchdog software running on another machine that monitors the first one. I'd like to run this batch file using PSExec when it detects certain types of failures. The problem I'm having is that since the batch file reset's the NIC's it kills the connection PSExec has (I'm OK with that). The real issue is that when PSExec dies the batch file stops running (leaving the NIC's disabled).

I've tried using the -i option with PSExec with no luck. Any ideas about basically just fire off the batch file and NOT have it stop when PSExec is disconnected?

  • And, as usually, I figure things out 10 minutes after asking the question. It turns out I had the parameters in the wrong order. Here's what worked:

    psexec \\MyServer -i -d C:\Misc\ResetNICs.bat
    
    Nathan Hartley : Ha! I should have looked a little harder at what you were doing. It would have saved me 15 minutes worth of fixing something that wasn't broken. =)
  • Use the START command to run things asynchronously. The trick here though, is that START can not be called directly through PSExec. Calling it through the command interpreter will get around this limitation. Like so...

    psexec \\RemoteMachine cmd.exe /c start c:\test.bat
    

    Or if you want more power, you could call psexec on the remote machine with the -d parameter, similar to the START command above.

  • How about using the SOON.exe from the Windows Resource kit to schedule the batch file in a few seconds.

    From ggonsalv

0 comments:

Post a Comment