Hay-RemoveApps.psm1

Function Remove-Apps {
    #SafeApps contains apps that shouldn't be removed, or just can't and cause errors
    $SafeApps = "AAD.brokerplugin|accountscontrol|apprep.chxapp|assignedaccess|asynctext|bioenrollment|capturepicker|cloudexperience|contentdelivery|desktopappinstaller|ecapp|getstarted|immersivecontrolpanel|lockapp|net.native|oobenet|parentalcontrols|PPIProjection|sechealth|secureas|shellexperience|startmenuexperience|vclibs|xaml|XGpuEject"
    
    $GoodApps =    "calculator|sticky|store|windows.photos|soundrecorder|mspaint|people|skype|oneNote|screensketch|microsoftedge"

    
    If ($Apps) {
        $RemoveApps = Get-AppxPackage -allusers | where-object {$_.name -notmatch $SafeApps}
        $RemovePrApps = Get-AppxProvisionedPackage -online | where-object {$_.displayname -notmatch $SafeApps}
            ForEach ($RemovedApp in $RemoveApps) {
                Write-Host Removing app package: $RemovedApp.name
                Remove-AppxPackage -package $RemovedApp -erroraction silentlycontinue
                
}            ForEach ($RemovedPrApp in $RemovePrApps) {
                Write-Host Removing provisioned app $RemovedPrApp.displayname
                Remove-AppxProvisionedPackage -online -packagename $RemovedPrApp.packagename -erroraction silentlycontinue
                
}
}    Else {
        $SafeApps = "$SafeApps|$GoodApps"
        $RemoveApps = Get-AppxPackage -allusers | where-object {$_.name -notmatch $SafeApps}
        $RemovePrApps = Get-AppxProvisionedPackage -online | where-object {$_.displayname -notmatch $SafeApps}
            ForEach ($RemovedApp in $RemoveApps) {
                Write-Host Removing app package: $RemovedApp.name
                Remove-AppxPackage -package $RemovedApp -erroraction silentlycontinue
                
}            ForEach ($RemovedPrApp in $RemovePrApps) {
                Write-Host Removing provisioned app $RemovedPrApp.displayname
                Remove-AppxProvisionedPackage -online -packagename $RemovedPrApp.packagename -erroraction silentlycontinue
                
}
}
}