This discussion will delve into packaging, with real-world examples applying to some of today's more challenging deployments. We will go beyond how to handle the application alone and get into how to take it through to deployment using KACE products: http://dell.to/1GDYpr8
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Software Packaging/Scripting
1. Dell World 2014
Software Packaging, Scripting and Deployment
with Dell KACE
Bob Kelly, Director, Product Management, November 2014
Dell World
User Forum
2. About Bob Kelly
Started career in US Navy, last
four years as lead admin at the
White House
Spent next 10 years as a deployment
specialist for several nearby government networks
Authored books on deployment and scripting and
several guides and papers for Microsoft, InstallShield
and Wise. Three time recipient of Microsoft’s Most
Valuable Professional award.
Founded AppDeploy in 1999, joined KACE in 2007,
Dell in 2010, Rebuilt as ITNinja in 2011.
Dell World User Forum
4. Dell World 2014
• Repackaging
• Reverse-engineering a vendor setup
to create your own custom setup
based on your needs
• Packaging
• Assembling whatever assets necessary
to automate the deployment of an
application
Terminology: Packaging vs. Repackaging
5. Dell World 2014
• A new feature of ITNinja prompts anyone leaving
a tip about the deployment of software to share:
• What kind of package was it?
• How did you deploy it?
• How hard do you think it was?
• At the top of each software page this feedback is used to present:
• The most common reported setup type for this version of the application
• Most commonly used deployment method for this version of the application
• The average reported difficulty rating for this version of the application
How Is Everyone Else Doing It?
7. Dell World 2014
• Internet Explorer
• Windows Media
Player
• Hotfixes and
Service Packs
• Oracle Client
• Microsoft Office
• Adobe
Customization
Wizard
Silent Installation
• Most all software is offering a solution that supports a silent installation
• Apple iTunes
• Java Runtime
Environment
(JRE)
• Adobe Reader
• Techsmith
SnagIt
Windows Installer Custom Solutions Basic Support
8. Dell World 2014
Windows Installers Are Predominant
• Most all setups today come as
Windows Installer (MSI) setups
• Sometimes MSI setups are
distributed as self extracting
executables (setup.exe)
• Even those that are not MSI
setups normally offer some
method of automated installation
Setup Formats
MSI
EXE
XCOPY
9. Dell World 2014
Just some of what is so great about Windows
Installer…
Silent
Command Line
Support
Verbose
Logging
Internal Error
Codes
Rollback on
Failure
Install-time
Transformations
Public
Properties
10. Dell World 2014
• Even as an MSI, what you can control and how you can control remains at
the whim of the vendor
Windows Installer: Public Properties
IAcceptLicense=Yes AgreeToLicense=YES LICENSE_ACCEPTED=true
acceptedeula=1 EULA=1
11. Dell World 2014
• Use your favorite MSI editor to view the Property table
• Those in upper case can be set
at the command line, others
require a transform (MST) file
• Orca is a free MSI table editor
from Microsoft which is also
capable of generating MST files
from edits you make
• An alternative to Orca is the free
InstEd MSI Editor
Determining Available Properties
http://itninja.com/blog/view/downloading-installing-and-using-ms-orca
12. Dell World 2014
• What should you do if you re not dealing with a Windows Installer setup?
To Repackage or not to Repackage
Pros
Consistency
Complete Control
Cons
Complexity
Lack of Vendor
Support
http://www.itninja.com/blog/view/appdeploy-com-gt-training-videos-gt-to-repackage-or-not-to-repackage
13. Dell World 2014
Determining Command Line Support
• Often a setup.exe will extract itself
to %temp%
• These are often an MSI and its
source files for which you can
create a MST
• Sometimes the setup.exe can
accept command line parameters
passed to the extracted setup, but
in general you are better advised
to grab these source files and
handle them directly
14. Dell World 2014
• Check what product was used to generate the setup to determine basic
support
• Shots in the dark: try standard command line arguments: /? /help /silent /s
/quiet
Default Switches by Vendor
InstallShield
-r, -s
Microsoft
-qn
Wise
-silent
Inno
/SILENT
15. Dell World 2014
• Record and ISS file
• setup.exe –r –f1.setup.iss
• Play back an ISS file to automate installation
• setup.exe –s –sms –f1.setup.iss
• If you don’t specify path to answer file, it defaults to %system%
• -sms holds the process open until execution is complete
• Use –f2 switch to specify location and filename of log file for
troubleshooting
• Does not always work and is not necessarily supported (or known) to vendor
InstallShield Response Files
http://www.itninja.com/blog/view/installshield-setup-silent-installation-switches
16. Dell World 2014
Virtualization? What Virtualization?
UI
Apps
OS
Device
Real
Virtual
UI
Apps
OS
Device
UI
Apps
OS
Device
System Virtualization
Machine Virtualization
Desktop Virtualization
Presentation Layer Virtualization
Experience Virtualization
Thin Client Virtualization
Application Virtualization
17. Dell World 2014
• Streamed deployments allow
you to keep your gold image
free of actual installations
• Updates can often be applied
centrally
• They remain separate from the
OS when “installed”
• Not everything is a good
candidate for virtualization
• Lack of standards
• Difficulty in troubleshooting
• Lack of vendor support
and of Application Virtualization
18. Dell World 2014
For each…
• Establish a custom
deployment package
• Choose suitable deployment
features
K1000 Deployment Options
Managed Installation (MI)
Patch Deployments
App-V
Scripted Installation
19. Dell World 2014
The system inventory is used to automatically
validate the presence of the software, if it is not
found, the provided installation command line is
executed. Often considered the better solution when
you want continual enforcement that the software is
installed.
Managed Installations
• Designed specifically for software deployment, it is the most simple
method
• Helps ensure a program is or is not present on the system as a matter of
policy
• Runs at agent check in within a specified timeframe
• Unique zip file delivery option
20. Dell World 2014
Primarily for configuration enforcement, but
capable of installation. An MSI Wizard can be used
to more easily leverage scripting for application
deployment
• Often considered better for one-time deployment on
a specific schedule, ad-hoc, or very complex
deployments
• A specific time of installation may be specified
• Allows for validation of prerequisites or other checks
within the installation task
• Provides ability to replace software in a single task
(uninstall old, install new)
K-Scripted Installations
21. Dell World 2014
The K1000 patch feed has about several common apps included as
software patches…
Patch Deployments
Sun/Oracle Java
Runtime Environment
Apple Safari Adobe Reader Adobe Air MS Internet Explorer
Apple Remote
Desktop
Apple QuickTime
Apple iTunes
Adobe Shockwave
Player
Google Chrome Citrix Receiver Mozilla Firefox
Adobe/Macromedia
Flash Player
Citrix ICA Client
Citrix Presentation
Server Client
Apple iMovie MS Silverlight MS PowerShell MS .NET Framework
MS MDAC
Components
Novel Client
MS Skype
Panda Security
Caching Proxy
MS SQL Server Books
Online
VMware Fusion VMware Workstation MS Defender WinZip
22. Dell World 2014
• Scripts are available to automation the creation (sequencing) of App-V packages
• Scripts are available to deploy App-V packages as you would a traditional
applications
• K1000 can can include App-V applications in inventory for managed systems
(regardless of deployment method)
• Version incompatibilities are being investigated and scripts will be updated as
necessary
App-V Deployment
http://www.itninja.com/blog/view/kace-microsoft-app-v-integration-scripts-for-the-k1000-now-available
If you have App-V, the K1000 can manage the creation,
deployment and inventorying of such applications. It does
not however replace any Microsoft licensing or software
requirements (you still need to be compliant and have the
prerequisites present on each machine)
23. Dell World 2014
For each…
• Establish a custom
deployment package
• Choose suitable deployment
features
K2000 Deployment Options
Post Installation Task
Automatically apply installations
following OS deployment via K2000
Include In Gold Image
Applications everyone need may be
suitable for inclusion in your image
Leverage K1000
Once your computer is online, a
K1000 can detect and deploy
24. Dell World 2014
• Command line installations of software may be
specified to run following an image or scripted
system deployment
• New v3.6 task/sequence engine
• Provides task progress messages
• Supports keep-alive to ensure all tasks complete even
through reboots
• Allows you to identify failed tasks (and optionally retry)
• Watch out for applications that install in multiple
steps; they may report success for the first step
causing problems as the process moves forward
without being aware
Post-Installation Tasks
25. Dell World 2014
• Including applications in your image makes for a quick
full deployment of new systems
• It also helps ensure that any security patches or
configurations are immediately present on new machines
without the risk of being out of date while updates and
patches are applied
• Managing images can become problematic as new and
updated software is regularly introduced
Image Inclusion
• This can be mitigated to a large degree by leveraging scripted deployments to create
new deployment images
• Including applications in an image may mean a frequent need to regenerate new
images to keep it up to date but, when speed of deployment is paramount, it can be an
affective approach
26. Dell World 2014
• By ensuring a new system falls into a smart
label with managed installations installed,
new systems with the K1000 agent will be
evaluated and have missing software
automatically applied
• Full deployment of new systems and K1000
deployed applications may take longer than
desired to complete
Leverage K1000 Deployments
27. Dell World 2014
For each, we will…
1. Establish a custom
deployment package
2. Discuss suitable deployment
features
Application Deployment Examples
Microsoft Office
Large package with vendor provided
customization wizard
Java Runtime Environment
Requires many applications to be
shut down during installation
Mozilla Firefox
Windows Installer deployment with
challenging customization
28. Dell World 2014
• Extract the contents
• Run the Office Configuration Wizard by running setup.exe /admin
• Stage MSP and installation files for network deployment using a replication
network or DFS share
• Run Managed Install specifying the source…
• Copy the files to the K1 and let it handle deployment of files to each system
• Use the above path as the alternative installation source
• Direct path to hosted files as part of the command line (attention to permissions)
Microsoft Office
http://www.itninja.com/blog/view/deploying-office-2013-managed-install
29. Dell World 2014
• JRE is in the patch feed, but is not customizable
• Uninstall all previous versions before installing the latest
• If you don’t know what is out there, you can use inventory
information to create a batch file that uninstalls them all, or a K-
Script that checks each version and removes if found
• Ensure applications with Java related tasks are not running.
Kill them or better yet, set the installation to run only when
a user is not logged in
• You may run into issues with variables pointing to different
locations on 32-bit vs. 64-bit. To avoid trouble, you may
wish to deploy 32-bit regardless as that is the the typical
browser browser architecture.
• Actual installation is a standard MSI setup with several
helpful properties to customize the installation
Java Runtime Environment (JRE)
•0 (Turns off checks for
updates)
AUTOUPDATECHECK
•0 (Turns off the installation
complete notice)
ENDDIALOG
•1 (Installs to IE)IEXPLORER
•0 (Turns off updating)JAVAUPDATE
•0 (Turns off updating)JU
•1 (Install to Firefox)MOZILLA
•0 (Stops auto restart after
install)
RebootYesNo
http://www.itninja.com/blog/view/deploying-java-7-through-gpo
30. Dell World 2014
• Firefox can be the simple or very difficult depending
upon customization needs
• Setup.exe –ms /INI=<path to config.ini>
• Add an all-companyname.js preference file to
<install_directory>/browser/defaults/preferences/all-
companyname.js
• This will be parsed last during the preference loading
process in order to establish customized defaults
• For further customization check out the open source
CCK (Client Customization Kit) Wizard
• A K-Script is well suited to making these post
installation customizations
Mozilla Firefox
•StringInstallDirectoryName
•StringInstallDirectoryPath
•True/FalseQuickLaunchShortcut
•True/FalseDesktopShortcut
•True/FalseStartMenuShortcuts
•StringStartMenuDirectoryName
•True/FalseMaintenanceService
http://www.itninja.com/blog/view/make-firefox-settings-unsing-cck-wizard
31. Dell World 2014
Deployment Tips
Active Setup
Deploying user profile targeted
changes
Suppressing Automated
Updates
Where to look and tips for leveraging
Process Monitor to discover
customizable settings
32. Dell World 2014
• At logon Windows compares:
• HKLMSoftwareMicrosoftActive SetupInstalled Components[ID]
• To what it sees at:
• HKCUSoftwareMicrosoftActive SetupInstalled Components[ID]
• Keys:
• (default)
• Name of job
• Version
• Version of job
• StubPath
• Command to be executed
Active Setup
34. Dell World 2014
• Unfortunately every Windows application handles control of updates
their own way
• Check ITNinja Software Library
• Monitor application for system changes when interactively disabling
updates in the application settings
• Typically boolean values stored in the registry or in a configuration file
o C:UsersBobKellyAppData<appname>
o HKEY_CURRENT_USERSoftware<appname>
Disabling Application Updates
35. Dell World 2014
• See just what your application is doing:
• How are settings being recorded?
• What is causing an error to occur?
• What is an application trying to do?
• To what registry or file area is a user error failing to read or write?
Process Monitor
37. Dell World 2014
• Capture from program launch to program close to ensure everything
is captured
• Drag the target icon from the toolbar onto a window to focus
capture events
• Right click on any value and choose to include or exclude it from
your filter on the fly (you can always hit reset if necessary)
• When searching always select the first captured event (default is to
search from current position downward)
• Search for less specific terms when you don’t find what you seek:
• “Update”, “Check”, “Config”, “cfg”, “preference”, “pref”
Process Monitor Tips & Tricks