Click here to Skip to main content
Click here to Skip to main content
Go to top

Executing programs remotely in Windows NT/2000/XP

, 16 Jan 2003
Rate this:
Please Sign up or sign in to vote.
Starting programs on different machines is easy using these utilities.

Introduction

The need to start programs remotely can be very useful. Specifically I needed to be able to start a handful of applications remotely simply to cover the possibility of failure.

Overview

Two components were necessary to make the remoting work. First, a simple application is needed to simply accept arguments and program names and submit them for remote execution. Secondly, an NT service was needed on any machine wishing to allow the remote execution to take place.

Service Installation

To install the service, simply execute the following command after downloading the .exe:

After executing this command, go into the services manager (from the administrative tools in control panel) and be sure the service is set up to be able to interact with the desktop:

Application Installation

Simply download the application and place it in the path on any machine wishing to submit programs for remote execution.

Starting a program remotely

To execute a program remotely, simply invoke rexec.exe and pass it the following parameters:

  1. ip address of machine to process program.
  2. name of program/script/batch file.
  3. arguments to be passed to the program/script/batch defined in argument 2 when being started remotely.

Example: To start notepad on machine at IP 123.21.61.12 and have it initially load a file \\fileserver1\test file.txt rexec would be given the following arguments:

rexec 123.21.61.12 notepad.exe "\\fileserver1\test file.txt" 

Note that for this to work properly, the remote execution service must be installed and started on the machine @ 123.21.61.12.

The code

In the spirit of code re-use, the NTService class was taken from an article by TODD C. WILSON on CodeGuru.com. The class was originally created by Joerg Koenig.

The service simply listens for connections on a pre defined port. When connections are received from the rexec application instances they are threaded off into connection processing threads. The connection threads simply grab the program and it's arguments off the socket, start the program, and terminate. The remote execution application connects to the service at the specified IP. Next the app sends the program name and arguments to the remote service.

Summary

That's it. Nothing complicated. But quite useful. Please let me know if you have comments or ideas for improvement.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author

Tim Kohler
Chief Technology Officer
United States United States
Working to keep a technology company up to date. Wondering when Microsoft will hire a fresh, innovative guy to run the company.

Comments and Discussions

 
Questionsocket connection failed PinmemberMember 47689816-May-12 21:31 
QuestionPSExec could be the solution to all of you that have problems. PinmemberMember 820973731-Oct-11 8:51 
Questionrexec is giving connection refused Pinmembermaestromani20-Sep-11 5:29 
AnswerRe: rexec is giving connection refused PinmemberAZeitler13-Dec-11 10:20 
GeneralI have the program working locally on one windows xp pro machine but can't install service in windows 7 PinmemberStephane Poirier23-Aug-11 11:55 
GeneralSuggestions for people who have problems Pinmemberjdixon227826-Mar-10 6:21 
Question'Local System' can't access network share folder PinmemberSekhar Kumar5-May-08 6:37 
Generalruntime to terminate Pinmemberkalle10-Dec-07 5:46 
GeneralSocket Connection Failed Pinmemberyug_chary12-Oct-07 1:12 
GeneralRe: Socket Connection Failed PinmemberEli Hazan27-Mar-08 11:07 
GeneralRe: Socket Connection Failed Pinmembervipul052719-Nov-09 18:11 
GeneralRe: Socket Connection Failed Pinmembernax2283-May-10 23:53 
GeneralRe: Socket Connection Failed Pinmemberxytsrm22-Jan-11 4:04 
GeneralImprovment issues PinmemberElad raz14-Mar-07 1:50 
Generaloutput Pinmembersdev4003-Jan-07 13:39 
GeneralRemote execution does not work Pinmemberautoguy10011-May-06 3:42 
QuestionWhy is it asking for username and password? Pinmemberlearningvisual5-Apr-06 12:49 
AnswerRe: Why is it asking for username and password? Pinmemberjkleiss25-Sep-06 10:11 
AnswerRe: Why is it asking for username and password? PinmemberBlades6-Mar-08 6:21 
GeneralRe: Why is it asking for username and password? Pinmemberjkleiss6-Mar-08 7:48 
Hi William,
 
Sorry for the confusing steps. Looking back on it, I suggest you ignore my "step 1" Clearly I was just confused, making mistakes, and then undoing them. One would hope this doesn't affect the program's execution. In which case the only suggestion I have to offer you is my "step 2"
 
I didn't end up using rexec in the long-run, and this message was a long time ago, so I really don't have any other useful advice to offer you now. Sorry. Anyone else out there?
 
-Jessica
GeneralRemote execution does not complete Pinmembermholzer5423-Nov-05 9:13 
GeneralGreat utility, congratulations. Pinmemberlancer22719-Oct-05 0:37 
GeneralRe: Great utility, congratulations. Pinmemberksshaan2-Jul-08 18:29 
GeneralRe: Great utility, congratulations. Pinmemberjdixon227826-Mar-10 4:22 
Generalgreat job and a question Pinmembermsmarlene15-Jul-05 8:25 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web01 | 2.8.140916.1 | Last Updated 17 Jan 2003
Article Copyright 2003 by Tim Kohler
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid