Automation objects are implemented in a client-server model to control
operations on one or more client machines from a single machine
automation control module, such as a test program. The machine automation
control module instantiates machine automation server objects in a server
process. The control module can then instruct the server objects to
instantiate corresponding machine automation client objects on specified
client machines via a connection mechanism. Object-oriented automation
classes are provided in a library and may be extended to meet customized
requirements of a given testing procedure. Examples of automation objects
may include, without limitation, application objects, machine image
objects, snapshot objects, file and registry access objects, reboot
objects, autologon objects, and command execution objects. Automation
objects allow the re-establishment of remote control after the loss of
control resulting from a reboot, a relogon, or a disk image restoration,
for example. Automation objects may also be used to automate the
deployment of software throughout an enterprise.