如何以编程方式卸载UWP应用程序

Lou*_*uka 9 windows powershell windows-store uwp

我一直在尝试以编程方式卸载Windows应用商店应用(iTunes).我使用以下命令:

Remove-AppxPackage -Package AppleInc.iTunes_12092.6.37131.0_x64__nzyj5cx40ttqa 
Run Code Online (Sandbox Code Playgroud)

并作为管理员

Remove-AppxPackage -Package AppleInc.iTunes_12092.6.37131.0_x64__nzyj5cx40ttqa -AllUsers
Run Code Online (Sandbox Code Playgroud)

命令执行正常,没有错误,应用程序在开始菜单和添加/删除程序中消失.但是当我在执行这些命令后启动iTunes安装(桌面版,而不是存储版)时,它会抱怨仍然安装了商店版本.

如果我转到"C:\ Program Files\WindowsApps\AppleInc.iTunes_12075.9.34012.0_x64__nzyj5cx40ttqa",那里仍有文件.

但是,如果我通过添加/删除而不是命令行删除iTunes商店版本,它工作正常,然后我可以安装iTunes标准.

重要的一点是,对于某些用户来说,命令运行正常,我可以安装iTunes.

我的问题是,我错过了什么吗?是否需要清理缓存?在上述命令之后需要执行以完全卸载此Windows应用商店应用程序的其他一些命令(而不是Remove-AppxPackage)?

小智 1

尝试这样的事情:

$AppList = "AppleInc.iTunes"
ForEach ($App in $AppList) {
    $PackageFullName = (Get-AppxPackage $App).PackageFullName
    $ProPackageFullName = (Get-AppxProvisionedPackage -online | where {$_.Displayname -eq $App}).PackageName
    write-host $PackageFullName
    Write-Host $ProPackageFullName
    if ($PackageFullName) {
        Write-Host "Removing Package: $App"
        remove-AppxPackage -package $PackageFullName
    }
    else{
        Write-Host "Unable to find package: $App"
    }
    if ($ProPackageFullName) {
        Write-Host "Removing Provisioned Package: $ProPackageFullName"
        Remove-AppxProvisionedPackage -online -packagename $ProPackageFullName
    }
    else {
        Write-Host "Unable to find provisioned package: $App"
    }
}
Run Code Online (Sandbox Code Playgroud)