# Make sure this script runs as admin
#If ( IsAdmin -eq $false ) { LogMsg "This script can only be run as admin" ; Exit }

# This is the list of Windows 10 AppX app names that we'll try to uninstall
$AppList = @(
    # Office Apps
    'Microsoft.Office.Sway',
    'Microsoft.MicrosoftOfficeHub',
    'Microsoft.Office.Desktop',
    'Microsoft.Getstarted',
    'Microsoft.Microsoft3DViewer',
    'Microsoft.SkypeApp',
    'Microsoft.WindowsFeedbackHub',

    # Windows Apps
    'Microsoft.Getstarted',
    'Microsoft.NetworkSpeedTest',
    'Microsoft.FreshPaint',
    'Microsoft.Print3D',
    'Microsoft.SkypeApp',
    'Microsoft.3DBuilder',
    'Microsoft.Microsoft3DViewer',
    'microsoft.windowscommunicationsapps',
    'Microsoft.Advertising.Xaml',
    'Microsoft.Advertising.Xaml',
    'Microsoft.MicrosoftSolitaireCollection',

    # 3rd Party Apps
    'DB6EA5DB.MediaSuiteEssentialsforDell',
    'DB6EA5DB.Power2GoforDell',
    'DB6EA5DB.PowerDirectorforDell',
    'DB6EA5DB.PowerMediaPlayerforDell',
    'DellInc.DellDigitalDelivery',
    'DellInc.DellSupportAssistforPCs',
    'DellInc.PartnerPromo',
    'HONHAIPRECISIONINDUSTRYCO.DellWatchdogTimer',
    'AdobeSystemsIncorporated.AdobePhotoshopExpress',
    'ActiproSoftwareLLC.562882FEEB491',
    'D5EA27B7.Duolingo-LearnLanguagesforFree',
    'Flipboard.Flipboard',
    'king.com.CandyCrushSodaSaga',
    '7EE7776C.LinkedInforWindows',
    '9E2F88E3.Twitter',
    'SlingTVLLC.SlingTV',
    'Facebook.Facebook',
    'A278AB0D.MarchofEmpires',
    'Microsoft.MinecraftUWP',
    'DB6EA5DB.CyberLinkMediaSuiteEssentials',
    'PandoraMediaInc.29680B314EFC2'
    )

# Remove/uninstall Appx packages on Windows 8 or higher
If ( IsWindowsBuild -ge 9200 )
{
    ForEach ( $App in $AppList ) {
        # Get the full name for the package and provisioned package
        $PackageFullName = $($(Get-AppxPackage $App).PackageFullName)
        $ProPackageFullName = $($(Get-AppxProvisionedPackage -Online | Where-Object {$_.Displayname -eq $App}).PackageName)

        # If the package exists, uninstall it
        If ($PackageFullName) {
            LogMsg “Removing package: ${PackageFullName}”
            Try { Remove-AppxPackage -Package $PackageFullName }
            Catch { LogErr $_.Exception.Message }
        }

        # If the provisioned package exists, uninstall it
        If ($ProPackageFullName) {
            LogMsg “Removing provisioned package: ${ProPackageFullName}”
            Try { Remove-AppxProvisionedPackage -PackageName $ProPackageFullName -Online -AllUsers }
            Catch { LogErr $_.Exception.Message }
        }
    }
} Else { LogMsg "Cannot remove Appx packages because this endpoint is not running Windows 8 or higher" }

# Uninstall Dell SupportAssist apps
$APP_NAME = "Dell*SupportAssist*"
Run-Script -LivePSScript Uninstall-MSI

# Uninstall Dell SupportAssist apps
$APP_NAME = "Dell Digital Delivery*"
Run-Script -LivePSScript Uninstall-MSI
