It do not need to be a service, any normal app will do. But you can make it a service if you want.
1) In your target machine (or machines), have a program listening in a socket. Lets call it a "target".
2) In your controller machine, have a program asking the target (using a socket too). Lets call it a "controller".
3) When the target sees it is being asked, it gets a list of running processes (getting the list is different in Win9x than in WinNT/2K/XP) and sends the list to the controller.
4) Of course, you need a protocol to have both points talking. Something like the target sending first the number of records and then one record per process found in the machine.
(Note the target is technically a server and the controller is technically a client).
With this model you can minimize the net traffic and, having all the "intelligence" in the controller, the targets turns very lightweigthed.
Adding some code you can send commands to the target, telling him to close processes and the like.
Ask any other thing you need, BugSlayer.
buho (A).