The definitive list of everything you need to know about MSI packaging.
With Millennials making up more than half of today’s workforce, companies can no longer play by the old rules of the Baby Boomer or early Gen X generations. Today’s employees aren’t coming into the same office, same desk, and same computer every day as they used to only a decade ago. Whether it is for business or personal reasons, working from your home office, on the road, in a coffee shop, at co-working spaces, or even in a remote location is not only acceptable but even desired by some companies. But how does this link to MSI?
From the IT perspective, this requires new corporate security policies and Bring-Your-Own-Device (BYOD) guidelines, as well as an infrastructure that will support this new Digital Workplace with virtualization, hot desks, and other ways to make all the apps and technology an employee needs readily available at any moment in time, from anywhere.
Otherwise, you will lose productivity — not only because workers have to wait a few minutes for everything to load but because of the distractions that result from the wait. As a survey shows, 28% of Millennials would browse Facebook or make a personal call while waiting for an app to load. Even a load time of less than a minute could turn into 20 minutes of browsing on Facebook.
In addition, with the adoption of new technologies like cloud computing and Software-as-a-Service, application upgrade cycles have become significantly shorter. For example, the Bloomberg app receives an update every month. Now add Windows 10, Office 365, SCCM, and other update cycles twice to three times a year, and you know you will spend a lot of time just packaging and testing thousands of applications!
Today’s Application Packaging Requires Automation
To accommodate this new velocity of change, many IT organizations are looking to IT automation to not only manage their application management but also their entire IT Transformation process. However, in order to automate these, you need the ability to create robust and complete executable files that can be automated — otherwise, your entire process will stall waiting for an end user to click “Next” in a pop-up window.
Before we dive into that process in more detail, we need to define some basic terms, such as MSI, EXE, and Silent Switch, because we have found in recent years that there is a lot of confusion around what is what, how they are different, and how they can be used today.
What Is An .EXE (Executable) File?
An executable file, or .exe, such as the commonly named setup.exe, is a file that runs a program on an operating system like Windows, without needing additional software to perform its tasks. It cannot be read like a data file since it is compiled from source code, and it usually contains graphical elements for the GUI.
What Is An .MSI File?
Originally, an MSI file (or MSI package) was a database file used by the Windows Installer (formerly Microsoft Installer) to install update information, set registry values, and so on within the Windows Operating System. Even though MSIs were initially created for Windows updates only, they have been used by multiple third-party vendors to install applications on Windows.
A typical MSI file is a database that may contain the following elements:
- User Interface to install the files
- Executable (.exe) files
- Open Database Connectivity Settings
- Configuration settings
- Registry settings
- Custom actions to be executed
- Installation instructions
- Order of installation procedure
- Actual file to be installed, or the path for the uncompressed file location
- Other relevant files
All this information is necessary to install the associated application properly on a desktop or server.
MSIs on Windows 10
Since 2016, you can install MSI applications to Windows 10 using Microsoft Intune and Mobile Device Management. You can set up the enrollment requirements, manage its deployment, and add it to the groups you intend to deploy it into within Intune.
Then you can log on to a client computer as the admin and enroll users from there, forcing a synchronization of all new group policies through Azure AD.
How Is An MSI Different From An .EXE File?
An .exe file is a non-MSI installer or bootstrapper, which can include one or more MSIs packaged into it, while an MSI file only allows one. So an EXE can run multiple MSIs, i.e., a needed dependency on .NET, and gives the users extra control of the installation process.
An MSI file can also include a special .exe file, called a ‘bootstraper’ setup.exe file that doesn’t perform the installation of the app but simply checks that the correct version of Windows Installer is installed and launches the MSIEXEC.EXE within the Windows OS to execute the MSI file.
MSIs can take the user out of the equation and perform the installation using the pre-determined options and the environment it is being installed into. The silent switch, which we will define next, is critical to having an MSI not need user interaction to complete its task.
Usually, when running a setup.exe, the user needs to interact with the application, clicking ‘Next’ or choosing a specific option to customize the app. To automate the process, however, you will need to be able to perform a silent/unattended installation where all user prompts that would halt an installation until a user interaction, are suppressed and the installation goes to completion.
This can be accomplished by applying one of several ‘Silent Switches’ available to vendors. Using an EXE’s silent switch you can create an MSI with Access Capture. On a virtual machine, you set the options to be used during installation based on the environment. This allows the application to be loaded with the proper protocols without needing the user to click on prompts or make choices. This procedure with an MSI package is less problematic than using just an EXE.
Why Do You Want To Create An MSI From Various Types Of .EXE Files?
Before we look at how to automate the conversion process, let’s answer the question of why we want to go through the trouble in the first place. The answer is pretty straightforward, actually — an .EXE file can be compiled in thousands of different ways using hundreds of languages. In addition, the way .EXE files have been developed has changed significantly over the years. To be able to automate their execution, it is not as simple as slapping on the usual silent switch (/s for silent or /q for quiet) as you don’t always know the silent switch command line.
But in today’s continuously and faster than ever changing IT environments, automation has become mission-critical. You need to automate the discovery process to enable a product owner or other end user to create an .MSI format app as all MSIs have the same silent switch simples! This way, the automation of a physical application from .MSI to App-V or AppStacks is now easily possible from the command line. All you have to do is pass the .MSI file with its silent switch through CAPTURE for your desired virtual application file format e.g., App-V or AppStack.
How Is An Exe File Converted Into An MSI Using An MSI Packaging Tool?
A typical enterprise will need to package and test thousands of apps throughout a single year, so handling the different executable files in an efficient manner and creating MSIs from .exe files in an automated fashion is essential. But what does this process look like?
While there are many different MSI packaging tools out there, I believe Access IT Automation has a unique and very intelligent way of packaging MSIs and integrating this automation into the entire automated packaging and testing process.
When you upload an executable file into Access Capture, the tool is intelligent enough to detect which type of file (e.g., MSI, .exe) it is and will present you with the appropriate screens to proceed:
- If Capture recognizes an MSI package, it will skip the discovery phase and immediately go into a screen that prompts the user to make a choice of next steps (e.g., give you the option to create a virtualized app or test the MSI)
- If the tool detects an .exe file, it kicks off the discovery process which enables the owner of the .exe file to run through the setup routine in discovery mode inside a virtual machine. As they step through the setup process, they answer all the user prompts, e.g., next buttons, licensing, toggle buttons on and off, customizing the app. This happens as part of Capture’s automatic documentation creation process. In essence, Capture will create a snapshot of the .exe and the installation routine and create an MSI file.
If a silent switch is not present, Access Capture allows you to place a silent switch depending on the application (e.g., /q or /s) in the command if you know it for this particular file type.
With this new velocity of updates of Windows 10, Office 365, SCCM, Windows Server, and other fast-moving upgrade cycles, relying on tedious manual packaging to keep up is not feasible anymore. More and more enterprises look to IT automation to run an efficient and productive business-as-usual IT environment.
However, as with so many other things in IT, the key principle of “Garbage In, Garbage Out” applies here as well. To properly set up these automated processes you have to start in the very beginning — because, without automatable, robust and complete MSI packages, the best app packaging tools won’t be of any use. To learn more about MSI packaging tools and what you need to look out for before purchasing one, keep reading.