SlideShare a Scribd company logo
Using Free Tools to Rapidly Deploy Software in Your Environment Greg Shields, MVP Partner and Principal Technologist www.ConcentratedTech.com
This slide deck was used in one of our many conference presentations. We hope you enjoy it, and invite you to use it within your own organization however you like. For more information on our company, including information on private classes and upcoming conference appearances, please visit our Web site,  www.ConcentratedTech.com .  For links to newly-posted decks, follow us on Twitter: @concentrateddon or @concentratdgreg This work is copyright ©Concentrated Technology, LLC
Agenda Topics Part I: The Art of Software Packaging Part II: The Science of Software Deployment Many IT Professionals have problems with automated software distribution because it feels like a complicated topic. But there are really two halves: Software Packaging … and… Software Deployment In this session, you ’ll learn the nuances of both.
Automated Software Deployment There are two halves to rapidly and remotely installing applications: Repackaging  – A software installation must first be reconfigured to install without prompting the user or requiring additional information. Deployment  – The repackaged software installation is then loaded into a deployment tool and scheduled for deployment.
Part I The Art of Software Packaging
Repackaging Consider the typical installation… Insert the CD/DVD media Double-click setup.exe or setup.msi Next…Next…Finish… Head to the next desktop
Repackaging Consider the typical installation… Insert the CD/DVD media Double-click setup.exe or setup.msi Next…Next…Finish… Head to the next desktop In order to deploy the same software automatically and remotely, you must… Figure out how to complete the software installation without requiring input by the user. Figure out how to execute the reconfigured setup.exe or setup.msi file locally on designated desktops.
Repackaging Software installations arrive in one of essentially three formats. .EXE-based setup files Most often today, EXEs actually wrap around an MSI .MSI-based setup files These are slowly becoming the primary mechanism for Windows software installations Copy-it-yourself formats These are relatively rare these days.
Repackaging Software installations arrive in one of essentially three formats. .EXE-based setup files Most often today, EXEs actually wrap around an MSI .MSI-based setup files These are slowly becoming the primary mechanism for Windows software installations Copy-it-yourself formats These are relatively rare these days. Of the first two above, virtually all are packaged using one of the major packaging utilities: Wise Package Studio InstallShield Inno Setup Nullsoft Scriptable Install System
Repackaging Each format and packager has its own characteristics and switches. Adobe Acrobat:  AcroRd32.exe /s /v/qn Installation switches define the  “hidden” parameters that can be used to install the package. Silent switches instruct the package to install without prompting for input. Some have neither.  Some have nothing.
Repackaging Each format and packager has its own characteristics and switches. Adobe Acrobat:  AcroRd32.exe /s /v/qn Installation switches define the  “hidden” parameters that can be used to install the package. Silent switches instruct the package to install without prompting for input. Some have neither.  Some have nothing. Thus, while every software installation is different, they are in many ways the same. You need to sleuth out if switches exist and what they are! Or…(More on that in a minute!)
Repackaging – MSI ’s MSI installation uses the native Microsoft Installer Microsoft Installer is the framework built into Windows. Like Microsoft Update, but for installing software. “ Silent” switches are common across all installations.
Repackaging – MSI ’s MSI installation uses the native Microsoft Installer Microsoft Installer is the framework built into Windows. Like Microsoft Update, but for installing software. “ Silent” switches are common across all installations. Packaging tools automatically interrogate the MSI database to determine silent switches & customizations. Customization and silencing is done at command-line. msiexec /i /qb- AppA.msi DESKTOP_SHORTCUTS=0 msiexec /i AppB.msi TRANSFORMS=custom.mst
MSI Examples The standard command syntax for  any  MSI is… msiexec.exe – Invokes the installer, and then… /i – Install /a – administrative install /l* – Log all information /q – No user interface /qb- – Basic user interface with no dialog boxes PROPERTYNAME = PropertyValue msiexec /qb- /l* logfile.txt /i setup.msi NAME=Value
MSI Examples The standard command syntax for  any  MSI is… msiexec.exe – invokes the installer, and then… /i – Install /a – administrative install /l* – Log all information /q – No user interface /qb- – Basic user interface with no dialog boxes PROPERTYNAME = PropertyValue msiexec /qb- /l* logfile.txt /i setup.msi NAME=Value (Non-functioning) Example msiexec /qb- /l* logfile.txt /i AcroRd32.msi SERIALNUMBER=59a83b987c REBOOT=SUPRESS
DEMO Analyzing an MSI Installation
Repackaging – EXE ’s EXE files have no common switch schema. There ’s no central authority that governs EXE switches. Depending on the packager used to create the EXE, there are some known tricks. Finding the correct  “silent switches” is key to installing properly.  And they can be  anything ! AppA.exe /s /v/qn AppB.exe /quiet /norestart AppC.exe /go /blowyournose AppD.exe /take /mywife:please Don ’t reinvent the wheel.  Reference the Intertubes for applications and their silent switches. www.AppDeploy.com
EXE Examples InstallShield (Ol ’ school) Run the installer with the /r switch on a reference machine Proceed through the dialogs, answering prompts as you would on the client machine Complete the installation The installation will create a setup.iss file in %windows% Use this file to run the installation setup.exe /s /f1setup.iss [/f2logfile.txt] InstallShield (Nu ’ school, with Wrapped MSI) Setup.exe /s /v/qb Characters after /v are passed to the wrapped MSI file. Wise Package Studio, Others… setup.exe /s
EXE Examples Also Try… /a /q:a /r:n /silent /passive /quiet /norestart /? /help /? and /help sometimes pop up a dialog box that contains useful clues.
EXE Examples Many EXEs these days are actually MSI wrappers This means the EXE does little more than launch an MSI installation fileName /s /v/qn  – Anything after the /v is passed to the wrapped MSI file
EXE Examples Many EXEs these days are actually MSI wrappers This means the EXE does little more than launch an MSI installation fileName /s /v/qn  – Anything after the /v is passed to the wrapped MSI file Trick #1:  Use the /a switch to perform an  “administrative install”, which sometimes will unpack that MSI.
EXE Examples Many EXEs these days are actually MSI wrappers This means the EXE does little more than launch an MSI installation fileName /s /v/qn  – Anything after the /v is passed to the wrapped MSI file Trick #1:  Use the /a switch to perform an  “administrative install”, which sometimes will unpack that MSI. Trick #2:  Start the EXE installation,  but don ’t finish it! Double-click the EXE. Wait for it to unpack. When the first prompt appears, check  %temp%  for unpacked MSI install files. It all depends on who wrote the installer…
DEMO Analyzing an EXE Installation
Repackaging – Diff ’s Some software is exceedingly complicated, doesn ’t include “silent switches”, or simply won’t install with the other two mechanisms. For these, we run a  “diff”, yo.
Repackaging – Diff ’s Some software is exceedingly complicated, doesn ’t include “silent switches”, or simply won’t install with the other two mechanisms. For these, we run a  “diff”, yo. The process to do this… Build a barebones desktop of the same OS/SP.  Virtual machines make this easy. Snapshot its initial configuration. Install and configure the application. Re-Snapshot again. Run the packager ’s “diff” tool to log and subsequently package the file/driver/registry changes. In some cases  this can be easier  than an EXE install.
Repackaging – Diff ’s SLIGHT PROBLEM:  Most packagers that can do this are expensive, natch. Caphyon Advanced Installer WinINSTALL MSI Packager Wise for Windows Installer EMCO MSI Package Builder Acresso AdminStudio Acresso InstallShield But there are some freeware alternatives… Some of the above ’s “free” versions AppDeploy Repackager SMSInstaller WinINSTALL LE We ’ll use WinINSTALL LE later…
DEMO Analyzing a  “diff” Installation Get Your Free Copy of WinINSTALL LE at: http://www.scalable.com/wininstall-le
Post-Installation Customization NEXT STOP:  Customizing that app after its installed.
Post-Installation Customization NEXT STOP:  Customizing that app after its installed. For nearly all Windows applications, customization is stored in the registry. Whole-machine customization in HKLM. Per-user customization in HKCU. The easiest way to determine post-installation customization is using that same  “diff” packager tool. Snapshot after installation Make a configuration change Re-snapshot Package registry change Distribute the registry change.
Post-Installation Customization HKLM is easy to manipulate. Settings are per-machine. HKCU can be a little more difficult. User must be logged in for HKCU hive to be loaded. This process gets waaaaaay easier with Group Policy Preferences. Are you seriously not using them yet? With GPPs, creating custom registry changes is crazy easy.
DEMO Using  “diffs” for Configuration Control
Group Policy Preferences Applications and Windows itself store its configurations either in the registry or in files. What then we need is… A toolset that allows admins to easily input custom configurations without requiring coding. Environment variables, files, folders, INI files, registry settings, network shares, shortcuts. Data sources, devices, folder options, local users and groups, network options, power options, printers, scheduled tasks, services. Solution:  GPPs!
Group Policy Preferences
Group Policy Preferences
Group Policy Preferences What you need… Server 2008++ or Vista SP1++ with the Remote Systems Administration Toolkit (RSAT) as the location for management. Client Side Extensions (CSE) for clients not at Vista SP1 or greater / Server 2008 or greater. CSEs are the client processing components that recognize the use of GPPs. Get them from your WSUS server. ALL HAIL MIGHTY WSUS! The knowledge, experience, and intestinal fortitude to start really, really working with the registry of your clients from a global perspective.
DEMO Group Policy Preferences
Part II The Science of Software Deployment
From Package to Software Now that you ’ve got a software package, you need to get it deployed to machines. Multiple software deployment solutions exist, with various price points… Microsoft ConfigMgr  Microsoft SCE  Altiris Kaseya Kace KBOX Active Directory PSExec Free   Not Free  
GP Software Installation Group Policy Software Installation (GPSI) is free and has already bromanced your Active Directory Generally limited to MSI installations. Although ZAP files allow EXE installations. Careful:  Deleting a GP in the wrong way can automatically uninstall software everywhere. GPs have no reporting component.  No way to know where failures have occurred. … but, it is free.
GP Software Installation Four Steps to installing software via GPSI: Obtain a  “silenced” MSI installation package Create a software distribution shared folder Create a GPO Assign  or  Publish  the software
GP Software Installation Four Steps to installing software via GPSI: Obtain a  “silenced” MSI installation package Create a software distribution shared folder Create a GPO Assign  or  Publish  the software Assignment vs. Publishing When a package is  Assigned , the software isn ’t downloaded and installed until its initial use.  The user must click its icon to start the process. Eliminates software that users don ’t use, but increases the time to start on first use. When a package is  Published , it appears in Add/Remove Programs. The user must choose to  “Install a program from the network” You cannot Publish to Computer objects
DEMO Group Policy Software Installation
PSExec-based Installation Tiny Problem With GPSI:  Relies on Group Policy. Group Policy refresh intervals take time. Little to no reporting capabilities.  Hard to know where it worked and where it didn ’t. Sometimes you just want to  push immediately , without waiting, and without creating GPOs.
PSExec-based Installation Tiny Problem With GPSI:  Relies on Group Policy. Group Policy refresh intervals take time. Little to no reporting capabilities.  Hard to know where it worked and where it didn ’t. Sometimes you just want to push  immediately , without waiting, and without creating GPOs. PSExec is a remote command execution tool. Runs commands on remote systems as if they were local. Clientless Free component of the PSTools, nice. Any executable that you would run locally could be run remotely via PSExec.  You just need to encode the executable properly. psexec \\computerName cmd
PSExec-based Installation Although PSExec was intended for running basic commands on remote computers, it can be used to invoke the Windows Installer. psexec \\computerName  “c:\windows\system32\msiexec.exe” /i \\server\packageShare\setup.msi Useful for onsey-twosey installs once packages are created.
DEMO PSExec-based Installation
For Cost Solutions Both of these solutions suffer from limitations… They ’re relatively hard to use. They are not inventory-based. They have no reporting component. There is little to no security & workflow associated with software distribution. For Cost Solutions exist that add these necessary features for the not-so-small environment. Microsoft ConfigMgr, Microsoft SCE, Altiris, Kaseya, Kace KBOX, others… Prices range from  “wow” to “HOLY WOW”.
Using Free Tools to Rapidly Deploy Software in Your Environment Greg Shields, MVP Partner and Principal Technologist www.ConcentratedTech.com
This slide deck was used in one of our many conference presentations. We hope you enjoy it, and invite you to use it within your own organization however you like. For more information on our company, including information on private classes and upcoming conference appearances, please visit our Web site,  www.ConcentratedTech.com .  For links to newly-posted decks, follow us on Twitter: @concentrateddon or @concentratdgreg This work is copyright ©Concentrated Technology, LLC

More Related Content

ODP
Automated Deployment using Open Source
ODP
System Imager.20051215
PPT
Prepping software for w7 deployment
PDF
There is No Server: Immutable Infrastructure and Serverless Architecture
PPTX
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
PDF
Power Of Zero
PDF
Metasploit magic the dark coners of the framework
PDF
Attacker Ghost Stories (CarolinaCon / Area41 / RVASec)
Automated Deployment using Open Source
System Imager.20051215
Prepping software for w7 deployment
There is No Server: Immutable Infrastructure and Serverless Architecture
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
Power Of Zero
Metasploit magic the dark coners of the framework
Attacker Ghost Stories (CarolinaCon / Area41 / RVASec)

What's hot (20)

PPTX
Virtualization
PPT
Free tools for win server administration
PPTX
Incorporating PowerShell into your Arsenal with PS>Attack
PPT
PowerShell Remoting
PPTX
PowerShell crashcourse for sharepoint
PPTX
Android System Image Modification
PDF
Characterizing and Contrasting Kuhn-tey-ner Awr-kuh-streyt-ors
PDF
Automated Amazon EC2 Cloud deployments with openQRM
DOCX
UNTI 2 P7
PPT
Top ESXi command line v2.0
PDF
Writing malware while the blue team is staring at you
PDF
High Stakes Continuous Delivery in the Real World #OpenWest
PDF
Windows Attacks AT is the new black
PDF
Simplify and run your development environments with Vagrant on OpenStack
PPTX
Introducing PS>Attack: An offensive PowerShell toolkit
ODT
openQRM how-to: Setup UEC and openQRM cloud
ODP
OpenSolaris 2009.06 Workshop
PPTX
Get-Help: An intro to PowerShell and how to Use it for Evil
PDF
Automated everything - Setting up an openQRM Cloud
PPTX
Android internals By Rajesh Khetan
Virtualization
Free tools for win server administration
Incorporating PowerShell into your Arsenal with PS>Attack
PowerShell Remoting
PowerShell crashcourse for sharepoint
Android System Image Modification
Characterizing and Contrasting Kuhn-tey-ner Awr-kuh-streyt-ors
Automated Amazon EC2 Cloud deployments with openQRM
UNTI 2 P7
Top ESXi command line v2.0
Writing malware while the blue team is staring at you
High Stakes Continuous Delivery in the Real World #OpenWest
Windows Attacks AT is the new black
Simplify and run your development environments with Vagrant on OpenStack
Introducing PS>Attack: An offensive PowerShell toolkit
openQRM how-to: Setup UEC and openQRM cloud
OpenSolaris 2009.06 Workshop
Get-Help: An intro to PowerShell and how to Use it for Evil
Automated everything - Setting up an openQRM Cloud
Android internals By Rajesh Khetan
Ad

Viewers also liked (20)

ODP
Managing your SaltStack Minions with Foreman
PPTX
PowerShell crashcourse for Sharepoint admins
PPT
No-script PowerShell v2
PPTX
Managing SQLserver for the reluctant DBA
PPT
PowerShell v4 Desired State Configuration
PPT
Managing SQLserver
PPT
Automating Active Directory mgmt in PowerShell
PDF
Advanced Tools & Scripting with PowerShell 3.0 Jump Start - Certificate
PPTX
Best free tools for w d a
PPTX
PowerShell and WMI
KEY
PowerShell and the Future of Windows Automation
PPTX
Managing enterprise with PowerShell remoting
PPT
PowerShell 8tips
PPT
PS error handling and debugging
PPTX
Three cool cmdlets I wish PowerShell Had!
PPT
PowerShell Functions
PPTX
Implementing dr w. hyper v clustering
PPTX
Ive got a powershell secret
PPTX
PowerShell crash course
PPT
Ad disasters & how to prevent them
Managing your SaltStack Minions with Foreman
PowerShell crashcourse for Sharepoint admins
No-script PowerShell v2
Managing SQLserver for the reluctant DBA
PowerShell v4 Desired State Configuration
Managing SQLserver
Automating Active Directory mgmt in PowerShell
Advanced Tools & Scripting with PowerShell 3.0 Jump Start - Certificate
Best free tools for w d a
PowerShell and WMI
PowerShell and the Future of Windows Automation
Managing enterprise with PowerShell remoting
PowerShell 8tips
PS error handling and debugging
Three cool cmdlets I wish PowerShell Had!
PowerShell Functions
Implementing dr w. hyper v clustering
Ive got a powershell secret
PowerShell crash course
Ad disasters & how to prevent them
Ad

Similar to Free tools for rapidly deploying software (20)

PPT
TechMentor Fall, 2011 - Packaging Software for Automated Deployment with Wind...
PPT
Rapidly deploying software
PDF
MSI Packaging Free eBook
PDF
Types of MSI Custom Actions
PDF
InstallShield, MSI Projects Course Training
PPT
MSI / Windows Installer for NGN 'Dummies'
PPT
Software Management Iltce2007b
PDF
MSI Sequences and Standard Actions: An Introduction
PDF
Designing an Update-Friendly MSI Installation
PPT
Installer benchmarking
PDF
Software Packaging/Scripting
PDF
Windows installerbasics
PDF
Windows installerbasics
PPTX
PDF
Using Chained .MSI Packages to Componentize Your Windows Installer Setup
DOC
Ad msi-installation via Active Directory
PPTX
Now Featuring the Latest Version!: Basic Patch Management for Basic Software
PPTX
WinConnections Spring, 2011 - Deploying Windows 7 without the Ridiculous Micr...
PDF
Application Repackaging Best Practices for Novell ZENworks 10 Configuration M...
PPT
Install shield
TechMentor Fall, 2011 - Packaging Software for Automated Deployment with Wind...
Rapidly deploying software
MSI Packaging Free eBook
Types of MSI Custom Actions
InstallShield, MSI Projects Course Training
MSI / Windows Installer for NGN 'Dummies'
Software Management Iltce2007b
MSI Sequences and Standard Actions: An Introduction
Designing an Update-Friendly MSI Installation
Installer benchmarking
Software Packaging/Scripting
Windows installerbasics
Windows installerbasics
Using Chained .MSI Packages to Componentize Your Windows Installer Setup
Ad msi-installation via Active Directory
Now Featuring the Latest Version!: Basic Patch Management for Basic Software
WinConnections Spring, 2011 - Deploying Windows 7 without the Ridiculous Micr...
Application Repackaging Best Practices for Novell ZENworks 10 Configuration M...
Install shield

More from Concentrated Technology (15)

PPT
Wsus sample scripts
PPTX
Wsus best practices
PPT
Virtualization today
PPTX
Virtualization auditing & security deck v1.0
PPTX
PPT
From VB Script to PowerShell
PPT
Supporting SQLserver
PPT
PPT
Securely connecting to apps over the internet using rds
PPT
PS scripting and modularization
PPT
PowerShell crashcourse
PPTX
PowerShell custom properties
PPTX
Inventory your network and clients with PowerShell
PPT
Iis implementation
PPT
Hyper v r2 deep dive
Wsus sample scripts
Wsus best practices
Virtualization today
Virtualization auditing & security deck v1.0
From VB Script to PowerShell
Supporting SQLserver
Securely connecting to apps over the internet using rds
PS scripting and modularization
PowerShell crashcourse
PowerShell custom properties
Inventory your network and clients with PowerShell
Iis implementation
Hyper v r2 deep dive

Recently uploaded (20)

PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Empathic Computing: Creating Shared Understanding
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Encapsulation theory and applications.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
KodekX | Application Modernization Development
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Electronic commerce courselecture one. Pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
cuic standard and advanced reporting.pdf
PDF
NewMind AI Monthly Chronicles - July 2025
Diabetes mellitus diagnosis method based random forest with bat algorithm
Empathic Computing: Creating Shared Understanding
Encapsulation_ Review paper, used for researhc scholars
Chapter 3 Spatial Domain Image Processing.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
20250228 LYD VKU AI Blended-Learning.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Encapsulation theory and applications.pdf
NewMind AI Weekly Chronicles - August'25 Week I
The AUB Centre for AI in Media Proposal.docx
Advanced methodologies resolving dimensionality complications for autism neur...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
KodekX | Application Modernization Development
Network Security Unit 5.pdf for BCA BBA.
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Electronic commerce courselecture one. Pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
cuic standard and advanced reporting.pdf
NewMind AI Monthly Chronicles - July 2025

Free tools for rapidly deploying software

  • 1. Using Free Tools to Rapidly Deploy Software in Your Environment Greg Shields, MVP Partner and Principal Technologist www.ConcentratedTech.com
  • 2. This slide deck was used in one of our many conference presentations. We hope you enjoy it, and invite you to use it within your own organization however you like. For more information on our company, including information on private classes and upcoming conference appearances, please visit our Web site, www.ConcentratedTech.com . For links to newly-posted decks, follow us on Twitter: @concentrateddon or @concentratdgreg This work is copyright ©Concentrated Technology, LLC
  • 3. Agenda Topics Part I: The Art of Software Packaging Part II: The Science of Software Deployment Many IT Professionals have problems with automated software distribution because it feels like a complicated topic. But there are really two halves: Software Packaging … and… Software Deployment In this session, you ’ll learn the nuances of both.
  • 4. Automated Software Deployment There are two halves to rapidly and remotely installing applications: Repackaging – A software installation must first be reconfigured to install without prompting the user or requiring additional information. Deployment – The repackaged software installation is then loaded into a deployment tool and scheduled for deployment.
  • 5. Part I The Art of Software Packaging
  • 6. Repackaging Consider the typical installation… Insert the CD/DVD media Double-click setup.exe or setup.msi Next…Next…Finish… Head to the next desktop
  • 7. Repackaging Consider the typical installation… Insert the CD/DVD media Double-click setup.exe or setup.msi Next…Next…Finish… Head to the next desktop In order to deploy the same software automatically and remotely, you must… Figure out how to complete the software installation without requiring input by the user. Figure out how to execute the reconfigured setup.exe or setup.msi file locally on designated desktops.
  • 8. Repackaging Software installations arrive in one of essentially three formats. .EXE-based setup files Most often today, EXEs actually wrap around an MSI .MSI-based setup files These are slowly becoming the primary mechanism for Windows software installations Copy-it-yourself formats These are relatively rare these days.
  • 9. Repackaging Software installations arrive in one of essentially three formats. .EXE-based setup files Most often today, EXEs actually wrap around an MSI .MSI-based setup files These are slowly becoming the primary mechanism for Windows software installations Copy-it-yourself formats These are relatively rare these days. Of the first two above, virtually all are packaged using one of the major packaging utilities: Wise Package Studio InstallShield Inno Setup Nullsoft Scriptable Install System
  • 10. Repackaging Each format and packager has its own characteristics and switches. Adobe Acrobat: AcroRd32.exe /s /v/qn Installation switches define the “hidden” parameters that can be used to install the package. Silent switches instruct the package to install without prompting for input. Some have neither. Some have nothing.
  • 11. Repackaging Each format and packager has its own characteristics and switches. Adobe Acrobat: AcroRd32.exe /s /v/qn Installation switches define the “hidden” parameters that can be used to install the package. Silent switches instruct the package to install without prompting for input. Some have neither. Some have nothing. Thus, while every software installation is different, they are in many ways the same. You need to sleuth out if switches exist and what they are! Or…(More on that in a minute!)
  • 12. Repackaging – MSI ’s MSI installation uses the native Microsoft Installer Microsoft Installer is the framework built into Windows. Like Microsoft Update, but for installing software. “ Silent” switches are common across all installations.
  • 13. Repackaging – MSI ’s MSI installation uses the native Microsoft Installer Microsoft Installer is the framework built into Windows. Like Microsoft Update, but for installing software. “ Silent” switches are common across all installations. Packaging tools automatically interrogate the MSI database to determine silent switches & customizations. Customization and silencing is done at command-line. msiexec /i /qb- AppA.msi DESKTOP_SHORTCUTS=0 msiexec /i AppB.msi TRANSFORMS=custom.mst
  • 14. MSI Examples The standard command syntax for any MSI is… msiexec.exe – Invokes the installer, and then… /i – Install /a – administrative install /l* – Log all information /q – No user interface /qb- – Basic user interface with no dialog boxes PROPERTYNAME = PropertyValue msiexec /qb- /l* logfile.txt /i setup.msi NAME=Value
  • 15. MSI Examples The standard command syntax for any MSI is… msiexec.exe – invokes the installer, and then… /i – Install /a – administrative install /l* – Log all information /q – No user interface /qb- – Basic user interface with no dialog boxes PROPERTYNAME = PropertyValue msiexec /qb- /l* logfile.txt /i setup.msi NAME=Value (Non-functioning) Example msiexec /qb- /l* logfile.txt /i AcroRd32.msi SERIALNUMBER=59a83b987c REBOOT=SUPRESS
  • 16. DEMO Analyzing an MSI Installation
  • 17. Repackaging – EXE ’s EXE files have no common switch schema. There ’s no central authority that governs EXE switches. Depending on the packager used to create the EXE, there are some known tricks. Finding the correct “silent switches” is key to installing properly. And they can be anything ! AppA.exe /s /v/qn AppB.exe /quiet /norestart AppC.exe /go /blowyournose AppD.exe /take /mywife:please Don ’t reinvent the wheel. Reference the Intertubes for applications and their silent switches. www.AppDeploy.com
  • 18. EXE Examples InstallShield (Ol ’ school) Run the installer with the /r switch on a reference machine Proceed through the dialogs, answering prompts as you would on the client machine Complete the installation The installation will create a setup.iss file in %windows% Use this file to run the installation setup.exe /s /f1setup.iss [/f2logfile.txt] InstallShield (Nu ’ school, with Wrapped MSI) Setup.exe /s /v/qb Characters after /v are passed to the wrapped MSI file. Wise Package Studio, Others… setup.exe /s
  • 19. EXE Examples Also Try… /a /q:a /r:n /silent /passive /quiet /norestart /? /help /? and /help sometimes pop up a dialog box that contains useful clues.
  • 20. EXE Examples Many EXEs these days are actually MSI wrappers This means the EXE does little more than launch an MSI installation fileName /s /v/qn – Anything after the /v is passed to the wrapped MSI file
  • 21. EXE Examples Many EXEs these days are actually MSI wrappers This means the EXE does little more than launch an MSI installation fileName /s /v/qn – Anything after the /v is passed to the wrapped MSI file Trick #1: Use the /a switch to perform an “administrative install”, which sometimes will unpack that MSI.
  • 22. EXE Examples Many EXEs these days are actually MSI wrappers This means the EXE does little more than launch an MSI installation fileName /s /v/qn – Anything after the /v is passed to the wrapped MSI file Trick #1: Use the /a switch to perform an “administrative install”, which sometimes will unpack that MSI. Trick #2: Start the EXE installation, but don ’t finish it! Double-click the EXE. Wait for it to unpack. When the first prompt appears, check %temp% for unpacked MSI install files. It all depends on who wrote the installer…
  • 23. DEMO Analyzing an EXE Installation
  • 24. Repackaging – Diff ’s Some software is exceedingly complicated, doesn ’t include “silent switches”, or simply won’t install with the other two mechanisms. For these, we run a “diff”, yo.
  • 25. Repackaging – Diff ’s Some software is exceedingly complicated, doesn ’t include “silent switches”, or simply won’t install with the other two mechanisms. For these, we run a “diff”, yo. The process to do this… Build a barebones desktop of the same OS/SP. Virtual machines make this easy. Snapshot its initial configuration. Install and configure the application. Re-Snapshot again. Run the packager ’s “diff” tool to log and subsequently package the file/driver/registry changes. In some cases this can be easier than an EXE install.
  • 26. Repackaging – Diff ’s SLIGHT PROBLEM: Most packagers that can do this are expensive, natch. Caphyon Advanced Installer WinINSTALL MSI Packager Wise for Windows Installer EMCO MSI Package Builder Acresso AdminStudio Acresso InstallShield But there are some freeware alternatives… Some of the above ’s “free” versions AppDeploy Repackager SMSInstaller WinINSTALL LE We ’ll use WinINSTALL LE later…
  • 27. DEMO Analyzing a “diff” Installation Get Your Free Copy of WinINSTALL LE at: http://www.scalable.com/wininstall-le
  • 28. Post-Installation Customization NEXT STOP: Customizing that app after its installed.
  • 29. Post-Installation Customization NEXT STOP: Customizing that app after its installed. For nearly all Windows applications, customization is stored in the registry. Whole-machine customization in HKLM. Per-user customization in HKCU. The easiest way to determine post-installation customization is using that same “diff” packager tool. Snapshot after installation Make a configuration change Re-snapshot Package registry change Distribute the registry change.
  • 30. Post-Installation Customization HKLM is easy to manipulate. Settings are per-machine. HKCU can be a little more difficult. User must be logged in for HKCU hive to be loaded. This process gets waaaaaay easier with Group Policy Preferences. Are you seriously not using them yet? With GPPs, creating custom registry changes is crazy easy.
  • 31. DEMO Using “diffs” for Configuration Control
  • 32. Group Policy Preferences Applications and Windows itself store its configurations either in the registry or in files. What then we need is… A toolset that allows admins to easily input custom configurations without requiring coding. Environment variables, files, folders, INI files, registry settings, network shares, shortcuts. Data sources, devices, folder options, local users and groups, network options, power options, printers, scheduled tasks, services. Solution: GPPs!
  • 35. Group Policy Preferences What you need… Server 2008++ or Vista SP1++ with the Remote Systems Administration Toolkit (RSAT) as the location for management. Client Side Extensions (CSE) for clients not at Vista SP1 or greater / Server 2008 or greater. CSEs are the client processing components that recognize the use of GPPs. Get them from your WSUS server. ALL HAIL MIGHTY WSUS! The knowledge, experience, and intestinal fortitude to start really, really working with the registry of your clients from a global perspective.
  • 36. DEMO Group Policy Preferences
  • 37. Part II The Science of Software Deployment
  • 38. From Package to Software Now that you ’ve got a software package, you need to get it deployed to machines. Multiple software deployment solutions exist, with various price points… Microsoft ConfigMgr Microsoft SCE Altiris Kaseya Kace KBOX Active Directory PSExec Free  Not Free 
  • 39. GP Software Installation Group Policy Software Installation (GPSI) is free and has already bromanced your Active Directory Generally limited to MSI installations. Although ZAP files allow EXE installations. Careful: Deleting a GP in the wrong way can automatically uninstall software everywhere. GPs have no reporting component. No way to know where failures have occurred. … but, it is free.
  • 40. GP Software Installation Four Steps to installing software via GPSI: Obtain a “silenced” MSI installation package Create a software distribution shared folder Create a GPO Assign or Publish the software
  • 41. GP Software Installation Four Steps to installing software via GPSI: Obtain a “silenced” MSI installation package Create a software distribution shared folder Create a GPO Assign or Publish the software Assignment vs. Publishing When a package is Assigned , the software isn ’t downloaded and installed until its initial use. The user must click its icon to start the process. Eliminates software that users don ’t use, but increases the time to start on first use. When a package is Published , it appears in Add/Remove Programs. The user must choose to “Install a program from the network” You cannot Publish to Computer objects
  • 42. DEMO Group Policy Software Installation
  • 43. PSExec-based Installation Tiny Problem With GPSI: Relies on Group Policy. Group Policy refresh intervals take time. Little to no reporting capabilities. Hard to know where it worked and where it didn ’t. Sometimes you just want to push immediately , without waiting, and without creating GPOs.
  • 44. PSExec-based Installation Tiny Problem With GPSI: Relies on Group Policy. Group Policy refresh intervals take time. Little to no reporting capabilities. Hard to know where it worked and where it didn ’t. Sometimes you just want to push immediately , without waiting, and without creating GPOs. PSExec is a remote command execution tool. Runs commands on remote systems as if they were local. Clientless Free component of the PSTools, nice. Any executable that you would run locally could be run remotely via PSExec. You just need to encode the executable properly. psexec \\computerName cmd
  • 45. PSExec-based Installation Although PSExec was intended for running basic commands on remote computers, it can be used to invoke the Windows Installer. psexec \\computerName “c:\windows\system32\msiexec.exe” /i \\server\packageShare\setup.msi Useful for onsey-twosey installs once packages are created.
  • 47. For Cost Solutions Both of these solutions suffer from limitations… They ’re relatively hard to use. They are not inventory-based. They have no reporting component. There is little to no security & workflow associated with software distribution. For Cost Solutions exist that add these necessary features for the not-so-small environment. Microsoft ConfigMgr, Microsoft SCE, Altiris, Kaseya, Kace KBOX, others… Prices range from “wow” to “HOLY WOW”.
  • 48. Using Free Tools to Rapidly Deploy Software in Your Environment Greg Shields, MVP Partner and Principal Technologist www.ConcentratedTech.com
  • 49. This slide deck was used in one of our many conference presentations. We hope you enjoy it, and invite you to use it within your own organization however you like. For more information on our company, including information on private classes and upcoming conference appearances, please visit our Web site, www.ConcentratedTech.com . For links to newly-posted decks, follow us on Twitter: @concentrateddon or @concentratdgreg This work is copyright ©Concentrated Technology, LLC

Editor's Notes

  • #2: MGB 2003 © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
  • #4: Greg Shields
  • #6: Greg Shields
  • #17: Greg Shields
  • #23: Windows Connections Updates will be available at http://www.devconnections.com/updates/Orlando_Spring09/Windows
  • #24: Greg Shields
  • #28: Greg Shields
  • #32: Greg Shields
  • #37: Greg Shields
  • #38: Greg Shields
  • #43: Greg Shields
  • #47: Greg Shields
  • #49: MGB 2003 © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.