Powershell: Windows 11 Bloatware deinstallieren
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 63 64 65 66 67 68 69 70 | # Registry-Pfad und Schlüsselname für den Check $registryPath = "HKLM:\Software\IT und Veranstaltungstechnik Hense\BloadwareRemovalScript" $registryValue = "ScriptExecuted" # Überprüfen, ob der Registry-Wert bereits gesetzt ist if (Test-Path -Path "$registryPath\$registryValue") { Write-Host "Das Skript wurde bereits ausgeführt. Beende das Skript." exit 0 } # Liste der Apps, die entfernt werden sollen, einschließlich Cortana $appsToRemove = @( "Microsoft.MicrosoftSolitaireCollection", "Microsoft.XboxGameOverlay", "Microsoft.XboxGameCallableUI", "Microsoft.Xbox.TCUI", "Microsoft.XboxApp", "Microsoft.XboxGamingOverlay", "Microsoft.XboxIdentityProvider", "Microsoft.XboxSpeechToTextOverlay", "Microsoft.ZuneMusic", "Microsoft.ZuneVideo", "Microsoft.BingNews", "Microsoft.WindowsMaps", "Microsoft.People", "Microsoft.SkypeApp", "Microsoft.OneConnect", "Microsoft.WindowsFeedbackHub", "Microsoft.Messaging", "Microsoft.549981C3F5F10", # Cortana ID "Microsoft.Copilot", "MicrosoftTeams", "MicrosoftCorporationII.MicrosoftFamily", "Microsoft.OutlookForWindows", "Microsoft.MicrosoftOfficeHub", "Microsoft.GetHelp", "Microsoft.GamingApp", "Microsoft.BingSearch", "Microsoft.BingWeather", "Microsoft.BingNews", "Microsoft.Getstarted", "Microsoft.ZuneMusic", "Microsoft.ZuneVideo", "Microsoft.WindowsFeedbackHub", "microsoft.windowscommunicationsapps" ) # Vorinstallierte Apps für alle Benutzer durchsuchen und entfernen, wenn sie in der Liste stehen Get-AppxPackage -AllUsers | ForEach-Object { if ($appsToRemove -contains $_.Name) { Write-Host "Entferne App: $($_.Name)" Remove-AppxPackage -Package $_.PackageFullName -AllUsers } } # Vorinstallierte System-Apps entfernen, wenn sie in der Liste stehen Get-AppxProvisionedPackage -Online | ForEach-Object { if ($appsToRemove -contains $_.DisplayName) { Write-Host "Entferne System-App: $($_.DisplayName)" Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName } } # Nach erfolgreicher Ausführung den Registry-Wert setzen if (-not (Test-Path -Path $registryPath)) { New-Item -Path $registryPath -Force } Set-ItemProperty -Path $registryPath -Name $registryValue -Value $true Write-Host "Das Skript wurde erfolgreich ausgeführt und der Registry-Wert wurde gesetzt." |