- package: tis-remove-windows-appx-template
- name: Remove Windows AppX
- version: 4-24
- categories: Security
- maintainer: WAPT Team,Tranquil IT,Joffrey Le Piquet, Jordan Arnaud, Bertrand Lemoigne
- locale: all
- target_os: windows
- architecture: all
- signature_date:
- size: 7.96 Ko
package : tis-remove-windows-appx-template
version : 4-24
architecture : all
section : base
priority : optional
name : Remove Windows AppX
categories : Security
maintainer : WAPT Team,Tranquil IT,Joffrey Le Piquet, Jordan Arnaud, Bertrand Lemoigne
description : Removes unwanted preinstalled Windows UWP apps
depends :
conflicts :
maturity : PROD
locale : all
target_os : windows
min_wapt_version : 2.3
sources :
installed_size :
impacted_process :
description_fr : Supprime les applications Windows UWP préinstallées indésirables
description_pl : Usuwa niechciane preinstalowane aplikacje Windows UWP
description_de : Entfernt unerwünschte vorinstallierte Windows UWP-Anwendungen
description_es : Elimina las aplicaciones Windows UWP preinstaladas no deseadas
description_pt : Remove aplicações Windows UWP pré-instaladas indesejadas
description_it : Rimuove le app UWP di Windows preinstallate non desiderate
description_nl : Verwijdert ongewenste vooraf geïnstalleerde Windows UWP-apps
description_ru : Удаление ненужных предустановленных приложений Windows UWP
audit_schedule :
editor :
keywords : remove,appxpackage,appxprovisionedpackage,remove-appxpackage,remove-appxprovisionedpackage
licence :
homepage :
package_uuid : b708add2-878c-4048-ac05-12c81a05d0cb
valid_from :
valid_until :
forced_install_on :
changelog :
min_os_version : 10.0
max_os_version :
icon_sha256sum : 9420721210f5d9c50c9e35c9fdbf0a088b30e165df8311c5f2176ce60e122475
signer : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date : 2025-07-27T09:03:26.000000
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
signature : Geopr7gWn6R0A1pBg/ha200RGxVGHAX/VyIyMaZ+ilSyw4vR5PGVG8gSN+RPVLo3bHWiheSvbuuLGqp1IH9Myq5jFjt8zLkXBYdZXgerh3X3ktpGVCIi1n65fdY/muuDMjkcz28lEgc2KzGt53T6SXjZVx1yYhKtTW2eepfkKwBFSM+1yCJJLEDKe1/5kRfvs4qSKfJ4OTGk5ZxohU90g9ORDO0VcD899425+hnLwoVMH7WSj4UHZqeIGM+hMFNCjQgIIPssOLFWHNUZEvhLi5cvu9fv0aeHv1VlrLFmI82XOWVyHsbOybpe/PxPKGvAF+W2WETKA0X2knPt2n0rgA==
# -*- coding: utf-8 -*-
from setuphelpers import *
import json
error_message = """
\!/ WARNING \!/
This package requires customization before use!
Please run update_package to generate the appx_to_uninstall.json file
Or create the file manually and add a list of application names to be uninstalled
Exemple:
[
"Microsoft.BingFinance",
"Microsoft.WindowsAppRuntime.1.3",
"Microsoft.SecHealthUI",
"ClearChannelRadioDigital.iHeartRadio"
]
"""
def install() :
appx_json_filename = 'appx_to_uninstall.json'
if not isfile(appx_json_filename):
error(error_message)
# json file can be used in session_setup
filecopyto(appx_json_filename,r'c:\windows\temp')
print("Removing: Unwanted Microsoft Store applications...")
installed_appx_packages = run_powershell("Get-AppxPackage -AllUsers")
with open(appx_json_filename) as f:
to_uninstall_apps = json.load(f)
for app in installed_appx_packages :
if app['Name'] in to_uninstall_apps :
#the following key prevents appx from being reinstalled during OS upgrades
registry_set(HKEY_LOCAL_MACHINE,fr'SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Deprovisioned\{app["PackageFamilyName"]}','','')
try :
print("Removing : %s" % app['Name'])
run_powershell("Remove-AppxPackage -AllUsers -Package %s" % app['PackageFullName'])
except :
print("Unable to remove : %s" % app['Name'])
print("Done")
# To remove appx installed on current user
def session_setup():
appx_json_filename = r'c:\windows\temp\appx_to_uninstall.json'
if not isfile(appx_json_filename):
error(error_message)
print("Removing: Unwanted Microsoft Store applications...")
installed_appx_packages = run_powershell("Get-AppxPackage")
with open(appx_json_filename) as f:
to_uninstall_apps = json.load(f)
for app in installed_appx_packages :
if app['Name'] in to_uninstall_apps :
try :
print("Removing : %s" % app['Name'])
run_powershell("Remove-AppxPackage -Package %s" % app['PackageFullName'])
except :
print("Unable to remove : %s" % app['Name'])
# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *
import waptguihelper
default_appx_list = [
## Windows 11 default apps
"Microsoft.Copilot",
"Clipchamp.Clipchamp",
"Microsoft.BingNews",
"Microsoft.Paint",
"Microsoft.PowerAutomateDesktop",
"Microsoft.StorePurchaseApp",
"Microsoft.Todos",
"Microsoft.WindowsNotepad",
"Microsoft.WindowsTerminal",
"MicrosoftCorporationII.QuickAssist",
"MicrosoftTeams",
"MicrosoftWindows.Client.WebExperience",
"Microsoft.OneDriveSync",
"Microsoft.OutlookForWindows",
"Microsoft.Windows.DevHome",
"Microsoft.Windows.DevHomeAzureExtension",
"Microsoft.Windows.DevHomeGitHubExtension",
## Windows 10 default apps
"Microsoft.3DBuilder",
"Microsoft.Print3D",
"Microsoft.Microsoft3DViewer",
"Microsoft.MixedReality.Portal",
"Microsoft.YourPhone",
"Microsoft.WindowsFeedbackHub",
"Microsoft.Windows.Cortana",
"Microsoft.GetHelp",
'Microsoft.Appconnector',
"Microsoft.BingFinance",
"Microsoft.BingNews",
"Microsoft.BingSports",
"Microsoft.BingWeather",
"Microsoft.FreshPaint",
"Microsoft.MSPaint",
"Microsoft.Getstarted",
"Microsoft.MicrosoftOfficeHub",
"Microsoft.MicrosoftSolitaireCollection",
'Microsoft.MicrosoftStickyNotes',
'Microsoft.Office.OneNote',
"Microsoft.OneConnect",
"Microsoft.People",
"Microsoft.SkypeApp",
"Microsoft.Windows.Photos",
"Microsoft.WindowsAlarms",
"Microsoft.WindowsCalculator",
"Microsoft.WindowsCamera",
"Microsoft.WindowsMaps",
"Microsoft.WindowsPhone",
"Microsoft.WindowsSoundRecorder",
"Microsoft.WindowsStore",
"Microsoft.GamingApp",
"Microsoft.XboxApp",
"Microsoft.Xbox.TCUI",
"Microsoft.XboxGameOverlay",
"Microsoft.XboxGamingOverlay",
"Microsoft.XboxIdentityProvider",
"Microsoft.XboxSpeechToTextOverlay",
"Microsoft.ZuneMusic",
"Microsoft.ZuneVideo",
"microsoft.windowscommunicationsapps",
"Microsoft.MinecraftUWP",
"Microsoft.MixedReality.Portal",
"Microsoft.ScreenSketch"
## Threshold 2 apps
"Microsoft.CommsPhone",
'Microsoft.ConnectivityStore',
"Microsoft.Messaging",
'Microsoft.Office.Sway',
## Redstone apps
"Microsoft.BingFoodAndDrink",
"Microsoft.BingTravel",
"Microsoft.BingHealthAndFitness",
"Microsoft.WindowsReadingList",
## non-Microsoft
"9E2F88E3.Twitter",
"Flipboard.Flipboard",
"ShazamEntertainmentLtd.Shazam",
"king.com.*",
"ClearChannelRadioDigital.iHeartRadio",
"4DF9E0F8.Netflix",
"6Wunderkinder.Wunderlist",
"Drawboard.DrawboardPDF",
"2FE3CB00.PicsArt-PhotoStudio",
"D52A8D61.FarmVille2CountryEscape",
"TuneIn.TuneInRadio",
"TheNewYorkTimes.NYTCrossword",
"828B5831.HiddenCityMysteryofShadow",
"Microsoft.Advertising.Xaml",
"SpotifyAB.SpotifyMusic",
"7EE7776C.LinkedInforWindows"
## Apps which cannot be removed using Remove-AppxPackage
'Microsoft.BioEnrollment',
"Microsoft.MicrosoftEdge",
"Microsoft.MicrosoftEdge.Stable",
"Microsoft.MicrosoftEdgeDevToolsClient",
"Windows.ContactSupport",
"Microsoft.XboxGameCallableUI",
"Microsoft.SecHealthUI",
"Microsoft.Windows.CallingShellApp",
"Microsoft.Services.Store.Engagement",
"MicrosoftWindows.UndockedDevKit",
]
grid_metadata = {
"columns": [
{
"propertyname": "name",
"datatype": "String",
"required": False,
"readonly": False,
"width": 403
},
],
"window": {
"height": 512,
"width": 425
}
}
def update_package():
# Declaring local variables
package_updated = False
proxies = get_proxies_from_wapt_console()
if not proxies:
proxies = get_proxies()
app_name = control.name
appx_json_filename = "appx_to_uninstall.json"
# Interact differently with Luti
if params.get("running_as_luti"):
return "OK"
installed_appx = list()
for appx in run_powershell("Get-AppxPackage -AllUsers"):
appx_name = appx['PackageFamilyName'].rsplit('_', 1)[0]
if not '-' in appx_name:
installed_appx.append(appx_name)
appx_dict = [{'name': i} for i in set(default_appx_list + installed_appx)]
appx_selected = ask_grid(
"Select Appx you want to uninstall",
appx_dict,
waptguihelper.GRT_SELECTED,
metadata=json.dumps(grid_metadata),
stay_on_top=True,
raise_error=True
)
# Ask the use to rename the package if it's contains 'template'
if control.package.endswith("template"):
complete_control_package(control)
complete_control_name(control)
if appx_selected:
package_updated = True
appx_list = [appx_name['name'] for appx_name in appx_selected]
json_write_file(appx_json_filename, appx_list)
ask_message("Appx on current user", "If you want to uninstall Appx on the current user, you need to uncomment the 'session_setup' function in the 'setup.py' file!")
package_version = int(control.version.split("-", 1)[-1]) + 1
control.version = f"{control.get_software_version()}-{package_version}"
control.save_control_to_wapt()
return package_updated
38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
28b48fbe8df80be5670d7975bd8e86c098f3f98f3f9ffff5e37afd40a4df67f6 : WAPT/control
9420721210f5d9c50c9e35c9fdbf0a088b30e165df8311c5f2176ce60e122475 : WAPT/icon.png
cb29633f0e2fa4756e270024078271998ea85c8377ea85d056fe7a33787d4229 : luti.json
2d991aa49204ce748a58f0fd2d2b0910a4a1cddad85d901050ec0e6d027b146a : setup.py
61418a7513047ff9d296e05bd3903f3cf731f35d878c00d37952716c319d16c0 : update_package.py