Deinstallation von Windows 10/11 Bloatware (Built-in Apps) mit Microsoft Intune
August 26, 2024
Die vorinstallierte Software auf Windows 10 und 11, oft als „Bloatware“ bezeichnet, kann die Performance und Benutzererfahrung beeinträchtigen. In diesem Beitrag zeigen wir dir, wie du diese unerwünschten Programme mithilfe von Microsoft Intune effizient entfernen kannst.
Warum Bloatware entfernen?
Windows kommt oft mit einer Vielzahl vorinstallierter Apps, wie Xbox-Dienste oder Microsoft-Tools, die viele Nutzer nicht benötigen. Diese Programme belegen unnötig Speicherplatz und können die Systemleistung beeinträchtigen. Mit einem PowerShell-Skript und Intune lassen sich diese Apps einfach deinstallieren.
Schritt 1: Erstellen des PowerShell-Skripts
Um die Bloatware zu entfernen, erstellst du zunächst ein PowerShell-Skript, das die gewünschten Apps deinstalliert.
- Liste der zu entfernenden Apps:
Hier ist eine beispielhafte Liste von Apps, die wir in diesem Skript entfernen:
- Clipchamp.Clipchamp
- Microsoft.Getstarted
- Microsoft.People
- Microsoft.XboxGameOverlay
- Und viele mehr…
- Erstellen des Skripts:
Speichere das folgende Skript unter dem NamenRemoveW11Bloatware.ps1
:
# Remove Microsoft bloatware/crapware
# Original file https://gist.github.com/mark05e/a79221b4245962a477a49eb281d97388#file-remove-hpbloatware-ps1
# and modified by Lukasz Hauptman (2024)
# Custom logging function
function Write-Log {
param (
[Parameter(Mandatory=$true)]
[string] $Message
)
$logFilePath = "$($env:ProgramData)\Microsoft\RemoveW11Bloatware\RemoveW11Bloatware.log"
Add-Content -Path $logFilePath -Value "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss'): $Message"
}
# Create a tag file just so Intune knows this was installed
if (-not (Test-Path "$($env:ProgramData)\Microsoft\RemoveW11Bloatware"))
{
New-Item -ItemType Directory -Force -Path "$($env:ProgramData)\Microsoft\RemoveW11Bloatware" > $null
}
Set-Content -Path "$($env:ProgramData)\Microsoft\RemoveW11Bloatware\RemoveW11Bloatware.ps1.tag" -Value "Installed"
# List of built-in apps to remove
$UninstallPackages = @(
"Clipchamp.Clipchamp"
"Microsoft.Getstarted"
"Microsoft.GetHelp"
"Microsoft.People"
"Microsoft.PowerAutomateDesktop"
"Microsoft.windowscommunicationsapps"
"Microsoft.WindowsFeedbackHub"
"Microsoft.WindowsMaps"
"Microsoft.Xbox.TCUI"
"Microsoft.XboxGameCallableUI"
"Microsoft.XboxGameOverlay"
"Microsoft.XboxGamingOverlay"
"Microsoft.XboxIdentityProvider"
"Microsoft.XboxSpeechToTextOverlay"
"Microsoft.YourPhone"
"Microsoft.ZuneMusic"
"Microsoft.ZuneVideo"
"Microsoft.Windows.DevHome"
)
# List of programs to uninstall
$UninstallPrograms = @(
)
$InstalledPackages = Get-AppxPackage -AllUsers | Where {($UninstallPackages -contains $_.Name)}
$ProvisionedPackages = Get-AppxProvisionedPackage -Online | Where {($UninstallPackages -contains $_.DisplayName)}
$InstalledPrograms = Get-Package | Where {$UninstallPrograms -contains $_.Name}
# Print a warning for not found apps
$UninstallPackages | ForEach {
if (($_ -notin $InstalledPackages.Name) -and ($_ -notin $ProvisionedPackages.DisplayName)) {
Write-Log -Message "Warning: App not found: [$_]"
}
}
# Remove provisioned packages first
ForEach ($ProvPackage in $ProvisionedPackages) {
Write-Log -Message "Attempting to remove provisioned package: [$($ProvPackage.DisplayName)]..."
Try {
Remove-AppxProvisionedPackage -PackageName $ProvPackage.PackageName -Online -ErrorAction Stop > $null
Write-Log -Message "Successfully removed provisioned package: [$($ProvPackage.DisplayName)]"
}
Catch {
Write-Log -Message "Warning: Failed to remove provisioned package: [$($ProvPackage.DisplayName)]"
}
}
# Remove appx packages
ForEach ($AppxPackage in $InstalledPackages) {
Write-Log -Message "Attempting to remove Appx package: [$($AppxPackage.Name)]..."
Try {
Remove-AppxPackage -Package $AppxPackage.PackageFullName -AllUsers -ErrorAction Stop > $null
Write-Log -Message "Successfully removed Appx package: [$($AppxPackage.Name)]"
}
Catch {
Write-Log -Message "Warning: Failed to remove Appx package: [$($AppxPackage.Name)]"
}
}
# Remove installed programs
$InstalledPrograms | ForEach {
Write-Log -Message "Attempting to uninstall: [$($_.Name)]..."
Try {
$_ | Uninstall-Package -AllVersions -Force -ErrorAction Stop > $null
Write-Log -Message "Successfully uninstalled: [$($_.Name)]"
}
Catch {
Write-Log -Message "Warning: Failed to uninstall: [$($_.Name)]"
}
}
In meinen Github repository findet Ihr das Script zum Download.
Schritt 2: Vorbereitung und Verpackung der App für Intune
Damit das Skript über Intune verteilt werden kann, muss es zuerst in ein Win32-Paket umgewandelt werden.
- Ordnerstruktur erstellen:
Lege inC:/
zwei Ordner an:CreateWin32
undIntuneApp
. - Skript in den Ordner verschieben:
VerschiebeRemoveW11Bloatware.ps1
in den OrdnerC:/CreateWin32
. - Microsoft Win32 Content Prep Tool herunterladen:
Lade das Tool herunter und speichere es unterC:/Intune
. - Paket erstellen:
Öffne PowerShell als Administrator und führe folgenden Befehl aus:
.\Intune\IntuneWinAppUtil.exe -c C:/CreateWin32 -s RemoveW11Bloatware.ps1 -o C:/IntuneApp
Dieser Befehl erstellt eine .intunewin
-Datei, die später in Intune hochgeladen wird.
RemoveW11Bloatware.intunewin auf Github herunterladen.
Schritt 3: Bereitstellung der App in Microsoft Intune
Nachdem das Paket erstellt wurde, kannst du es in Intune hochladen und auf die Zielgeräte verteilen.
- Intune Portal aufrufen:
Öffne das Microsoft Intune/Endpoint Manager Portal. - Neue Win32 App hinzufügen:
Navigiere zuApps > Windows
und füge die.intunewin
-Datei hinzu. - App-Informationen ausfüllen:
Gib die notwendigen Details ein, wie die Beschreibung und die App-Version. - Installationsbefehl konfigurieren:
- Installationsbefehl:
powershell.exe -noprofile -executionpolicy bypass -file .\RemoveW11Bloatware.ps1
- Deinstallationsbefehl:
cmd.exe /c del %ProgramData%\Microsoft\RemoveW11Bloatware\RemoveW11Bloatware.ps1.tag
- Installationsverhalten: Wähle „System“ aus.
- Erkennungsregel konfigurieren:
- Regeltyp: Datei
- Pfad:
%ProgramData%\Microsoft\RemoveW11Bloatware
- Datei:
RemoveW11Bloatware.ps1.tag
- Erkennungsmethode: „Datei oder Ordner ist vorhanden“
Schritt 4: Zuweisung der App
Weise die App den gewünschten Gerätegruppen zu. Sobald die Geräte synchronisiert sind, wird das Skript ausgeführt und die Bloatware entfernt.
Mit diesen Schritten hast du erfolgreich eine benutzerdefinierte Lösung erstellt, um Bloatware von Windows 10/11 Geräten mithilfe von Microsoft Intune zu entfernen. Dies verbessert nicht nur die Systemperformance, sondern bietet auch eine saubere und angepasste Benutzerumgebung.