19

I have about 15 computers on the same network and most of their installed software are the same. When I want to install new programs or update installed ones I have to go to each one and install/update it which sometimes is a daunting task.

Are there any tools to make this process easier? It would be great if they are open source, and it doesn't matter if they need Python, Ruby or Java installed.

The computers are running Windows 7 (64-bit and 32-bit). I want to install various software, including anti-virus updates and games.

  • I guess you don't have active directory? – Olli Feb 15 '14 at 8:20
  • Based on my experiences, automatically installing arbitrary software to Windows is not possible. In some - relatively common - cases someone have to click "Next" at least few times, and automating those is not easy. Can you give some examples what software you want to install? How many computers is "many" (this is important, as not all solutions scale up or down too well)? – Olli Feb 15 '14 at 8:46
  • 1
    @Olli I know it's not an easy task, and the exact number is 15 computers, examples of software I install: antivirus db update (some of them are offline), games... – Pierre Feb 15 '14 at 12:28
  • Aside note. If they are from the same brank (same OS and drivers) Have you though of Disk Image tools? Install whatever you need on one PC, then, clone it's OS partition to hdd or pendrive, and replicate it on others (Average ~10min). Then you can use one of tools mentioned below. – Mohammed Joraid Jun 10 '14 at 16:49
10

Would environment configuration software suit your needs?

Of the ones I've used, Ansible is the easiest to set up, and has some fancy UI that you can pay for, apparently. It seems to be very easy to extend, if you find yourself needing more than it provides. I found it while playing with Vagrant (which commissions virtual machines), which it has excellent support for; using them together makes it easy to test your Ansible playbooks without touching any real machines, which is why I use this combination whenever I'm given the choice.

Puppet probably has the widest user base, and it's easy to get answers on forums and on SO. It's more likely that you'll have to customize this, and that's also pretty easy. I used this one on my first few projects and it's what got me into environment configuration management; hopefully that gives you an idea how easy it is to use.

I've heard good things about Chef but I've never seen it in action. And there are lots more choices beyond these three.

  • Note that Ansible support for Windows is coming soon – wimh Jun 21 '14 at 10:08
4

There is AutoItScript. It is for installing software. I'm not sure if you can manage it with them. But you can install and update software. It is script based and you have to write in a script what the program should do. You have to program the whole installation process. That is done in a Script file. There you set the options, when it should click next and so on. Further you can block the keyboard and the mouse input. Additionally it is possible to automatically restart. A GUI is created that shows which program is being installed at the moment as well as the progress. You can install/update several programs with one script. I'm not sure, but if my memory serves me right it was possible to record the inputs and the system can then generate the script automatically. Years ago I used this to automatically install software and updates in a windows environment.

EDIT: There is an AutoItRecorder I didn't test it, but I was checking if it exists.

  • Yeah I know about AutoIt and I used it before, I should write a script for each software to automate it's installation. – Pierre Feb 15 '14 at 12:32
  • A possible other solution would be UpdateStar. I didn't use it before, therefore I'm not able to recommend it. But have a look. There is a free and a premium version. – Irgendw Pointer Feb 15 '14 at 12:57
4

I have had great success using command line parameters to perform automated installs.

Most installer systems support a level of configuration or automation by passing the correct parameters, given that these can be written once in batch file (or some other script) and then executed on multiple machines they can provide quiet lot of "bang for the buck".

At work we use a similar system, the software deployed will typically change annually (new version or service pack), and we run the script on approx. three new PCs each week. This means that the scripts require maintenance infrequently, while executing them is a manual but trivial task.


msiexec is the utility provided with windows to automate the (un)installation of Microsoft's Windows Installer based products (.msi/.msp).

A typical silent install command:

msiexec /qb /i product.msi REBOOT=ReallySuppress

Note: here REBOOT is a parameter, product vendors can implement custom parameters and it can take a little bit of research to find them if the documentation is patchy.


NSIS (Nullsoft Scriptable Install System) is a popular opensource Installer System. In this case the installer executable can be executed directly.

A typical silent install command:

install.exe /S /D=C:\Program Files\product

InstallShield is a popular commercial Installer System. This one is a bit trickier as you first run the installer in record mode, and it logs you selections and input to a response file (.iss). Then later you can playback that response file on another machine for a silent install.

A typical recorded install (recording to setup.iss):

setup.exe -r -f1setup.iss

A typical blocking silent install (playing back setup.iss):

setup.exe -sms -f1setup.iss

Some further information about these and other systems can be found here.

2

A windows specific solution is chocolatey. It is a kind of package manager like apt-get on Ubuntu. Software needs to be packaged for chocolatey, but there is a gallery with existing software. To make it easier to use it on multiple computers, you can integrate it with puppet.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.