Our clients have purchased something like 2000 machines (Dell all-in-ones running win8.1). The software we're building uses IIS and php to show content from the localhost through a Java front end. So we need IIS 8, PHP 5.6, MySQL, JRE 1.8 and Teamviewer installed on these machines. Additionally, there's content that has to be placed in the localhost and jar files in the requisite locations.

The problem: The guys handling the machines (physical setup/placement) aren't equipped to handle something this complex. I've seen them screw up using single installers in the past, so I'd like to limit our dependence on them. We don't have physical access to the machines because of logistics and most of them will have a 2g connection at best, so we can't do any of this remotely.

Ideally, I'd like to have a silent install of all components, though a single msi/exe. Each system is brand new, so they're virtually identical. I'm going to try SilentInstall and AdvancedInstaller but meanwhile, if anybody has any suggestions, I'd be glad to hear them. Purchasing is not an issue as long as it's some kind of enterprise/bulk license.

  • 1
  • Do you have admin access to the machines? What kind of remote access do you use?
    – Nicolas Raoul
    Jul 19, 2016 at 8:07
  • Is it a one-time thing, or will you want to install another program (or update one) in the future?
    – Nicolas Raoul
    Jul 19, 2016 at 8:07
  • @NicolasRaoul We have admin access since these machines have been purchased solely for our software to run on (as kiosks). They're placed in locations that have little to no network connectivity (as well as larger cities) so network connectivity is not a given. At the very least they should have 2g connectivity, but that'll probably be spotty. and it's a one time thing. One of the jar files will update the content down the line. Jul 19, 2016 at 8:09
  • 2
    If you have no physical access, and no network access, how will you install anything?
    – Nicolas Raoul
    Jul 19, 2016 at 8:12

5 Answers 5


You should be able to use the Deployment Image Servicing and Management (DISM) from the Windows Deployment Services Toolkit to come up with an image that fits onto a single DVD or USB drive and needs no more that a couple of clicks to trigger the installation as an upgrade of the existing system. See the MS guide here for more information. You can also use PowerShell scripting as an alternative to DISM.

Pay special attention to the Windows Deployment Toolkit section and links.

It is a free toolsuite that allows "sideloading" of applications and "Zero Touch Installation".


I think the best solution for this use-case is to deploy virtual machines on each computer. The machines only need VMware Workstation or VirtualBox, and your virtual machine can contain your app and all its dependencies.

That approach has the added benefit that it becomes extremely easy to deploy updates, without affecting the base Windows system.

Self-promo: my company specializes in doing just that - creating virtual machines with specific application software, dependencies, etc - while ensuring they can easily be updated and managed from within the local network (i.e: no internet required).


If all of the machines are identical and have the capability to boot from USB or DVD then I would suggest getting a single machine, configuring as required and then creating a image of that machine to install on all of the others. This will reformat the existing machine so you will need an OS licence that can be applied to each machine or contact MS for details on a pre-acivated image.

You can create the image with a number of software packages but the most common is Symantec Ghost.

You could even pre-build your OS with all the required packages and supply it to the supplier for them to pre-install - with that size of order they will be more than helpful if you wish to go that route contact them first to see which format they can support.

  • Can't do that, unfortunately. The way things played out, the clients have already purchased the machines and sent them out to their final locations to be placed in the housings built for them. So they've all got their own windows licenses. Is there a way to use the existing license when replacing the OS image? Jul 19, 2016 at 8:34
  • How easy/hard is it for a local low-level technician to perform the operation using the DVD they have been given? About how many clicks/command lines/reboots, in typically how much time? Thanks!
    – Nicolas Raoul
    Jul 19, 2016 at 8:36
  • @YashCapoor - See my other answer for an alternative solution that should allow reuse of licences. Jul 19, 2016 at 12:34
  • @NicolasRaoul - Reinstaling a ghost image on identical hardware is normally very straghtforward, 2-3 clicks and a re-boot at the start and end how long it takes depends on the hardware and the size of the image. Jul 19, 2016 at 12:36

Thought I'd update this with what we went with. It's not an exact solution since we tweaked our requirements a bit to make it fit. We went with xampp instead of IIS and removed the teamviewer since we were told that almost all systems already had that installed. Finally, we built an installer using NSIS to install all our software to predefined directories. The installer ran the xampp unattended install and used batch files to set the MariaDB/mySQL database up (within xampp) after installation. Since we required admin access in the installer, we also used batch files to install services (xampp, mariadb/mysql) as we needed them.

Note: I'm not accepting my own answer as it doesn't actually provide a fix for my original question. I'm just sharing this info in case anyone else can use the kinda sorta fix that we used.


You can also use imagex from Microsoft included in the Microsoft Deployment Tool Kit.

  1. Setup 1 machine perfectly.
  2. Create a unattended.xml file for sysprep with as many or few options as you want to preconfigure language and etc. You want to add a placeholder for the windows serial number.
  3. Create a USB windows PE. https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpe-create-usb-bootable-drive
  4. Use pnputil -a to add drivers for dell now
  5. sysprep machine from and Administrative command prompt sysprep /generalize /oobe /shutdown /unattend:c:\windows\system32\sysprep\unattend.xml
  6. Boot PC from Windows bootable Windows PE

    Double check driver letter they maybe be different at this stage.

  7. Alternative add drivers here dism /Image:c:\ /add-driver /drivers:c:\drivers /recurse

  8. imagex /capture c:\ c:\partition1.wim "My Windows partition" You will probably need to use diskpart to temporarily assign temporary drive letters to hidden partitions. Repeat step 2 for each partition.
  9. Now you have partition1.wim,partition2.wim, partition3.wim

  10. Make a deployment script

    a. copy imagex.exe onto USB

    b. copy partitions.txt (from below) onto USB

    c. Read https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-vista/cc766521(v=ws.10)

    d. write actual script file and include it on USB and start it with information from bullet point c.

  11. Do something, via script, to extract the existing serial number. Storing it on the USB stick temporarily.

  12. Modify the unattend.xml file adding the serial number into placeholder. Located in the C:\windows\panther folder at this time.


   diskpart /s partitions.txt
   imagex /apply N:\Images\my-windows-partition1.wim 1 s:\
   imagex /apply N:\Images\my-windows-partition2.wim 1 c:\
   imagex /apply N:\Images\my-windows-partition3.wim 1 r:\

Here is partitions.txt

select disk 0
create partition primary size=350
format quick fs=ntfs label="System"
assign letter="S"
create partition primary size=75000
format quick fs=ntfs label="Windows"
assign letter="C"
create partition primary size=15000
format quick fs=ntfs label="Recovery image"
assign letter="R"
attributes volume set nodefaultdriveletter
  1. Make sure all files are copied onto the bootable USB stick.
  2. Make a duplicate for yourself.

  3. Test on another PC or in a virtual machine until you get all the kinks ironed out.

  4. Make 2000 copies.

End user instruction.

  1. Make sure PC is assembled and plugged but turned off.
  2. Plug in USB stick
  3. Turn on PC
  4. Press or whatever the BIOS boot menu key is.
  5. Select USB stick
  6. Make sure you see startup screen.
  7. Leave the computer alone for the next 2 hours
  8. The computer will automatically reboot and start your finalized product.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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