# 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."