# -*- coding: utf-8 -*-
from setuphelpers import *
apps_exception_dict = {
"Microsoft.Paint": ["tis-paint", "tis-microsoft-paint"],
"MicrosoftTeams": ["tis-microsoft-teams-uwp"],
"Microsoft.3DBuilder": ["tis-microsoft-3dbuilder", "tis-3dbuilder"],
"Microsoft.Microsoft3DViewer": ["tis-microsoft-3dviewer", "tis-3dviewer"],
"Microsoft.XboxGam": ["tis-xbox-game-bar"], # do not use asterisk (*) like Microsoft.XboxGam*
"SpotifyAB.SpotifyMusic": ["tis-spotify-uwp"],
"MicrosoftCorporationII.QuickAssist": ["tis-quickassist"],
"Microsoft.Todos": ["tis-microsoft-todos", "tis-todos"],
"Microsoft.ZuneMusic": ["tis-windows-media-player-uwp"],
"Microsoft.ZuneVideo": ["tis-microsoft-zunevideo", "tis-movies-&-tv", "tis-movies-and-tv"],
"Microsoft.WindowsSoundRecorder": ["tis-microsoft-soundrecorder"],
"Microsoft.Windows.Photos": ["tis-microsoft-photos"],
"9932MartCliment.WingetUIWidgets": ["tis-wingetui", "tis-wingetui-widgets"],
"Microsoft.WindowsCalculator": ["tis-calculator", "tis-windows-calculator", "tis-windowscalculator"],
"Microsoft.WindowsStore": ["tis-microsoft-store"],
# "Microsoft.StorePurchaseApp": ["tis-microsoft-store"],
"Microsoft.MicrosoftStickyNotes": ["tis-microsoft-stickynotes"],
"Microsoft.Office.OneNote": ["tis-microsoft-onenote", "tis-microsoft-onenote-uwp"],
"7EE7776C.LinkedInforWindows": ["tis-linkedin"],
"Microsoft.WindowsTerminal": ["tis-windows-terminal", "tis-windowsterminal", "tis-terminal"],
"Microsoft.Windows.DevHome": ["tis-dev-home"],
"Microsoft.Windows.DevHomeAzureExtension": ["tis-dev-home-azure-extension"],
"Microsoft.Windows.DevHomeGitHubExtension": ["tis-dev-home-github-extension"],
} # any_prefix but value must be a list
apps = [
### 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.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",
]
def install():
print("Removing: Unwanted Microsoft Store applications...")
uninstall_list = get_appx_uninstall_list(apps, all_users=True, apps_exception_dict=apps_exception_dict)
for app in uninstall_list:
try:
print("Removing: %s" % app)
remove_appx(app)
except:
print("Unable to remove: %s" % app)
print("Done")
# def session_setup():
# print("Removing: Unwanted Microsoft Store applications...")
# uninstall_list = get_appx_uninstall_list(apps, all_users=False, apps_exception_dict=apps_exception_dict)
# # Trying to remove user appxpackages
# for app in uninstall_list:
# try:
# print("Removing: %s" % app)
# remove_user_appx(app)
# except:
# print("Unable to remove: %s" % app)
def get_appx_uninstall_list(apps, all_users=False, apps_exception_dict=None):
# in apps_exception_dict: you can use any_prefix but value must be a list
uninstall_list = []
if all_users == True:
installed_appx_packages = run_powershell("Get-AppxPackage -AllUsers")
else:
installed_appx_packages = run_powershell("Get-AppxPackage")
for packages in installed_appx_packages:
if apps_exception_dict is not None:
skip_appx = False
for a, p in apps_exception_dict.items():
if a in packages["Name"]:
if any([control.package.split("-", 1)[0] + "-" + el.split("-", 1)[1] in [pa.package for pa in WAPT.installed()] for el in p]):
skip_appx = True
print(f'Keeping AppX: "{a}" because a package in {p} is installed on the host.')
break
if skip_appx:
continue
if packages["Name"] in apps:
uninstall_list.append(packages["Name"])
return uninstall_list