summaryrefslogtreecommitdiff
path: root/remove_preinstalled_apps.ps1
blob: 168e32baca6fc851439c0c907840e854e48b3427 (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
<#
.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"
	"*.Twitter"
	# This won't break much
	# "Microsoft.XboxApp"
	# These will, though
	# "Microsoft.Xbox.TCUI"
	# "Microsoft.XboxGameCallableUI"
	# "Microsoft.XboxGamingOverlay"
	# "Microsoft.XboxIdentityProvider"
	"Microsoft.Office.Sway"
	"Microsoft.Office.OneNote"
	"Microsoft.MicrosoftOfficeHub"
	"Microsoft.SkypeApp"
	"Microsoft.MicrosoftStickyNotes"
)

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

Write-Host -Message "Done"