You can remove a device from collection to initiate an implicit uninstall of an application using SCCM. Let’s understand the easiest way to enable implicit uninstallation of applications using SCCM.
You can now enable the Configuration Manager application deployment to support implicit uninstall from the 2107 or later version. What does this mean? You will see this in the below section of this post.
It would be best to make sure the SCCM client version is 5.00.9058.1012 or later. The implicit uninstall option is not available for 2103 or previous versions of SCCM. You will need to upgrade both the SCCM server and the client to the latest version 2107 or later to use this feature.
Update – Starting with the SCCM 2111 production release, you can use user collections with the Implicit uninstall option.
This feature is introduced with the 2107 version of Configuration Manager. Microsoft released the 2107 version of ConfigMgr, and you can check the top 5 features of this version.
What is Implicit Uninstall
You can enable an application deployment to support implicit uninstall. What is an Implicit uninstall? When a resource is in a collection, the application installs. Then when you remove the resource from the collection, the application uninstalls.
This uninstall behavior applies only to deployments targeted to device collections. The following steps give you an option to perform an implicit uninstall of the business application.
- You have deployed an application to a device collection as a required deployment.
- You have enabled the collection – Uninstall the application if the targeted object falls out of the collection.
- If a particular device is removed from the collection, then the application uninstall is automatically initiated.
Delete the Existing Deployments – Implicit Uninstall of an Application using SCCM
If you don’t make the following change in the existing application where you are trying to test implicit uninstall, SCCM may reinstall the application. Make sure you have deleted all the existing:
- Deployments
- Simulated Deployment
- Task Sequences deployments where this application is used
You can delete the existing deployments using the following steps. You can follow similar steps to delete other workflows like simulated deployments and Task Sequence deployments.
- Navigate to \Software Library\Overview\Application Management\Applications.
- Select the application called NotePad++.
- Select the deployment tab and delete the deployments available.
NOTE! – Not sure how easy to remove the existing deployment in large organizations. I will let you comment below. This is one of the limitations of the current version of implicit uninstalling applications.
Implicit Uninstall Options from Deployment Types
Ensure you have enabled all the implicit uninstall options from application deployment types. Some of the examples are given below.
- Select the application NotePad++ and click on Deployment Types tab.
- Select Properties of deployment type from ribbon menu.
- Select the Content tab and make sure uninstall properties are setup correctly.
- For example – Uninstall Content Settings ->Same as install content (default option).
Select the Programs tab now to check and confirm the uninstall command line. As you can see in the below screenshot, the uninstall command line is explicitly mentioned.
Make sure Run install and uninstall programs as 32-bit process on 64-bit clients option is enabled if required.
Deployment Settings Page Wizard to enable implicit uninstall
Let’s start the new deployment for NotePad++ now. You can select the application from the applications node and use the ribbon menu -> Deploy option to start the Deploy software wizard. This is the Easiest way to Uninstall an Application using SCCM.
- Once you are there in Deployment settings page in Deply software wizard, you have to select the following options to enable implicit uninstall of applications.
- Action -> Install
- Purpose -> Required
- Enable “Uninstall the application if the targted object fails out of the collection” option.
- Complete the deployment wizard with the default settings. Or you can customize deployment as per the requirements.
On the client-side (Windows 10/Windows 11), you can see the NotePad++ got installed after initiating the machine policy from the ConfigMgr applet in the control panel.
You can check the deployments from the monitoring workspace to ensure that the reporting is working fine and the deployment is compliant.
How to Initiate Implicit Uninstall
Let’s initiate implicit uninstall of applications by removing the device from the device collection so that the SCCM can automatically initiate an uninstall action with the client device. I’m using direct membership collection for this testing. I can remove it from:
- Select the collection that you have deployed NotePad++.
- Go to properties -> Membership Rules tab.
- Click on the device record you want to remove and click on Delete button.
SMS_ImplicitUninstall.log
You can see SMS_BUSINESS_APP_PROCESS_MANAGER_ImplicitUninstallWorker got introduced to the 2107 version of Configuration Manager.
This component keeps track of changes in the application where you have enabled implicit uninstall and devices in the device collection every 10 minutes and initiates the implicit uninstall action. You can refer to the SMS_ImplicitUninstall.log file on the site server.
This is the easiest way to uninstall an application using SCCM. However, some more new components are added to ConfigMgr, which might even cause some performance issues? Will see.
You might also see some error that \SOFTWARE\Microsoft\SMS\Tracing\SMS_ImplicitUninstall registry entry is missing on the site server log file called SMS_ImplicitUninstall.log.
NOTE! – The longest time period for the client to uninstall the app is 85 minutes (assuming the machine policy polling cycle is set to 60 minutes). The site can process up to 1000 collection membership changes for this uninstall feature every 10 minutes.
component="SMS_BUSINESS_APP_PROCESS_MANAGER_ImplicitUninstallWorker" context="" type="1" thread="149" file="">
<![LOG[ImplicitUninstall: ProcessAppCollectionRulesQueue - Total count of records inserted is 0.]LOG]!><time="05:17:42.2801477" date="8-3-2021" component="SMS_BUSINESS_APP_PROCESS_MANAGER_ImplicitUninstallWorker" context="" type="1" thread="151" file="">
ImplicitUninstall: ProcessAppCollectionRulesQueue - Total count of records inserted is 1.
ImplicitUninstall: ProcessAppCollectionRulesQueue - Event triggered
ImplicitUninstall: ProcessAppCollectionRulesQueue - Total count of records inserted is 0.
AppDiscovery.log
I didn’t want to wait for 85 minutes to test this scenario, initiating the policies manually from the ConfigMgr applet. I have initiated a Machine policy and Application deployment Evaluation cycle to test this scenario quickly.
I noticed action type uninstall is initiated in AppDiscovery.log. However, the application is not getting uninstalled or removed from the Windows PC.
CAppProvider::GetContentInfo, sActionType: Uninstall
ActionType - Uninstall will use Content Id: Content_f689bc72-9b9f-47cd-83f6-87e2383bd7c7 + Content Version: 1 for AppDT "NotePad ++" [ScopeId_1074285A-82C7-474F-B242-1EE20F8C3CE5/DeploymentType_ca8a9228-d5ae-43a5-ac5d-43860528358b], Revision - 6
I have not gone into the details of further troubleshooting on this issue. T e application didn’t get uninstalled from Windows 10 PC. However, I assumed that SCCM sent instructions to the client that this application (NotePad++) should be uninstalled from the PC.
NOTE! – You can get help in troubleshooting application deployment related issues from https://www.anoopcnair.com/sccm-application-model-troubleshooting-configmgr/
Resources
- https://docs.microsoft.com/en-us/mem/configmgr/apps/deploy-use/uninstall-applications
Hello,
Thanks a lot for this Blog.
Is there a way to set this Deployment Setting flag (uninstall this application if the target…) for all existing applications/deployments by Powershell…?
Thanks in advance
Mike
“You have enabled the *collection* – Uninstall the application if the targeted object falls out of the collection.” –> This is an option in the Deployment Settings, NOT in the collection.
Side note: why are you using the ‘Run install and uninstall programs as 32-bit process on 64-bit clients’ on a 64-bit installer? I don’t understand it.
Dear Anoop sir, I want to uninstall old version of snagit and install updated version but Old version is installed by Powershell script. So please help me to uninstall and install new version of snagit.