<# .SYNOPSIS Uninstalls Microsoft Windows App for all users (RMM / SYSTEM-safe). .DESCRIPTION Removes the provisioned machine-wide MSIX package and uninstalls it for all existing user profiles on the machine. #> [CmdletBinding()] param() $ErrorActionPreference = 'Continue' $PackageNameFilter = 'MicrosoftCorporationII.Windows365' Write-Output "Starting removal of Windows App ($PackageNameFilter)..." # 1. Remove Provisioned Package (Prevents automatic install for new users) Write-Output "Checking for provisioned package..." $provisioned = Get-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue | Where-Object { $_.DisplayName -like "$PackageNameFilter*" -or $_.PackageName -like "$PackageNameFilter*" } if ($provisioned) { foreach ($pkg in $provisioned) { Write-Output "Removing provisioned package: $($pkg.PackageName)" Remove-AppxProvisionedPackage -Online -PackageName $pkg.PackageName | Out-Null } } else { Write-Output "No provisioned package found." } # 2. Remove Appx Package for All Existing Users Write-Output "Checking for per-user installations..." $perUserPackages = Get-AppxPackage -AllUsers -Name "*$PackageNameFilter*" -ErrorAction SilentlyContinue if ($perUserPackages) { # Select unique PackageFullNames to avoid redundant removal attempts $uniquePackages = $perUserPackages | Select-Object -ExpandProperty PackageFullName -Unique foreach ($pkgFullName in $uniquePackages) { Write-Output "Removing per-user package: $pkgFullName" Remove-AppxPackage -Package $pkgFullName -AllUsers | Out-Null } } else { Write-Output "No per-user packages found." } # Verify Removal $verifyProv = Get-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue | Where-Object { $_.DisplayName -like "$PackageNameFilter*" } $verifyUser = Get-AppxPackage -AllUsers -Name "*$PackageNameFilter*" -ErrorAction SilentlyContinue if (-not $verifyProv -and -not $verifyUser) { Write-Output "Uninstall complete. Windows App has been removed successfully." } else { Write-Warning "Uninstall finished, but some package remnants were still detected." }