You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除Visual Studio创建的Windows 10开始菜单临时UWP应用

清理VS2015/2017生成的UWP测试应用残留

我完全懂你遇到的糟心情况——用VS开发UWP时,开始菜单和「应用和功能」里全是测试用的临时应用,有些甚至找不到卸载入口,手动删简直是噩梦。之前你试的那两个PowerShell脚本没完全解决问题,主要是因为它们只处理了当前用户的Appx包,没覆盖所有用户,也没清理残留的快捷方式和文件夹。

下面给你一套完整的解决方案,分步骤清理所有残留:

一、先理解之前脚本的问题

  • 第一个脚本加了Publisher过滤,会漏掉用你自己测试证书签名的临时应用(VS默认会生成临时证书);
  • 第二个脚本只处理当前用户的包,VS可能在其他用户上下文安装测试包;
  • 不管哪个脚本,Remove-AppxPackage只会卸载包,但不会自动删除开始菜单的快捷方式和本地残留的缓存文件夹。

二、完整清理脚本(需管理员身份运行)

1. 卸载所有用户的开发模式UWP包

这个脚本会遍历本地所有启用的用户,卸载每个用户下处于开发模式的UWP包:

# 获取本地所有启用的本地用户
$users = Get-WmiObject -Class Win32_UserAccount | Where-Object { $_.Disabled -eq $false -and $_.LocalAccount -eq $true }

foreach ($user in $users) {
    $sid = $user.SID
    Write-Host "=== 处理用户: $($user.Name) (SID: $sid) ==="
    # 获取该用户下的开发模式Appx包
    $targetPackages = Get-AppxPackage -AllUsers | Where-Object { 
        $_.IsDevelopmentMode -eq $true -and $_.PackageUserInformation[$sid] -ne $null 
    }
    if ($targetPackages) {
        $targetPackages | Remove-AppxPackage -AllUsers
        Write-Host "已卸载 $($targetPackages.Count) 个开发模式应用`n"
    } else {
        Write-Host "未找到该用户的开发模式应用`n"
    }
}

2. 清理开始菜单的残留快捷方式

卸载包后,开始菜单里的快捷方式不会自动删除,这个脚本会扫描系统和用户的开始菜单目录,清理VS测试应用的快捷方式:

# 定义要扫描的开始菜单路径
$startMenuLocations = @(
    "$env:ProgramData\Microsoft\Windows\Start Menu\Programs",
    "$env:USERPROFILE\AppData\Roaming\Microsoft\Windows\Start Menu\Programs"
)

foreach ($location in $startMenuLocations) {
    if (-not (Test-Path $location)) {
        Write-Host "路径不存在: $location`n"
        continue
    }
    Write-Host "=== 扫描开始菜单路径: $location ==="
    # 查找符合特征的快捷方式:名字含Test/Appx/_TemporaryKey,或内容关联微软开发包
    $residualShortcuts = Get-ChildItem -Path $location -Filter "*.lnk" -Recurse | Where-Object {
        $_.Name -match "Test|Appx|_TemporaryKey" -or 
        (Get-Content $_.FullName -Raw -ErrorAction SilentlyContinue) -match "Microsoft Corporation.*Development"
    }
    if ($residualShortcuts) {
        $residualShortcuts | Remove-Item -Force
        Write-Host "已删除 $($residualShortcuts.Count) 个残留快捷方式`n"
    } else {
        Write-Host "未找到残留快捷方式`n"
    }
}

3. 清理本地缓存的残留包文件夹

有些包卸载后,%USERPROFILE%\AppData\Local\Packages里还会留下缓存文件夹,这个脚本会清理这些无对应Appx包的残留:

$packagesDir = "$env:USERPROFILE\AppData\Local\Packages"
if (-not (Test-Path $packagesDir)) {
    Write-Host "Packages目录不存在: $packagesDir"
    exit
}

Write-Host "=== 扫描Packages目录残留: $packagesDir ==="
$residualFolders = Get-ChildItem -Path $packagesDir | Where-Object {
    $folderName = $_.Name
    # 过滤:无对应Appx包,且名字含Test/Appx/_TemporaryKey(VS临时包特征)
    -not (Get-AppxPackage -Name $folderName -ErrorAction SilentlyContinue) -and 
    $folderName -match "Test|Appx|_TemporaryKey"
}

if ($residualFolders) {
    $residualFolders | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
    Write-Host "已删除 $($residualFolders.Count) 个残留包文件夹"
} else {
    Write-Host "未找到残留包文件夹"
}

三、使用注意事项

  1. 必须以管理员身份运行PowerShell,否则无法访问其他用户的Appx包和系统开始菜单目录;
  2. 建议先预览再删除:比如把脚本里的Remove-AppxPackage改成Write-Output,Remove-Item改成Write-Output $_.FullName,先确认要删除的内容,避免误删;
  3. 如果还有少量残留,可以手动去「应用和功能」里搜索Appx、Test关键词,找到后卸载(有些可能需要右键→更多→卸载)。

内容的提问来源于stack exchange,提问作者Richard Chambers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:08:14