Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Windows Build/Imaging pushout software

Options
  • 07-09-2012 9:47am
    #1
    Registered Users Posts: 13,385 ✭✭✭✭


    Hey Guys,

    Recently started in a company which is still running manual imaging of devices i.e. manually putting Windows/office/AV etc. onto the machines which is fairly time consuming.

    In previous positions I've used Microsoft SCCM to pushout builds - that said I've never been involved in actually setting up a network image, just shown how to kick off a new build on a PC.

    I've been looking online at free solutions to help me automate the process and take some of the load off. For now I'd like to get a free system in place as soon as possible while I find my feet and don't have to spend half it manually installing software on PCs!

    Just looking for some feedback on what you guys think of the benefits of clonezilla or if you have any online tutorials or articles that could help me learn more about how I can go about setting this up - would be very much appreciated.


Comments

  • Moderators, Recreation & Hobbies Moderators, Science, Health & Environment Moderators, Technology & Internet Moderators Posts: 90,855 Mod ✭✭✭✭Capt'n Midnight


    http://www.itninja.com

    www.wsusoffline.net - handy if you don't have a server you can install wsus on


    www.portableapps.com - sometimes I think this may be easier for some infrequently used apps


  • Closed Accounts Posts: 5,835 ✭✭✭Torqay


    some infrequently used apps???


  • Registered Users Posts: 13,385 ✭✭✭✭D'Agger


    http://www.itninja.com

    www.wsusoffline.net - handy if you don't have a server you can install wsus on


    www.portableapps.com - sometimes I think this may be easier for some infrequently used apps
    Cheers for the links Capt'n, appreciate it.

    I suppose my main issue is actually going about deciding what is best for me to use. Would you have any recommendations on a specific way of setting up a network image.

    The aim would be to have an image setup to install just the OS & drivers on laptops/PCs when required, with the addition of MS office, and a few other softwares.

    I've never been involved in something like this before so being requested to set one up completely has my head spinning a bit.


  • Moderators, Arts Moderators, Regional Abroad Moderators Posts: 11,019 Mod ✭✭✭✭Fysh


    Using image-based deployment can be excessively time-intensive if you're not dealing with a substantial number of machines (and therefore resourced adequately). Given the requirement of creating an image for each hardware profile which you have to vet for drivers & hardware support, along with re-imaging every time software patches are released, it's not necessarily the best solution (IMO you'd want to have at least two orders of magnitude more machines than you have hardware profiles for it to be worthwhile, otherwise you just spend all your time trying to keep system images up to date).

    We've got Dell's KACE (which integrates with ITNinja) in my department and it's good but still time-intensive.

    One thing you could do is spend some time writing installation scripts for your software package, then making self-extracting executable packages for them using 7zip. That way you can create an installation script to connect to a network share, copy across all your standard installation executables and iterate through them without needing you to babysit the whole thing, without having as much of a maintenance overhead as system imaging.


  • Registered Users Posts: 13,385 ✭✭✭✭D'Agger


    Fysh wrote: »
    Using image-based deployment can be excessively time-intensive if you're not dealing with a substantial number of machines (and therefore resourced adequately). Given the requirement of creating an image for each hardware profile which you have to vet for drivers & hardware support, along with re-imaging every time software patches are released, it's not necessarily the best solution (IMO you'd want to have at least two orders of magnitude more machines than you have hardware profiles for it to be worthwhile, otherwise you just spend all your time trying to keep system images up to date).

    We've got Dell's KACE (which integrates with ITNinja) in my department and it's good but still time-intensive.

    That's quite true and it's one thing I've noticed from looking into it - each build would need to be updated etc. and would require lots of time to keep running smoothly.

    I guess what I'm looking at is - I've just joined the company, I feel this is something that should be implemented going forwards to save time. That said your below point is quite good.
    One thing you could do is spend some time writing installation scripts for your software package, then making self-extracting executable packages for them using 7zip. That way you can create an installation script to connect to a network share, copy across all your standard installation executables and iterate through them without needing you to babysit the whole thing, without having as much of a maintenance overhead as system imaging.

    This would make more sense for me in the short term. I don't have any experience writing .bat files (I'm assuming that's what I'd be running?) but it would definitely be worth looking into.

    Would I be right in saying that you'd be running a script on the PC to pull drivers and other such exes to run on the machine from a file share on a server of some sort?

    I'll look into it for definite and thanks for the info, much appreciated - if you have any good links on scripting that'd be a great help also :)


  • Advertisement
  • Moderators, Arts Moderators, Regional Abroad Moderators Posts: 11,019 Mod ✭✭✭✭Fysh


    PaulieC wrote: »
    That's quite true and it's one thing I've noticed from looking into it - each build would need to be updated etc. and would require lots of time to keep running smoothly.

    I guess what I'm looking at is - I've just joined the company, I feel this is something that should be implemented going forwards to save time. That said your below point is quite good.

    You're right to look into this right at the start while you've still got fresh eyes and have yet to become used to how "things have always worked around here"; however, it's important to be aware of the potential implementation issues that you can face with any given solution.

    It's possible to use freely distributed tools to achieve this, or to buy commercial packages which handle some of the donkeywork and/or have after-sale support available (eg Dell's KACE offering, Secunia's CSI, or the Spiceworks offering). Those will require substantial investment and setup, though, so a good way to start might be to work out the time and resource required to set up one machine and show how this can be improved with even modest development work. The key point you want to drive home to your boss (or whoever else you end up talking to about this) is that doing this will let you automate drone work and free you up to focus on other tasks, improving productivity and providing better support/service elsewhere.
    PaulieC wrote: »
    This would make more sense for me in the short term. I don't have any experience writing .bat files (I'm assuming that's what I'd be running?) but it would definitely be worth looking into.

    Would I be right in saying that you'd be running a script on the PC to pull drivers and other such exes to run on the machine from a file share on a server of some sort?

    I'll look into it for definite and thanks for the info, much appreciated - if you have any good links on scripting that'd be a great help also :)

    Yeah, more or less. If you've got a full Active Directory setup you can look into pushing out software via group policies, but if not a less elegant way of achieving a similar effect is to create a network share which is accessible to all users on your system which you use to store your software installation packages.

    The first task is to create a scripted installation package - so tinker with the install media you have and see what, if any, switches are supported to let it run through without user intervention. Sometimes you need to get clever (eg open up your installation executable with 7-zip in order to get at the MSI file inside), other times it's just a case of reading the documentation. The big gotcha for these things is per-user activation mechanisms - they can be a royal pain in the hole (packages like LabVIEW, MATLAB, and Origin are particularly annoying in this regard). But anyway.

    Once you have a script in a batch file or commandlet file and a set of files that will automatically install the software with no user input, you create a 7z file containing everything you need.

    There are some tools for automatically creating SFX files (executable compressed files) but you can do this without them by downloading the 7Zip module packages from here. Once you have the modules installed, you need 3 things to create your SFX file:
    • your 7z file
    • the appropriate module file (7zsd_LZMA.sfx for 32-bit windows or 7zsd_LZMA_x64.sfx for 64-bit windows)
    • a config.txt file

    The config file is quite simple - basically, it specifies which file in your 7z you want to run once it has been uncompressed. This will generally be your batch file. I've got an executable that sets up all the printers in our department (which is non-trivial because the printers are served up via LPD, which Microsoft don't seem to want to support properly at the command-line) and the config file for that is:
    ;!@Install@!UTF-8!
    Title="HP Universal PostScript Print Driver (32-bit)"
    ExecuteFile="installprinters.bat"
    ;!@InstallEnd@!
    

    Once you have those three things, the command to create your executable is as follows:
    copy /b 7zsd_LZMA.sfx + config.txt + INSTALL_FILES.7z FINALEXECUTABLE.exe /y
    

    Once you've done this to create standalone executables to install your software packages, you can put them on your network share and create another batch file. This batch file will map a network drive using "net use", copy the installation files you specify to a local directory, then iterate through each of them, executing them accordingly. Once you've got a script that works for installing all your software, you can set it to run at startup, preferably using a different account to the user who's logging on.

    (I should note that this was my original plan, but my boss ended up securing some funding for us to buy a couple of KACE boxes so now my approach to setting up systems is to configure the OEM preinstallation of Windows, get it on our network, install the KACE agent and then use KACE to deploy the software. I still use the standalone executables as the installation sources for KACE, though...)

    You can also spend a bit of time working on getting verbose logging in your scripts to help you pinpoint errors, possibly doing something clever to alert you when installations fail, and if you want to get really clever you can do something like build in queries to the Windows Installer service to check if the software is already installed and use that to skip straight to update installations...

    Anyway, I know this is quite a lot of information to take in but hopefully getting some detail on how other people approach this sort of problem will help you figure out the best solution for your circumstances.


  • Registered Users Posts: 13,385 ✭✭✭✭D'Agger


    I'm a bit busy so I haven't read the detail on the batch files etc. that you've given but thank you very much for the detail provided there man!

    I've spent the few spare moments I've had before lunch looking into the batch files via the server with the installs sitting on a shared folder and calling them to do a quiet install.

    It's something that'll definitely save me time in the short term while I look at a long term solution. I'll read over your post a bit more when I get a chance and get back to you if I have more questions cheers man :)


Advertisement