Removing Bloatware from Windows 11

Removing Bloatware from Windows 11

Even though Windows is the dominant operating system, Microsoft known for its nefarious activities by pre-installing bloatware as a part of the out-of-the-box experience. Bloatware refers to pre-installed software that comes with your Windows 10/11 system. These applications often take up valuable disk space and slow down system performance. Common instances include trial versions of antivirus programs like McAfee and Norton, as well as pre-installed apps, such as Xbox Game Bar, Spotify, and LinkedIn.

As part of a brief series on PowerShell scripting, I will explore several commonly used PowerShell scripts. For further insights, please refer to my previous articles, Using PowerShell for Microsoft and PowerShell Scripting.

Here, we will discuss steps on how to remove bloatware.


How to Identify Bloatware

To determine whether an application is bloatware:

  1. Check the Start Menu for unfamiliar apps.
  2. Review installed programs via Control Panel > Programs and Features.
  3. Use PowerShell to list installed apps:

Get-AppxPackage | Select Name, PackageFullName        

How to remove apps manually in Windows 11

Removing apps manually in Windows 11 are just a few straight-forward steps. Here are three common methods.

Using the Start Menu

  1. Click the Start Menu (Windows key).
  2. Locate the app you want to remove.
  3. Right-click the app and select Uninstall.
  4. Follow any on-screen prompts to complete the uninstallation.

Using Settings (For Microsoft Store Apps)

  1. Press Win + I to open Settings.
  2. Go to Apps > Installed apps (Windows 11) or Apps & Features (Windows 10).
  3. Scroll through the list to find the app you want to remove.
  4. Click on the app and select Uninstall.
  5. Confirm the uninstallation.

Using Control Panel

  1. Press Win + I and in the search bar, type in Control Panel.
  2. Proceed to select Uninstall a program. Thereafter, you can select from the list of applications that you wish to uninstall.

Windows Control Panel

For power users, here is an example of a Command Prompt script menu that uses winget command to remove common pre-installed apps. Save the file at a batch file, such as bloatware.bat. Check out my earlier post on Windows Packet Manager (winget).

@echo off
:menu
echo ====================================
echo  Techtips Remove Bloatware Command Menu
echo ====================================
echo [1] Uninstall LinkedIn App
echo [2] Uninstall Spotify App
echo [3] Uninstall Skype App
echo [4] Uninstall Microsoft Bing App
echo [5] Uninstall Mail and Calendar App
echo [6] Uninstall Xbox App
echo [7] Uninstall Microsoft Solitaire Collection App
echo [8] Uninstall Copilot APP
echo [9] Uninstall all of the above
echo [0] Exit
echo ====================================
set /p choice="Enter your choice (0-9): "

if "%choice%"=="1" winget uninstall "LinkedIn"
if "%choice%"=="2" winget uninstall "Spotify"
if "%choice%"=="3" winget uninstall "Skype"
if "%choice%"=="4" winget uninstall "Microsoft Bing"
if "%choice%"=="5" winget uninstall "Mail and Calendar"
if "%choice%"=="6" winget uninstall "Xbox"
if "%choice%"=="7" winget uninstall "Microsoft Solitaire Collection"
if "%choice%"=="8" winget uninstall "Copilot"
if "%choice%"=="9" (
    winget uninstall "LinkedIn"
    winget uninstall "Spotify"
    winget uninstall "Skype"
    winget uninstall "Microsoft Bing"
    winget uninstall "Mail and Calendar"
    winget uninstall "Xbox"
    winget uninstall "Microsoft Solitaire Collection"
    winget uninstall "Copilot"
)
if "%choice%"=="0" exit

echo.
echo Operation completed. Press any key to return to the menu...
pause >nul
goto menu        

The Bloatware.bat file will produce this interactive menu in Command Prompt.

Bloatware Winget Menu

Disclaimer:

Use this script at your own discretion and responsibility. Running scripts comes with inherent risks. We highly recommend consulting your IT team for support before proceeding.


Using a PowerShell Script to remove bloatware

This PowerShell script is designed to streamline Windows 11 by removing common bloatware, disabling telemetry, and enhancing overall system performance by getting rid of unnecessary pre-installed apps. This script removes common bloatware, disables telemetry, and stops Xbox services to optimize Windows 11

# PowerShell Script to Remove Windows 11 Bloatware
# Run as Administrator

# List of Bloatware Apps to Remove
$bloatware = @(
    "Microsoft.3DBuilder",
    "Microsoft.BingNews",
    "Microsoft.BingWeather",
    "Microsoft.GetHelp",
    "Microsoft.Getstarted",
    "Microsoft.Messaging",
    "Microsoft.Microsoft3DViewer",
    "Microsoft.MicrosoftOfficeHub",
    "Microsoft.MicrosoftSolitaireCollection",
    "Microsoft.MicrosoftStickyNotes",
    "Microsoft.MixedReality.Portal",
    "Microsoft.MSPaint",
    "Microsoft.OneConnect",
    "Microsoft.People",
    "Microsoft.Print3D",
    "Microsoft.SkypeApp",
    "Microsoft.StorePurchaseApp",
    "Microsoft.Todos",
    "Microsoft.WindowsAlarms",
    "Microsoft.WindowsCamera",
    "Microsoft.WindowsMaps",
    "Microsoft.WindowsSoundRecorder",
    "Microsoft.Xbox.TCUI",
    "Microsoft.XboxGameOverlay",
    "Microsoft.XboxGamingOverlay",
    "Microsoft.XboxIdentityProvider",
    "Microsoft.XboxSpeechToTextOverlay",
    "Microsoft.YourPhone",
    "Microsoft.ZuneMusic",
    "Microsoft.ZuneVideo"
)

# Function to Remove Bloatware
Function Remove-Bloatware {
    param (
        [string[]]$apps
    )
    foreach ($app in $apps) {
        Get-AppxPackage -Name $app | Remove-AppxPackage -ErrorAction SilentlyContinue
        Get-AppxProvisionedPackage -Online | Where-Object DisplayName -Like "*$app*" | Remove-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue
        Write-Output "Removed $app"
    }
}

# Disable Telemetry & Data Collection
Function Disable-Telemetry {
    Write-Output "Disabling Telemetry..."
    $registryKeys = @(
        "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection",
        "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection"
    )
    foreach ($key in $registryKeys) {
        if (!(Test-Path $key)) {
            New-Item -Path $key -Force | Out-Null
        }
        Set-ItemProperty -Path $key -Name "AllowTelemetry" -Value 0 -Type DWord
    }
    Write-Output "Telemetry Disabled."
}

# Disable Xbox Services
Function Disable-XboxServices {
    Write-Output "Disabling Xbox Services..."
    $services = @(
        "XboxGipSvc",
        "XblAuthManager",
        "XblGameSave",
        "XboxNetApiSvc"
    )
    foreach ($service in $services) {
        Stop-Service -Name $service -Force -ErrorAction SilentlyContinue
        Set-Service -Name $service -StartupType Disabled
        Write-Output "Disabled $service"
    }
}

# Run Functions
Remove-Bloatware -apps $bloatware
Disable-Telemetry
Disable-XboxServices

Write-Output "Bloatware removal complete. Restart recommended."        

How to use this PowerShell script

  • Save this script as Remove-Bloatware.ps1
  • Run this PowerShell Script as an administrator.
  • Execute the script using:

Set-ExecutionPolicy Unrestricted -Force
.\Remove-Bloatware.ps1        

  • Restart your computer for the changes to take effect.


Disclaimer:

We do not assume responsibility for any potential issues that may arise from using this script. Use it at your own discretion and responsibility. Running scripts involves inherent risks. Please consult your IT team for assistance before proceeding.


Conclusion

Removing bloatware can improve Windows performance and free up storage. Using Winget and/or PowerShell scripts allows for quick removal of unwanted apps. Always double-check before uninstalling anything to avoid removing essential system applications.


要查看或添加评论,请登录

Nicholas Mutsaerts的更多文章

  • PowerShell Scripting

    PowerShell Scripting

    PowerShell scripting has become an essential tool for help desk professionals and system administrators, enabling them…

  • The Future of Internet Addressing and When Disabling IPv6 Makes Sense

    The Future of Internet Addressing and When Disabling IPv6 Makes Sense

    IPv6 is paving the way for the future of internet addressing, offering a significantly larger address space and…

  • Steam Gaming on Linux

    Steam Gaming on Linux

    Gaming on Linux has evolved dramatically in recent years. Steam has been on of the pivotal in making it easier to enjoy…

  • Using Netsh and Ipconfig Commands for Effective Network Troubleshooting

    Using Netsh and Ipconfig Commands for Effective Network Troubleshooting

    For IT help desks and system administrators, mastering Netsh and Ipconfig commands is key to effective network…

    1 条评论
  • Windows Package Manager (WINGET)

    Windows Package Manager (WINGET)

    Microsoft has introduced a new feature called Windows Package Manager, commonly referred to as winget. This…

  • Using Netsh Commands to Resolve Network Issues on Windows

    Using Netsh Commands to Resolve Network Issues on Windows

    Netsh is a versatile command-line utility designed for managing, configuring, and troubleshooting local or remote…

  • Rocky Linux

    Rocky Linux

    Rocky Linux was developed, in large part, due to Red Hat's decision to discontinue CentOS Linux. The first release…

  • Unlocking the Magic of VirtualBox

    Unlocking the Magic of VirtualBox

    Explore the magic behind VirtualBox. This powerful hypervisor can transform your computing experience by letting you…

  • Knowledge Base for new hires and current staff

    Knowledge Base for new hires and current staff

    An essential part of IT onboarding of new hires and current staff lies with providing quick reference guides. As…

  • Manjaro

    Manjaro

    Manjaro is a versatile and user-friendly Linux operating system that delivers an excellent out-of-the-box experience…