You don't need step 1, since on a process start, you can supply working directory. For how to start an external process, look here:
http://www.dotnetperls.com/process-start[
^] (more details on
MSDN[
^]). You don't need command prompt for that, just start your processes. As these end when finished, simply check for errors.
But you could use the
Cisco VPN api[
^] instead of this approach. It would be more elegant. I don't know about a c# wrapper but you might find some on the web. But since you need only a few calls, you could make your own p/invoke declarations for those methods.