summaryrefslogtreecommitdiff
path: root/remove_preinstalled_apps.ps1
blob: 429d8b7621c8b81276cf7415ac275c23def586a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<#
.SYNOPSIS
	Automatically remove preinstalled apps on Windows 10/11
.NOTES
	Sourced from https://learn.microsoft.com/en-us/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services#bkmk-preinstalledapps
#>

$ErrorActionPreference = "Stop"


function Remove-DefaultPackage {
	param (
		[String]$Package
	)

	Write-Host -Message "Removing default package $Package..."
	Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like $Package} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
	Write-Host -Message "Removing $Package from current user..."
	Get-AppxPackage $Package | Remove-AppxPackage
}

$packages = @(
	"Microsoft.BingNews"
	"Microsoft.BingWeather"
	"Microsoft.BingFinance"
	"Microsoft.BingSports"
	"Microsoft.GetHelp"
	"Microsoft.Getstarted"
	"Microsoft.MicrosoftOfficeHub"
	"Microsoft.MicrosoftSolitaireCollection"
	"Microsoft.MicrosoftStickyNotes"
	"Microsoft.Office.Sway"
	"Microsoft.Office.OneNote"
	"Microsoft.People"
	"Microsoft.PowerAutomateDesktop"
	"Microsoft.SkypeApp"
	"Microsoft.Todos"
	"Microsoft.WindowsAlarms"
	"Microsoft.WindowsFeedbackHub"
	"Microsoft.WindowsMaps"
	"Microsoft.WindowsSoundRecorder"
	# This won't break much
	# "Microsoft.GamingApp"
	# "Microsoft.XboxApp"
	# These will, though
	# "Microsoft.Xbox.TCUI"
	# "Microsoft.XboxGameCallableUI"
	# "Microsoft.XboxGamingOverlay"
	# "Microsoft.XboxIdentityProvider"
	"Microsoft.YourPhone"
	"Microsoft.ZuneMusic"
	"Microsoft.ZuneVideo"
	"MicrosoftCorporationII.QuickAssist"
	"ClipChamp.ClipChamp"
	"*.Twitter"
)

foreach ($package in $packages) {
	Remove-DefaultPackage -Name $package
}

Write-Host -Message "Done"