FREE EBOOK
Advanced Techniques in MSI Packaging
Free Online Training Course
Master the Skills and Techniques of MSI Packaging
A complete guide to building robust and secure MSI packages
WHAT YOU'LL MASTER
Welcome to “Advanced MSI Packaging,” the definitive guide to building robust and secure installation packages. This book builds upon the foundation laid by “MSI Packaging Essentials” providing an in-depth exploration of the MSI packaging process and its many intricacies.
The Difference Between Application Packaging and Repackaging
WHAT YOU'LL MASTER
Packing and repackaging are two key principles in application deployment and installation. While both of these processes are necessary for developing reliable and efficient installation packages, they take different approaches and different factors into account.
Repackaging Methods: via Snapshot or via PSAppDeployToolkit
WHAT YOU'LL MASTER
The practice of adapting or updating existing installation packages to fit specific criteria is known as application re-packaging. Transforms, which are adjustments to an existing package that are implemented during installation without affecting the original package itself, are one technique for re-packaging.
Application repackaging as a method for deploying applications
WHAT YOU'LL MASTER
Application repackaging is a strong way to distribute programs in an enterprise environment, with many advantages over alternative methods. Repackaging entails capturing an application's data, registry settings, and other components and structuring them into an MSI package format that can be readily installed on target systems.
Importance of Application Dependencies in MSI Packaging
WHAT YOU'LL MASTER
Understanding application dependencies is an important part of the MSI packaging process because it allows IT professionals to ensure that the installation package contains all required components and can be installed and operated reliably on target computers.
Per-user versus Per-machine installations
WHAT YOU'LL MASTER
One of the most important decisions that IT professionals must make when deploying software on Windows machines is whether to use a per-user or per-machine installation.
Strategies for Repackaging Applications: MSI and EXE Approaches
WHAT YOU'LL MASTER
Strategies for Repackaging Applications: MSI and EXE Approaches. Depending on the situation, there are a number of actions you can take when it comes to repackaging an application. The MSI scenario is quite straightforward so we would go ahead and have a look over the EXE scenario.
Repackaging role in organizations software lifecycle management
WHAT YOU'LL MASTER
Capturing an existing software installation, transforming it into an installer package, and customizing it to meet specific deployment requirements are all part of the process. While adhering to best practices and compliance standards, repackaging ensures consistent and reliable installations.
Repackaging process to ensure a smooth and successful outcome
WHAT YOU'LL MASTER
It is critical to adequately prepare before beginning the repackaging process to ensure a smooth and successful outcome. Understanding the software to be packaged, gathering the necessary resources, and laying a solid foundation for the repackaging project are all part of proper preparation. This chapter delves into key considerations and best practices for repackaging preparation.
Capturing an Application with Repackager
WHAT YOU'LL MASTER
Advanced Installer includes a powerful repackaging solution for converting traditional installations into MSI packages. It offers a user-friendly interface and an array of features, simplifying the creation of professional and reliable MSI packages. What is the SnapShot Method? The snapshot method is a popular technique for creating installer packages in application repackaging. Let's take a closer look at the snapshot method and how it's used in Advanced Repackager.
Software deployment with Advanced Installer
WHAT YOU'LL MASTER
As mentioned earlier, once a repackaging operation is finished you can choose one or multiple builds. Of course, you can create any additional builds in the AIP project. But what does that mean?
Use Properties and MSI self-healing process to customize your app
WHAT YOU'LL MASTER
An advertised shortcut is a pointer to a file or folder that is installed by an MSI package. When running an advertised shortcut, Windows Installer first checks that all the components of the respective feature are installed before running the file. If any of the components are missing, Windows Installer repairs the installation by installing the missing components. This ensures that the application remains consistent and that all of its features are available when required.
Manage User Data Correctly in Windows Installer Technology
WHAT YOU'LL MASTER
Because of the way MSI packages are cached in the OS once they are installed, the above solution may not be the best suited to cover all cases when it comes to user data in the form of files.
Classes in Windows Registry for File Type Management
WHAT YOU'LL MASTER
Classes in the Windows Registry enable the organization and management of file type associations and other related settings. Each file type association in the registry is represented by a class that defines the association's properties and behaviors.
Manipulating of registry classes with Advanced Installer
WHAT YOU'LL MASTER
Advanced Installer supports working with COM components extensively, including the ability to define custom interfaces, type libraries, and classes. The Advanced Installer GUI can be used to define and register these components.One of the primary advantages of using Advanced Installer for COM component work is its ability to generate registry entries and other configuration data automatically based on the information defined in the installation package. This can greatly simplify the process of creating and managing COM components, particularly in complex applications requiring multiple components and interfaces.
Optimize MSI Deployment with Custom Actions
WHAT YOU'LL MASTER
The most popular scripting language for MSI custom actions is VBScript as this is also natively supported and interpreted by the Windows Installer. Microsoft's Visual Basic Scripting Edition (VBScript) is a lightweight scripting language.
De-hardcoding Files using PowerShell and VBScript Custom Actions
WHAT YOU'LL MASTER
Often throughout the repackaging process, it's frequent to come across files featuring straightforward paths such as: C:\Program Files. Allowing users to modify the installation path of their application is a common practice. However, this practice comes with one downside: the need to change the path written in those particular files during the installation.
Delete empty directories using Powershell or Custom Actions
WHAT YOU'LL MASTER
Technically, during the uninstallation process, based on what directories are defined in the Directory table, the MSI usually handles the deletion of all directories and assures a clean machine. Looking at the requirements, it might be the case that the application creates another directory that isn’t present in the Directory table, and when the MSI is uninstalled, the directories will remain behind.
Detect and Terminate Processes with custom actions
WHAT YOU'LL MASTER
The custom actions topic is one that most beginner IT Professionals tend to avoid and it’s to be understood because MSI technology is a very complex topic, not to mention the best practices that were developed during the years and somehow expected for the uninitiated to implement in their installers. So let’s start an article series where we touch 9 of the most popular custom actions that are used in the industry. In these articles we will have a look on how you can implement them easily with Advanced Installer but also by using VBScript or PowerShell custom actions.
Contents
Firewall rules with VBScript, PowerShell and Advanced Installer
WHAT YOU'LL MASTER
To make the environment more secure it’s important to properly define and configure the firewall of your machines. However, there might be times when a specific executable must be added as an exception to the Inbound or Outbound rules of the firewall in order to have access.
Installing/Uninstalling drivers using VBScript or PowerShell
WHAT YOU'LL MASTER
Working with drivers is not something to be worried about. Although the MSI technology does not offer a native way via the database tables that you can use, the OS is offering multiple choices for you to achieve this goal.
Installing unsigned drivers using custom actions
WHAT YOU'LL MASTER
Create a digital certificate by using the MakeCert tool Open an x86/x64 Free Build Environment command prompt with administrator permissions, by right-clicking x86 Free Build Environment on the Start menu, and then selecting Run as administrator. At the x86/x64 Free Build Environment command prompt, type the following command on a single line (it appears here on multiple lines for clarity and to fit space limitations). Create a .cat (catalog) file for the driver. We notice that some drivers don't contain a cat file, so we'll need to generate one. Open the .INF file in a text editor. Ensure that under the [version] section that you have an entry specifying a .cat file.
Contents
How to Register/Unregister DLL/OCX using custom actions
WHAT YOU'LL MASTER
Object Linking and Embedding (OLE) is a proprietary Microsoft technology that allows developers to embed and link to other objects. With OLE Control Extension (OCX), you can develop and use custom user interface elements. You can also achieve OLE controls via Dynamic-Link Library(.dll) files.
Write in hosts file with VBScript or PowerShell
WHAT YOU'LL MASTER
On the Windows operating system, the hosts file is a plain text file that maps hostnames to IP addresses. It functions as a local DNS (Domain Name System) resolver, allowing you to specify the IP address associated with a specific hostname.
Conditional statements in MSI packaging
WHAT YOU'LL MASTER
Conditional statements give you greater control and flexibility when creating MSI packages. This allows you to build robust setups that can be tailored to suit various system configurations, making it easier for users to install as required. Conditional statements in MSI packaging give you the control to decide when an action should be taken. This means that certain files or applications will only get installed if a certain set of conditions are met.
Managing Dependencies in MSI Packages with Advanced Installer
WHAT YOU'LL MASTER
While conditional statements give you the possibility to clearly define the needed environment for your installer, it doesn’t let you modify the system in order to make the proper changes for your application to be installed.
Best Practices for Creating Reliable MSI Transform Files
WHAT YOU'LL MASTER
MSI (Microsoft Installer) transform files are an extremely useful tool for customizing and modifying MSI packages without having to directly edit the original package.
How to Repackage ClickOnce Applications
WHAT YOU'LL MASTER
ClickOnce is a Microsoft deployment technology that facilitates deploying Windows applications.In one of our previous articles, we discussed How to Replace the ClickOnce app with MSIX. But, what if you want to "repackage" a ClickOnce application? That's what we'll be covering in this article.
Creating and Configuring Services in MSI packaging
WHAT YOU'LL MASTER
Introduction to Services - Services play a critical role in the installation and management of software applications. They are independent background processes that provide specific functionality or perform system tasks. Services are components that can be installed, configured, and managed as part of an application installation in the context of Windows Installer (MSI). Understanding Services in MSI - Services are represented as components in MSI, which include files, registry entries, and configuration settings required for the service to function properly.
MSI patch (MSP) vs Windows Installer (MSI) Upgrade
WHAT YOU'LL MASTER
An MSI upgrade refers to the process of installing a new version of a software product that replaces an existing installation. It involves updating the installed product with a higher version while preserving user data and settings.
Command lines for package deployment
WHAT YOU'LL MASTER
MSI command lines are used to customize the installation and configuration of MSI (Microsoft Installer) packaged applications. The following are some of the most commonly used MSI command lines.
Deploy MSI/EXE/VBscript/PowerShell via SCCM
WHAT YOU'LL MASTER
SCCM is an abbreviation for System Center Configuration Manager. It is a comprehensive systems management solution offered by Microsoft for managing large-scale software, operating system, and device deployments.
Deploy EXE/VBScript/PowerShell via Intune's Win32 app
WHAT YOU'LL MASTER
Intune is a cloud-based service provided by Microsoft that focuses on mobile device management (MDM) and mobile application management. It is also known as Microsoft Intune or Microsoft Endpoint Manager (MAM).
About Advanced MSI Packaging ebook
WHAT YOU'LL MASTER
In conclusion, this book has provided a comprehensive exploration of various topics related to software installation and deployment.
Contents