This is what I am trying to do: Connect to a VPN (I use rasdial) Check list of active virtual machines in VPN and then connect to one. (I have read that vmrun can do it BUT I have Virtual Infrastructure Library installed. Where do I get vmrun utility from?) OR Check if a given virtual machine is turn on, if not turn it on and then Connect to it (mstsc is what I am using as of now and it is foreground process. Is there anything else that could do it background and just tell the user that it is logged in with the provided credentials? By the waym mstsc does not help me in checking the state or powering on the virtual machine. So, I need a work around for it) Once its connected, connect to a UNC path (\dir1\dir2) copy a folder from there and ftp it. I can manage the FTP part however I am not sure how do I handle the UNC path stuff. I know pushd but pushd does not seem to take user/password. My UNC has a username/password. Also I think I can do it in a batch file in the remote server. I am planning to use psexec to execute this batch at remote server. Once everything is done, Diconnect the VPN (rasdial again) I have bits and pieces of information on how to achieve individual tasks however I can make it a complete one because I am missing knowledge on how to integrate it all. Batch script is what I am good at so I chose it. But if you think there are any better tools (Can AutoIT do this kind of stuff?) or some other programming languages then I would be glad to know.