tis-remove-windows-appx-template icon

Remove Windows AppX

Silent install package for Remove Windows AppX

3-16

  • package: tis-remove-windows-appx-template
  • name: Remove Windows AppX
  • version: 3-16
  • categories: Security
  • maintainer: WAPT Team,Tranquil IT,Joffrey Le Piquet, Jordan Arnaud
  • locale: all
  • target_os: windows
  • architecture: all
  • signature_date:
  • size: 7.81 Ko

package           : tis-remove-windows-appx-template
version           : 3-16
architecture      : all
section           : base
priority          : optional
name              : Remove Windows AppX
categories        : Security
maintainer        : WAPT Team,Tranquil IT,Joffrey Le Piquet, Jordan Arnaud
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      : 812c4622-a2f3-4316-a562-f88624e90bbd
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    : 2024-11-27T12:01:49.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         : PgXOIAwluJswZ5X4knaCzGhycOXMSdKr3LDs3Zl7ONiw37ygYO8QaAGmeri9p9f8FpnYWIX4lv83J6YhPJ1FRFxCpfKNDN9wzpYBoBfzVLcVOac8HvMkKMd0Ogrsa8NLMtCOThR2wgjFWQwBvKGQDu+cQolKN+9PEQUqSmIMIkFWxJXa6zEh/kgCDG0buuEcia9v7nPfaUZ44AmZb9FrLY9IVrs4M6Gc9ldSr57VCnoPMRMxBoBJEOA4yppKmew15E50G4saRuS84OHOCoyAIVUERBqtj9MlcTy0Veqgv6yJIGsh8Ap3uOf0whBltYAzqnYLijJYbUVS1SAY8hTUnA==

# -*- 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"
]
"""

appx_json_filename = 'appx_to_uninstall.json'

def install() :

    if not isfile(appx_json_filename):
        error(error_message)

    print("Removing: Unwanted Microsoft Store applications...")
    installed_appx_packages = run_powershell("Get-AppxPackage -AllUsers")

    with open('appx_to_uninstall.json') 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 -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():
#
#     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_to_uninstall.json') 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
    "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
f0d0de0a37831defebd2e49f5749b9b6939fd0864b37497c31683f81c16d7b0f : WAPT/control
9420721210f5d9c50c9e35c9fdbf0a088b30e165df8311c5f2176ce60e122475 : WAPT/icon.png
c462e5860d138aa714f92f930c1781b546b15d2e7a366492aca7a9c42cacfda1 : luti.json
65c48320d6d860b9f6b0f9a763874a9b770379f77f221bdfd00e3634e9f0b108 : setup.py
17282931d1b9358cb0642a51f20fb12276e248d477228199910bea96bf7fd3ea : update_package.py