In this post I will show you how to remove Quick Assist using SCCM application Model. Using application model for removing the Quick Assist tool comes with the benefit of checking the compliance whether quick assist is present or not. Application model for removal also helps in enforcing the application deployment so as to make sure quick assist is always removed as part of Application Deployment Evaluation Cycle if someone has installed it again.

What is Quick Assist

Quick Assist is an in-built remote assistance tool in Windows 10 / Windows 11 which is helps users to provide remote session to others. You can compare Quick Assist with Team Viewer, but former once is an in-built application.

How to uninstall Quick Assist

There will be some scenarios where you wanted to uninstall Quick Assist. Big organizations might not want to use the tool and would like to block the access as this gives opportunity for outsiders to connect with your devices part of your company.

Following PowerShell command can be used to uninstall Quick Assist:

Remove-WindowsCapability -Online -Name App.Support.QuickAssist~~~~0.0.1.0

Use Application Model to uninstall Quick Assist

As explained earlier, using application model will enforce the uninstall status and helps us checking the status of success of uninstall and compliant status. Here compliant means, quick assist doesn’t exists on device.

Launch Configuration Manager console, and navigate to \Software Library\Overview\Application Management\Applications. Right click and select Create Applications to launch Create Application Wizard.

Select Manually specify the application information and click Next.

On General Information page, specify name as “Quick Assist Remove” and click Next.

Quick Assist Remove

On Software Center page, you can change the Localized application name and also can change the icon. Click Next.

RemoveQuickAssistAppModel 02

On Deployment Types page, click on Add to launch “Create Deployment Type Wizard”.

Deployment Types Quick Assist Remove

Under Specify settings for this deployment type, select type as “Script Installer” which will automatically select “Manually specify the deployment type information”, click Next.

Deployment Type Script Installer

Under General Information page, provide name as “Remove Tool”, click Next.

RemoveQuickAssistAppModel 05

Under Content page, we are not going to provide “Content location” as uninstallation string contains a one liner command to uninstall Quick Assist.

Specify Installation Program as :

powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -command "Remove-WindowsCapability -Online -Name App.Support.QuickAssist~~~~0.0.1.0"
Quick Assist uninstall command line

Note: Install program is actually the uninstallation command of Quick Assist Tool. We don’t need to specify Uninstall program.

Under Detection Method, select Use a custom script to detect the presence of this deployment type and click Edit to launch Script Editor.

Detection Method Custom script

Select Script type as “PowerShell” and provide following script contents:

$CheckQuickAssist=Get-WindowsCapability -Online -Name App.Support.QuickAssist~~~~0.0.1.0 | Select-Object -ExpandProperty state
If ($CheckQuickAssist -eq "NotPresent")
{
Write-Host "Quick Assist not present"
}
elseif ($CheckQuickAssist -eq "Installed")
{
}
Else
{
}
Configuration Manager Script Editor

You may also use In-built Code editor to add /edit the script for easy editing, click OK.

Configuration Manager Code editor

What is Detection Method script doing ?

The script is checking the status of Quick Assist installation status. The value is saved under variable $CheckQuickAssist.

If Variable returns true ie. “NotPresent”, we are using Write-Host value. We are returning value “Quick Assist not present” but we can use anything as we just wanted to return the write-host only with the text which can be anything.

Returning the Write-Host value is generating Not Empty STDOUT which means application detection state is Installed and won’t execute the installation.

Same way, if Quick Assist is present, variable will return value “Installed” and we are returning Empty value for STDOUT data read. An Empty value means “Not installed” means executing our script.

Our logic used is totally opposite, as installed status means “quick assist not present” and installed means “quick assist present” and ready to be executed. All this have dependency upon script exit code in form of Data read from STDOUT and STDERR. For more information on this, check the Microsoft Link

We can see Detection Method page is completed with custom script specified, click Next.

Deployment type detection method script type

Under User Experience page, specify:

Installation behavior: Install for system
Logon requirement: Whether or not a user is logged on
Installation program visibility: Normal

RemoveQuickAssistAppModel 11

Under Requirements & Dependencies page, click Next.

Under Summary page, click Next to complete Deployment type wizard.

RemoveQuickAssistAppModel 12

Once we are back to Deployment Types, we can see Deployment Type got created with the name “Removal tool”, click Next.

RemoveQuickAssistAppModel 13

Verify Summary and click Next  for creation of Application.

RemoveQuickAssistAppModel 14

Deploy Quick Assist Removal Application

Right Click the application Quick Assist Remove and select Deploy.

Under General page, select the collection for targeting the uninstallation of Quick Assist.

deploy quick assist remove

Under Content page, click Next.

Under Deployment Settings page, select:
Action: Install
Purpose: Required

RemoveQuickAssistAppModel 16

Note: Selecting action “Install” is actually the removal activity of quick assist as this is what we specified under “installation program” previously”.

Under Scheduling page, specify the schedule for availability of application deployment and installation deadline to trigger the removal activity.

RemoveQuickAssistAppModel 17

Under User notifications page, let’s go with “Display in Software Center and show all notifications” and click Next.

RemoveQuickAssistAppModel 18

Under Alerts page, click Next.

RemoveQuickAssistAppModel 19

Verify the Summary and Click Next to complete Deploy Software Wizard.

RemoveQuickAssistAppModel 20

Verify Removal Activity of Quick Assist through logs

Login to Windows 10 device and wait for policy to arrive. Or else you can initiate the Machine Policy retrieval & Evaluation Cycle.

Upon checking AppEnforce.log, we see Quick Assist got uninstalled successfully and returned exit code 0. With following command:

Executing Command line: "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -command "Remove-WindowsCapability -Online -Name App.Support.QuickAssist~~~~0.0.1.0" with system context
RemoveQuickAssistAppModel 21

Application removal activity triggered because AppDiscovery.log passed the information to AppEnforce that app is not present (exactly opposite to what we mean based upon STDOUT and STDERR we discussed earlier)

Logs says:
+++ Application not discovered with script detection. [AppDT Id: ScopeId_A01E8F68-CD81-4C08-80FA-477C0E10623B/DeploymentType_3ff6ca40-f7cd-41e7-b569-32af4cb344d4, Revision: 1]
+++ Did not detect app deployment type QuickAssist Remove(ScopeId_A01E8F68-CD81-4C08-80FA-477C0E10623B/DeploymentType_3ff6ca40-f7cd-41e7-b569-32af4cb344d4, revision 1) for system.
RemoveQuickAssistAppModel 22


Conclusion

For removal activity of Quick Assist, I prefer using Application Model. Deploying Quick Assist removal through package model seems to be very straight forward process but that can’t help you determining whether application is still present, it might not re-trigger the uninstallation if someone installs the quick assist again. Application Model for removal relies on Scripts detection method where we utilise STDOUT & STDERR Data read variables to return empty / non empty values to determine success, failure of application.  I will always prefer application model over Package model whether it is for installation or for uninstallation.

Important Links

How to Create Applications in Configuration Manager | Microsoft Docs


Discover more from SCCM | Intune | Device Management| Enterprise Mobility & Security

Subscribe to get the latest posts sent to your email.