Master SCCM Application Packaging and Deployment with Advanced Installer

Whether you're a seasoned IT professional or new to the application packaging industry, understanding the ins and outs of the process can be crucial.

Here’s everything you need to know about end-to-end application packaging and deployment with Advanced Installer and SCCM (System Center Configuration Manager):

Application Discovery

Application discovery is the initial phase of the application packaging and deployment process. It involves identifying the application that needs to be packaged and deployed.

Here are the detailed steps involved in this phase:

  1. Define Application Requirements: Start by gathering information about the application requirements. This includes understanding the purpose of the application, its intended users, any specific system or software prerequisites, and any dependencies it may have.
  2. Application Inventory: Conduct an application inventory to identify all the software applications installed within your organization. This can be done using tools like SCCM or other inventory management solutions. This step helps identify the applications that require packaging and deployment.
  3. Application Assessment: Evaluate the applications identified in the inventory to determine their packaging and deployment complexity. Consider factors such as application size, complexity, compatibility with target systems, and any known issues or conflicts.
  4. Determine Packaging Approach: Based on the assessment, decide on the appropriate packaging approach for the application. This could include using a repackaging tool like Advanced Installer to create an installer package, leveraging existing installation media, or using vendor-provided installation files.
  5. Review Licensing and Security Requirements: Ensure that your application has been approved by the specialized licensing team and that you received any license information that should be included in the package if that is the case. Also, make sure that the application has clearance from the security team - sometimes, installers are blocked and require special whitelisting.
  6. Documentation: Document all the gathered information, including application requirements, assessment results, and licensing details. This documentation will serve as a reference throughout the packaging and deployment process.

Application Packaging

Application packaging is the process of creating an installer package for the application using Advanced Installer.

Here are the detailed steps involved in this phase:

1. Install and Launch Advanced Installer: Download and install Advanced Installer, a professional packaging tool that provides a user-friendly interface for creating installation packages.

New to Advanced Installer? Start your 30-day free trial today and get all the premium features in Advanced Installer!

2. Create a New Project: Open Advanced Installer and create a new project for the application you want to package. Choose the appropriate project type based on the application requirements, such as a standard installation package or a silent installation package.

Advanced Installer GUI

3. Configure General Settings: Set the general settings for the package, including the project name, product details, and version information. Customize the package properties to match the application's identity and branding.

Configure package general settings

4. Define Installation Requirements: Specify any prerequisites or dependencies required for the application to function properly. This may include frameworks, libraries, or other software components. Advanced Installer provides options to include these dependencies within the package or as separate installations.

5. Add Application Files: Include the necessary application files in the package. This typically involves adding the executables, DLL files, configuration files, and any other resources required by the application. Advanced Installer provides a file tree view to easily organize and manage the application files.

Add application files

6. Configure Installation Options: Customize the installation options based on the application requirements. This includes selecting the installation location, creating shortcuts, defining registry entries, configuring file associations, and specifying user interface options.

7. Define Installation Conditions: Set conditions that determine whether the installation should proceed based on specific system requirements or prerequisites. For example, you can check for the presence of specific software components or hardware configurations before proceeding with the installation.

8. Add Custom Actions: Include custom actions in the package to perform additional tasks during the installation or uninstallation process. This may involve executing scripts, running commands, modifying system settings, or performing other custom actions required by the application.

Add package custom actions

9. Test the Package: Validate the package by performing thorough testing. Install the package on various test systems and ensure that the installation, uninstallation, and functionality of the application work as expected. Address any issues or conflicts that arise during testing.

10. Build the Package: Once the testing is complete and the package is error-free, build the final installer package. Advanced Installer provides options to build different types of packages, such as an MSI file, EXE file, or an AppX package.

11. Generate Deployment Files: After building the package, Advanced Installer generates the necessary deployment files, including the installer package itself, any associated support files, and metadata required for deployment.

12. Package Documentation: Document all the packaging steps, settings, and any specific considerations or configurations made during the packaging process. This documentation serves as a reference for future updates or troubleshooting.

By following these steps, you will successfully create an installer package for the application using Advanced Installer. The package will include all the necessary files, settings, and customizations required for the application deployment.

In an enterprise environment, you could also receive an application installer file already packaged and you can directly integrate it into SCCM.
However, most of the time, you would need to do the basic customization to it (disable auto-update, remove unnecessary desktop shortcuts, and so on), all depending on the company guidelines and requirements.

Testing and Validation

Testing and validation are crucial steps in the application packaging and deployment process to ensure that the packaged application works correctly and can be successfully installed and uninstalled.

Here are the detailed steps involved in this phase:

  1. Test Environment Setup: Set up a dedicated testing environment that closely resembles the target deployment environment. This environment should include representative hardware, operating systems, and any other relevant configurations.
  2. Installation Testing: Install the packaged application on test systems within the testing environment. Verify that the installation process proceeds smoothly without any errors or issues. Pay attention to installation time, progress indicators, and any prompts or dialogs that appear during installation.
  3. Functionality Testing: Validate the functionality of the installed application by performing various actions and using different features. Test common workflows, input validation, data storage, and retrieval to ensure that the application behaves as expected.
  4. Configuration Testing: Test different configuration scenarios to ensure that the application handles different settings and options correctly. Modify configuration files, change application settings, and verify that the application adapts to the changes appropriately.
  5. Uninstallation Testing: Perform uninstallation testing to ensure that the application can be cleanly removed from the test systems without leaving behind any residual files, registry entries, or other artifacts. Verify that the uninstallation process does not cause any system instability or conflicts.
  6. Compatibility Testing: Test the packaged application on a range of target systems within the testing environment. This includes different operating system versions, hardware configurations, and any other relevant software or environmental factors. Identify and address any compatibility issues that may arise.
  7. Performance Testing: Assess the performance of the installed application by subjecting it to various load and stress scenarios. Test its responsiveness, resource usage, and scalability to ensure that it performs optimally under different conditions.
  8. Error Handling and Logging: Validate the application's error-handling capabilities by intentionally triggering errors and exceptions. Ensure that appropriate error messages are displayed, and that the application gracefully handles unexpected situations. Monitor and review the application's logs to identify any errors or issues that may occur during installation or runtime.
  9. Internal User Acceptance Testing (UAT): Involve a dedicated group of users in the testing process. Collect their feedback, review their experience with the application, and address any usability or functionality concerns raised during the UAT phase.
  10. Documentation and Issue Tracking: Document any issues, defects, or observations encountered during the testing phase. Maintain a comprehensive issue-tracking system to record and track these items. Include steps to reproduce issues and any specific system configurations that may be relevant to troubleshooting.
  11. Iterative Testing and Fixes: Based on the feedback received during testing, address any identified issues or defects. Make necessary modifications to the application package and repeat the testing process to ensure that the fixes are effective and do not introduce new issues.

By diligently conducting testing and validation, you can ensure that the packaged application is robust, functional, and compatible with the target deployment environment. It allows you to identify and resolve any issues before the application is deployed to production, resulting in a smoother and more reliable deployment process.

Application Integration

Import the packaged application into SCCM. SCCM is a comprehensive management tool that enables centralized deployment and management of applications across a network of computers. It provides features for software distribution, inventory management, and patch management.

Step 1: Launch Microsoft Endpoint Configuration Manager

To start, make sure you have Microsoft Endpoint Configuration Manager installed on your computer.

This software is part of the Microsoft Endpoint Manager suite and is typically installed on a server dedicated to systems management.

Microsoft Endpoint Configuration Manager tile

To launch Microsoft Endpoint Configuration Manager, follow these steps:

1. Open the Start menu on your computer.

2. Type "Configuration Manager" in the search bar.

3. From the search results, click on the "Configuration Manager Console" or a similar option to launch the Configuration Manager console.

You may need to provide administrator credentials or additional authentication depending on your system's security settings.

4. Once launched, the Configuration Manager console will provide you with a centralized interface to manage and configure various aspects of your organization's devices and software deployments.

Step 2: Navigate to Application Management

After launching the Microsoft Endpoint Configuration Manager console, you will need to navigate to the Application Management section, where you can manage applications within Configuration Manager.

Microsoft Endpoint Configuration Manager (former SCCM) GUI

Follow these steps to find the Application Management workspace:

  1. Once the Configuration Manager console is open, you'll see a menu on the left-hand side with different workspaces and options.
  2. Locate and click on the "Software Library" workspace. This workspace is where you can manage applications, packages, and other software-related configurations.
  3. Within the "Software Library" workspace, you'll find various sections. Look for the "Application Management" section, which is specifically dedicated to managing applications.
  4. Click on the "Application Management" section to access the options and features related to managing applications within the Configuration Manager.

Step 3: Select Applications

After accessing the "Application Management" section in the Configuration Manager console, you will need to select the "Applications" option. This allows you to view and manage the existing applications in Configuration Manager.

Select Applications in SSCC

Follow these steps:

  1. Within the "Application Management" section, you'll see a list of options and features related to managing applications.
  2. Locate and click on the "Applications" option. This will display a list of all the applications that have been added to Configuration Manager.
  3. The applications list provides an overview of the existing applications, including their names, publishers, and deployment statuses.

Step 4: Create a New Application

To add a new application in Microsoft Endpoint Configuration Manager, you'll need to create it using the "Create Application" option. This will launch the "Create Application Wizard" to guide you through the process.

Create Application Wizard in SCCM

Here's how to create a new application:

1. After selecting the "Applications" option in the "Application Management" section, right-click anywhere in the applications list.

2. From the context menu that appears, select the "Create Application" option. This will initiate the "Create Application Wizard."

You can also click on the "Create" button in the toolbar at the top of the Configuration Manager console and select "Application" from the dropdown menu to start the wizard.

3. The "Create Application Wizard" will now open, and you'll be presented with several pages to fill in the necessary information for the new application.

4. On the first page of the wizard, titled "General Information," provide the following details:

- Name: Enter a descriptive name for the application.

- Publisher: Specify the name of the application's publisher or vendor.

- Software version: Enter the version number of the application.

- Language: Choose the primary language of the application.

- Additional information: Optionally, you can provide any additional information or description about the application.

5. Click on the "Next" button to proceed to the next page of the wizard.

Step 5: Specify Application Information

After providing the general information for the new application in the "General Information" page of the "Create Application Wizard," you will proceed to the next page where you can specify additional details about the application.

Specify Application Information in SCCM

Here's how to do it:

  1. In the "Specify the deployment type information" page of the wizard, you will see a section labeled "Deployment Types" where you can configure the deployment settings for the application.
  2. If you have an existing deployment type that you want to import, select the "Import" button and browse to the location of the deployment type file. This allows you to quickly import a pre-configured deployment type for the application.
  3. To manually specify the deployment type information, choose the "Manually specify the deployment type information" option. This option allows you to create a new deployment type for the application within Configuration Manager.
  4. Alternatively, if you want to create a new deployment type from scratch, select the "Create a new deployment type" option. This option enables you to define the installation and configuration settings specific to the application.
  5. Once you have chosen the appropriate option, click on the "Next" button to proceed to the next page of the wizard.

Step 6: Application Deployment Configuration

Configure the deployment settings within SCCM. This includes specifying the target collection of devices or users, deployment schedules, installation behavior (e.g., silent installation), and any additional requirements or dependencies.

After selecting the deployment type for the application in the "Specify the deployment type information" page of the "Create Application Wizard," you will proceed to the next page where you can configure the deployment settings specific to the selected deployment type.

SCCM Application Deployment Configuration

Here's how to configure the deployment settings:

1. In the "Deployment Types" page of the wizard, you will see the details of the selected deployment type. This includes information such as the deployment type name, installation program, uninstall program, detection method, requirements, dependencies, and user experience settings.

2. To configure the deployment settings, click on the "Edit" button next to the deployment type details. This will open a dialog box where you can make changes to the deployment settings.

3. Depending on the deployment type and the requirements of your application, you will need to configure the following settings:

a. Installation Program: Specify the command line or script that will be used to install the application. This program defines the steps to be executed during the installation process. You can enter the installation program details in the provided field, including the path to the installer file and any additional parameters or switches required for installation.

b. Uninstall Program: If applicable, specify the command line or script that will be used to uninstall the application. This program defines the steps to be executed during the uninstallation process. You can enter the uninstall program details in the provided field.

c. Detection Method: Define how Configuration Manager will detect whether the application is already installed on a device. The detection method ensures that the application is only installed if it is not already present on the target device. You can choose from various detection methods such as registry key, file, Windows Installer product code, or custom script. Configure the detection method based on the specific requirements of your application.

d. Requirements: Specify any prerequisites or dependencies that need to be present on the target device for the application installation to succeed. This could include requirements such as a specific version of the operating system, available disk space, or certain hardware components. Add the necessary requirements by clicking on the "Add" button and selecting the appropriate condition from the provided options.

e. Dependencies: If the application has any dependencies, such as libraries or other applications, you can specify them in the dependencies section. Configuration Manager will ensure that the dependencies are installed before the main application. To add a dependency, click on the "Add" button and select the dependent application or package from the list.

f. User Experience: Customize the user experience during the application installation by configuring the user experience settings. These settings include options such as displaying notifications to users, allowing users to interact with the installation process, and controlling the behavior of the installation. Adjust the user experience settings according to your preferences and requirements.

4. Once you have configured the deployment settings, click on the "OK" button in the deployment type dialog box to save the changes.

5. Click on the "Next" button to proceed to the next page of the wizard.

By configuring the deployment settings in this step, you define how the application will be installed, uninstalled, detected, and experienced by users during the deployment process. These settings ensure a smooth and successful deployment of the application on the target devices.

Step 7: Distribute Content

After configuring the deployment settings for the application in the previous step, you need to distribute the content of the application to the appropriate distribution points. This ensures that the necessary files and resources for the application are available for installation on the target devices.

SCCM Application distribution

Here's how to distribute the content:

  1. In the "Distribution Settings" page of the "Create Application Wizard," you will see a section labeled "Distribution Points" where you can select the distribution points for the application.
  2. By default, the "Automatically distribute content for dependencies of this application to distribution points" option is selected. This option ensures that any dependencies associated with the application are also distributed to the specified distribution points.
  3. To select the distribution points, click on the "Browse" button next to the "Distribution Points" field. This will open a dialog box where you can choose the desired distribution points.
  4. In the distribution points dialog box, you will see a list of available distribution points in your Configuration Manager environment. Select the distribution points that you want to use for distributing the application content. You can use Ctrl+Click or Shift+Click to select multiple distribution points.
  5. Once you have selected the distribution points, click on the "OK" button to close the dialog box and return to the "Create Application Wizard" page.
  6. Click on the "Next" button to proceed to the next page of the wizard.

Step 8: Configure User Experience

After distributing the content of the application to the distribution points, you can configure the user experience settings for the application deployment. This step allows you to customize how users interact with the installation process and provides options for displaying notifications and controlling the behavior of the installation.

User experience settings for the application deployment (SCCM)

Here's how to configure the user experience settings:

1. In the "User Experience" page of the "Create Application Wizard," you will see a section labeled "Installation behavior" where you can define the user experience settings.

2. To display a notification to users before the installation starts, select the "Display a notification to the user before the application is installed" option. This will show a message to users informing them about the upcoming installation.

3. In the "Installation behavior" section, you can choose from the following options:

- Install for system: Select this option if the application should be installed silently in the background without any user interaction.

- Install for user: Choose this option if the application should be installed when a user is logged on to the device. This allows the user to see the progress of the installation and potentially interact with it.

- Install only when a user is logged on: Select this option if the application should only be installed when a user is actively logged on to the device.

4. If you want to allow users to interact with the installation process, select the "Allow users to interact with the installation" option. This allows users to see and potentially customize the installation options.

5. You can further customize the user experience settings by clicking on the "Customize" button. This opens a dialog box where you can specify additional options, such as allowing users to postpone the installation or set a deadline for installation.

6. Once you have configured the user experience settings, click on the "Next" button to proceed to the next page of the wizard.

Step 9: Summary and Completion

In the final step of creating a new application in Microsoft Endpoint Configuration Manager, you will review the summary of the application's configuration and make any necessary changes before completing the process. Here's how to review and complete the application creation:

  1. In the "Summary" page of the "Create Application Wizard," you will see a summary of the configuration settings you have provided for the application. This includes the general information, deployment type, deployment settings, content distribution, and user experience settings.
  2. Carefully review the summary to ensure that all the information and settings are accurate and aligned with your requirements.
  3. If you need to make any changes, you can click on the corresponding step name in the left-hand pane of the wizard to navigate back to that specific step and modify the settings.
  4. Once you are satisfied with the configuration, click on the "Next" button to proceed.
  5. In the "Completion" page of the wizard, review the final summary of the application creation. This page confirms that the application creation process has been completed successfully.
  6. Optionally, you can select the checkbox for the "Close this wizard when I click Finish" option if you want to close the wizard automatically after clicking the "Finish" button.
  7. Click on the "Finish" button to complete the creation of the new application.

Congratulations! You have successfully created a new application in Microsoft Endpoint Configuration Manager.

Deploy the Application to SCCM

Once you have created the application in Microsoft Endpoint Configuration Manager, the next step is to deploy it to the target devices or user collections within your organization. Deploying the application ensures that it is available for installation on the designated devices.

You may find our SCCM Deployment Tool page topic interesting at this stage.

Application package deployment in SCCM

Here's how to deploy the application:

1. In the Configuration Manager console, navigate to the "Application Management" section and select the "Applications" option. This will display the list of applications.

2. Locate the newly created application in the list and right-click on it.

3. From the context menu that appears, select the "Deploy" option. This will open the "Deploy Software Wizard" to guide you through the deployment process.

4. In the "General" page of the wizard, specify the deployment settings for the application:

a. Select the target collection: Choose the device or user collection to which you want to deploy the application. This can be a specific group of devices or users within your organization.

b. Deployment purpose: Select whether the deployment is for "Available" or "Required" installation. Choose "Available" if you want to make the application optional for users to install, or select "Required" if you want to enforce the installation on the target devices.

c. Purpose settings: Configure additional options related to the deployment purpose. For example, you can specify the installation deadline, the maximum allowed run time, and maintenance window if applicable.

5. Click on the "Next" button to proceed to the next page of the wizard.

6. In the "Content" page of the wizard, verify the distribution points where the application content is available. The content should have been distributed in Step 7. Ensure that the necessary content is accessible to the target devices or users.

7. Click on the "Next" button to proceed to the next page of the wizard.

8. In the "Deployment Settings" page of the wizard, configure the deployment settings for the application:

a. Installation behavior: Choose the installation behavior for the deployment, such as whether it should be installed silently in the background or allow user interaction during installation.

b. User experience: Customize the user experience settings, such as displaying notifications or allowing users to interact with the installation process.

9. Click on the "Next" button to proceed to the next page of the wizard.

10. In the "Scheduling" page of the wizard, specify the deployment schedule for the application:

a. Choose the desired scheduling option, such as deploying immediately, scheduling a specific date and time, or using a recurring schedule.

b. Configure the schedule settings based on your requirements.

11. Click on the "Next" button to proceed to the next page of the wizard.

12. In the "User Experience" page of the wizard, specify the user experience settings for the deployment:

a. Choose the desired user notification settings, such as displaying a notification before the installation starts or allowing users to postpone the installation.

b. Customize the user experience options according to your preferences.

13. Click on the "Next" button to proceed to the next page of the wizard.

14. In the "Summary" page of the wizard, review the deployment settings and configurations. Ensure that all the information is correct.

15. Optionally, you can select the checkbox for the "Close this wizard when I click Finish" option if you want to close the wizard automatically after clicking the "Finish" button.

16. Click on the "Finish" button to initiate the deployment of the application.

Before rolling out the application to production, it is advisable to conduct a pilot deployment to a small group of test devices or users. This helps verify the deployment process and allows for any necessary adjustments or fixes.
Once the pilot deployment is successful, proceed with the production deployment. SCCM will distribute the application package to the specified target devices or users based on the deployment configuration.

Monitor and Manage the Application Deployment

Once you have deployed the application in Microsoft Endpoint Configuration Manager, it is important to monitor and manage the deployment to ensure that it progresses smoothly and successfully. Monitoring allows you to track the installation progress, view the deployment status, and address any issues that may arise.

Monitor the application deployment progress in SCCM

Here's how to monitor and manage the application deployment:

  1. In the Configuration Manager console, navigate to the "Monitoring" section and select the "Deployments" option. This will display a list of all deployments, including the newly created deployment for your application.
  2. Locate the deployment for your application in the list and select it to view its details and status.
  3. In the deployment details, you will see information such as the targeted collection, deployment purpose, deployment settings, and deployment status.
  4. To view more detailed information about the deployment, right-click on it and select the "Show Status" option. This will open the "Deployment Status" window where you can see real-time information about the deployment progress, including the number of devices targeted, installation status, and any errors or warnings.
  5. Monitor the deployment status to ensure that the application is being installed successfully on the target devices. You can refresh the status to get the latest updates.
  6. If any errors or issues are encountered during the deployment, you can investigate and troubleshoot them by examining the error messages and logs. Right-click on the deployment and select the "Show Messages" option to view detailed error messages and logs related to the deployment.
  7. Based on the deployment status and any identified issues, you can take appropriate actions to resolve them. This may involve updating deployment settings, redistributing content, or troubleshooting any specific device or user-related issues.
  8. Periodically check the deployment status and monitor the progress until the installation is completed on all targeted devices. This allows you to ensure that the application deployment is successful and that all devices have received and installed the application as intended.
  9. If necessary, you can also make changes or updates to the application deployment settings by modifying the deployment or creating additional deployments as needed. This can be done by right-clicking on the deployment and selecting the appropriate options.
  10. Once the deployment is completed and the application is successfully installed on the target devices, you can verify the application's functionality and perform any post-installation tasks if required. Usually, this information is provided by the end users and represents particular behaviors that have not been detected in UAT

Review and Maintain the Application Deployment

After the application has been deployed and installed on the target devices or users, it is important to review and maintain the deployment to ensure its continued effectiveness and address any ongoing requirements or updates. Here's how to review and maintain the application deployment:

  1. Regularly review the deployment status and usage of the application. Monitor the deployment reports and statistics available in Microsoft Endpoint Configuration Manager to gather insights on the installation success rate, usage trends, and any potential issues.
  2. Pay attention to any feedback or support requests related to the application deployment. This can help identify any user issues or specific requirements that need to be addressed.
  3. Stay up to date with application updates and new versions. Monitor for any updates or patches released by the application vendor and assess their relevance and impact on your deployment.
  4. Plan and execute application updates or patches as necessary. This may involve creating new deployments for updated versions, distributing updated content, and scheduling the deployment to minimize disruption and ensure smooth transition to the new version.
  5. Regularly review and assess the application deployment settings. Evaluate if any changes or optimizations are required based on user feedback, organizational requirements, or changes in the IT environment.
  6. Consider the need for additional deployments or deployments to different collections or groups of devices/users. This can be useful for targeting specific user groups, testing new features, or accommodating specific requirements.
  7. Maintain an open line of communication with users and stakeholders. Provide guidance and support for the application, address any concerns or issues, and keep them informed about any updates or changes related to the application deployment.
  8. Document the application deployment process and any relevant configurations. This documentation can serve as a reference for future deployments or troubleshooting scenarios.
  9. Regularly review and optimize the distribution of content to distribution points. This ensures that the application content remains readily available and accessible to the target devices or users.
  10. Continuously monitor the performance and impact of the application on the target devices or users. Address any performance issues, resource consumption concerns, or conflicts that may arise.

Conclusion

Even though the End-to-End process of application packaging in SCCM, seems complex and overwhelming, each step included in the process follows a logic and it’s directly linked to its predecessor.

Combining 2 powerful tools such as Advanced Installer and Microsoft SCCM in the hands of an IT Engineer, will guarantee successful application management in your organization.

Written by
Radu Popescu

Technical Writer at Advanced Installer, Technical Engineer on various enterprise client projects. Experienced in Software Packaging, SCCM infrastructure and System Administrating. Tech enthusiast and music producer in his spare time.