如何通过程序方式卸载UWP应用

9

我一直在尝试以编程方式卸载Windows Store应用程序(iTunes)。我使用了以下命令:

Remove-AppxPackage -Package AppleInc.iTunes_12092.6.37131.0_x64__nzyj5cx40ttqa 

和管理员一样
Remove-AppxPackage -Package AppleInc.iTunes_12092.6.37131.0_x64__nzyj5cx40ttqa -AllUsers

这些命令在没有错误的情况下执行,应用程序会从开始菜单和“添加/删除程序”中消失。但是,在执行这些命令后启动iTunes安装(桌面版,而不是商店版)时,它会抱怨仍然安装了商店版本。
如果我进入“C:\Program Files\WindowsApps\AppleInc.iTunes_12075.9.34012.0_x64__nzyj5cx40ttqa”,那里仍然有文件。
然而,如果我通过“添加/删除程序”而不是命令行删除iTunes商店版本,它就可以正常工作,然后我就可以安装iTunes标准版。
一个重要的问题是,对于一些用户来说,这个命令可以正常工作,我可以安装iTunes。
我的问题是,我错过了什么吗?是否需要清除缓存?是否需要执行其他命令(而不是Remove-AppxPackage)才能完全卸载这个Windows Store应用程序?

1
我已经测试了第二个命令,它运行良好,在命令被调用后,我成功安装了iTunes桌面版。 - Nico Zhu
确实我忘了明确说明它适用于一些用户,但是其他人有这个问题。我找不到标准方案。相同的操作系统版本,相同的iTunes版本。 - Louka
你有查看这个文档吗? - Nico Zhu
1个回答

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"
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接