Created
September 11, 2023 18:34
-
-
Save btstevens/fc69c04b54e83238eeab0a67824eca07 to your computer and use it in GitHub Desktop.
win11_latest
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# List of built-in apps to remove | |
$UninstallPackages = @( | |
#"Microsoft.WindowsAlarms" | |
#"Microsoft.WindowsCalculator" | |
#"Microsoft.WindowsCamera" | |
#"AppUp.ThunderboltControlCenter" | |
"Microsoft.Getstarted" | |
#"Microsoft.Microsoft3DViewer" | |
"Clipchamp.Clipchamp" | |
"Microsoft.WindowsFeedbackHub" | |
"Microsoft.GetHelp" | |
"Microsoft.Getstarted" | |
"Microsoft.BingNews" | |
"Microsoft.WindowsMaps" | |
#"MicrosoftTeams" | |
"Microsoft.MicrosoftSolitaireCollection" | |
"Microsoft.MicrosoftStickyNotes" | |
#"Microsoft.Paint" | |
#"Microsoft.MSPaint" | |
"Microsoft.Windows.Photos" | |
"Microsoft.Todos" | |
"Microsoft.BingWeather" | |
#"Microsoft OneDrive" | |
#"Microsoft.Whiteboard" | |
#"Microsoft.ScreenSketch" | |
"Microsoft.MicrosoftOfficeHub" | |
#"Microsoft.MixedReality.Portal" | |
"Microsoft.GamingApp" | |
"Microsoft.Xbox.TCUI" | |
"Microsoft.XboxApp" | |
"Microsoft.XboxGameOverlay" | |
"Microsoft.XboxGamingOverlay" | |
"Microsoft.XboxIdentityProvider" | |
"Microsoft.XboxSpeechToTextOverlay" | |
#"Microsoft.WindowsSoundRecorder" | |
#"Microsoft.SkypeApp" | |
#"Microsoft.Office.OneNote" | |
#"Microsoft.WindowsNotepad" | |
"Microsoft.YourPhone" | |
"Microsoft.ZuneVideo" | |
"MicrosoftCorporationII.QuickAssist" | |
#"MicrosoftTeams" | |
"microsoft.windowscommunicationsapps" | |
"Microsoft.Wallet" | |
"Microsoft.OneConnect" | |
"Microsoft.People" | |
"Microsoft.549981C3F5F10" | |
"MicrosoftWindows.Client.WebExperience" | |
"Microsoft.StorePurchaseApp" | |
) | |
function uninstall-windows11-apps { | |
[CmdletBinding()] | |
param ( | |
[Parameter(Mandatory=$true, Position=0)] | |
[string[]]$UninstallPackages | |
) | |
begin { | |
$InstalledPackages = Get-AppxPackage -AllUsers | Where-Object {($UninstallPackages -contains $_.Name)} | |
$ProvisionedPackages = Get-AppxProvisionedPackage -Online | Where-Object {($UninstallPackages -contains $_.DisplayName)} | |
} | |
process { | |
# Remove windows capability | |
#Get-WindowsCapability -Online | Where-Object -property State -eq "Installed" | Where {$_.name -match "Browser.InternetExplorer"} | Remove-WindowsCapability -Online | |
#Get-WindowsCapability -Online | Where-Object -property State -eq "Installed" | Where {$_.name -match "Hello.Face"} | Remove-WindowsCapability -Online | |
#Get-WindowsCapability -Online | Where-Object -property State -eq "Installed" | Where {$_.name -match "Language.Handwriting"} | Remove-WindowsCapability -Online | |
#Get-WindowsCapability -Online | Where-Object -property State -eq "Installed" | Where {$_.name -match "MathRecognizer"} | Remove-WindowsCapability -Online | |
#Get-WindowsCapability -Online | Where-Object -property State -eq "Installed" | Where {$_.name -match "Media.WindowsMediaPlayer"} | Remove-WindowsCapability -Online | |
#Get-WindowsCapability -Online | Where-Object -property State -eq "Installed" | Where {$_.name -match "Print.Management.Console"} | Remove-WindowsCapability -Online | |
# Add windows capability | |
#Get-WindowsCapability -Name RSAT* -Online | Add-WindowsCapability -Online | |
# Get-WindowsCapability -Online | Where-Object -property State -eq "Installed" | Where {$_.name -match "Print.Fax.Scan"} | Remove-WindowsCapability -Online | |
# Get-WindowsCapability -Online | Where-Object -property State -eq "Installed" | Where {$_.name -match "OpenSSH.Client"} | Remove-WindowsCapability -Online | |
# Get-WindowsCapability -Online | Where-Object -property State -eq "Installed" | Where {$_.name -match "Microsoft.Windows.WordPad"} | Remove-WindowsCapability -Online | |
# Get-WindowsCapability -Online | Where-Object -property State -eq "Installed" | Where {$_.name -match "Microsoft.Wallpapers.Extended"} | Remove-WindowsCapability -Online | |
# Get-WindowsCapability -Online | Where-Object -property State -eq "Installed" | Where {$_.name -match "OpenSSH"} | Remove-WindowsCapability -Online | |
#Disable-WindowsOptionalFeature -Online -featurename "Printing-PrintToPDFServices-Features" -NoRestart | |
#Disable-WindowsOptionalFeature -Online -featurename "SearchEngine-Client-Package" -NoRestart | |
#Disable-WindowsOptionalFeature -Online -featurename "WorkFolders-Client" -NoRestart | |
#Disable-WindowsOptionalFeature -Online -featurename "Printing-Foundation-Features" -NoRestart | |
#Disable-WindowsOptionalFeature -Online -featurename "Printing-Foundation-InternetPrinting-Client" -NoRestart | |
#Disable-WindowsOptionalFeature -Online -featurename "MicrosoftWindowsPowerShellV2Root" -NoRestart | |
#Disable-WindowsOptionalFeature -Online -featurename "MicrosoftWindowsPowerShellV2" -NoRestart | |
#Disable-WindowsOptionalFeature -Online -featurename "MediaPlayback" -NoRestart | |
# Remove provisioned packages first | |
ForEach ($ProvPackage in $ProvisionedPackages) { | |
Write-Host -Object "Attempting to remove provisioned package: [$($ProvPackage.DisplayName)]..." | |
Try { | |
$Null = Remove-AppxProvisionedPackage -PackageName $ProvPackage.PackageName -Online -ErrorAction Stop | |
Write-Host -Object "Successfully removed provisioned package: [$($ProvPackage.DisplayName)]" | |
} | |
Catch {Write-Warning -Message "Failed to remove provisioned package: [$($ProvPackage.DisplayName)]"} | |
} | |
# Remove appx packages | |
ForEach ($AppxPackage in $InstalledPackages) { | |
Write-Host -Object "Attempting to remove Appx package: [$($AppxPackage.Name)]..." | |
Try { | |
$Null = Remove-AppxPackage -Package $AppxPackage.PackageFullName -AllUsers -ErrorAction Stop | |
Write-Host -Object "Successfully removed Appx package: [$($AppxPackage.Name)]" | |
} | |
Catch {Write-Warning -Message "Failed to remove Appx package: [$($AppxPackage.Name)]"} | |
} | |
} | |
} | |
uninstall-windows11-apps -UninstallPackages $UninstallPackages | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment