Possible Duplicate:
What are the popular (free?) options for application deployment?
I have about 20-30 Windows clients in my office. I need to programmatically access each one of them and install some software on them.
What's the simplest way to achieve something like this without using any shelf software, but just from coding?
What I would do on Linux is I would use scp
to transfer the file executable and connect through ssh to run that executable (I'm not even sure this is the right way to do it on Linux).
A very commonly used and extremely useful tool is psexec, which will allow you to execute commands on remote computers, copying the file to the target machine if necessary. You'll find the rest of the pstools handy as well.
Just a heads-up - most antivirus software objects to psexec, so you'll need to set an exception for it.
psexec from Sysinternals/Microsoft will let you execute a command on a remote server. You can get the file onto each machine using standard network drives.
If it's an MSI file, you can run it through GPO policies on an Active Directory system.
Another alternative is to get scripting software that runs programmatically, so you'd put the installer software on a shared location and then go to each machine and run the script file to execute everything, something like AutoIT (free).
We've looked at automatic installation methods and we haven't found anything that's %100 reliable with every form of installer. Sometimes we find something that's close to working but will break at rather inconvenient times, other times we find an installer that won't do anything with the automation method we find. It also depends on how homogeneous your environment is because sometimes you might have a config that throws an error or unusual dialog box you didn't test for, and automation doesn't seem to like that.
Whichever method you choose make sure you test it and test it some more before setting it up and forgetting about it, thinking it's just going to work.
If your machines are within a domain, you can use Group Policies to deploy software to them, maybe this will suit you ?
http://support.microsoft.com/kb/816102
You can also use PowerShell to remotely manage these boxes. Using PowerShell you can perform a number of tasks, including manage software on them.
Depending on the version of Windows, they may already have PowerShell installed. NT6 and up are already installed, just needs to be configured...which you can easily do via Group Policy Objects. If they're Windows XP clients (I'm sorry!) then you would need to install the bits.
Basically you need to configure PowerShell, open up the firewalls on those clients and then away you go. PowerShell uses WS-Management protocol (open standards are good).