Skip to content
This repository has been archived by the owner on Aug 8, 2020. It is now read-only.
Tim Mangan edited this page Jun 10, 2017 · 10 revisions

Silent Install

Purpose

Silent-Install is intended to be a PowerShell based framework for the packaging of applications.

Often, a companies IT department will intake software applications from a variety of vendors and prepare them for distribution within their company. This may involve a process whereby the application is installed and customized for the use as intended by that company.

This installation/customization may end up being performed on end-user systems directly, likely induced by an electronic software delivery (ESD) system such as SCCM, or a repackaging process using install-capture tools like Admin Studio or the App-V Sequencer.

Silent-Install provides a PowerShell based utility framework that includes two sample invoking scripts. One script would be used to install dependencies (especially needed in situations involving the install-capture process when you do not want to capture these dependencies), and one to silently install and configure the application.

Requirements

The list of requirements that the framework must support for application installation/customizations include:

  • Ability to perform a silent installation by listing a file of type MSI, EXE, CMD, Zip, or PS1 along with command line arguments.
  • Ability to auto-detect and import .REG files as part of the configuration.
  • Ability to remove shortcuts by name.
  • Ability to add additional shortcuts.
  • Ability to move a registry key between hives (for example: HKLM to HKCU)
  • Ability to add or remove additional files.
  • Ability to auto-detect and run additional ps1 files for Registered Application Capabilities (user defined FTAs).
  • Ability to auto-detect and run additional ps1 files for ShortcutFixes (fix-up shortcuts to cmd/bat files).
  • Ability to auto-detect and run additional ps1 files for .Net Optimization.
  • Capability to filter auto-detected files by OS Bitness (32/64 bit) automatically.
  • Automatic elevation if the user did not start PowerShell script using run as administrator (UAC prompt will show).

How To Use

You would create a folder with either of the launcher sample scripts (InstallDependencies.ps1 or SilentInstall.ps1) along with the SilentInstall_Utilities.psm1 file and any additional installer files to be autodetected.

You edit the launcher sample script to meet your needs. Each will have an area designated for editing variables established in the module for your customization. For example, there are Dictionary variables to list an installer file and it's command line arguments. (The module will determine the command line to use based on the filetype of the installer file). Documentation in the sample file will lead you to the edits you need to make.

There is a designated place further towards the bottom of the sample files to include any additional PowerShell based scripting you need to perform for situations where the standard abilities/capabilities of the module do not need your needs.

Then just run the edited launcher script in PowerShell.

Example

The ExampleUsage_For_7Zip folder contains an example for using an edited SilentInstall.ps1 file for a complete silent installation of 7Zip, suitable for a customized installation of that software, such as when sequencing application in App-V. You would need to Add the actual 7-Zip install file to this folder (7-Zip is a popular open source application that is readily available from the internet). The example also includes a .REG file for customizing the installation, and a couple of ps1 files produced by the AppV_Manage tool to add FTA Application Registrations to the installation.

Clone this wiki locally