求助:Windows 11用PowerShell卸载指定预装应用及隐藏应用商店
Windows 11企业批量部署:预装应用卸载与应用商店隐藏方案
一、先搞定应用包名的精准识别
你之前用get-appxpackage -allusers *xboxapp*找不到应用,核心原因是包名匹配错误——Windows 11里这些预装应用的官方包名并不是带xboxapp这种关键词的。
用下面的命令精准筛选目标应用:
Get-AppxPackage -AllUsers | Where-Object {$_.Name -match "Xbox|Spotify|LinkedIn|Solitaire"} | Select-Object Name, PackageFullName
或者直接用Win11 22H2/23H2通用的精准包名:
- Xbox系列:
Microsoft.XboxGameOverlay、Microsoft.XboxIdentityProvider、Microsoft.XboxSpeechToTextOverlay、Microsoft.XboxGamingOverlay - Spotify:
SpotifyAB.SpotifyMusic - LinkedIn:
Microsoft.LinkedInforWindows - 纸牌:
Microsoft.MicrosoftSolitaireCollection
二、卸载已安装的用户应用
针对当前所有用户已安装的目标应用,执行批量卸载脚本:
# 定义要卸载的应用包名列表 $targetApps = @( "Microsoft.XboxGameOverlay", "Microsoft.XboxIdentityProvider", "Microsoft.XboxSpeechToTextOverlay", "Microsoft.XboxGamingOverlay", "SpotifyAB.SpotifyMusic", "Microsoft.LinkedInforWindows", "Microsoft.MicrosoftSolitaireCollection" ) # 遍历卸载每个应用 foreach ($app in $targetApps) { Get-AppxPackage -AllUsers $app | Remove-AppxPackage -ErrorAction SilentlyContinue Write-Host "已尝试卸载:$app" }
注:
-ErrorAction SilentlyContinue用来忽略“应用未安装”的报错,避免脚本中断。
三、移除预配应用(阻止新用户登录时自动安装)
企业部署里,新用户登录Win11会自动安装预配的预装应用,所以要彻底移除这些应用的预配包:
# 定义要移除的预配应用包名列表 $provisionedApps = @( "Microsoft.XboxGameOverlay", "Microsoft.XboxIdentityProvider", "SpotifyAB.SpotifyMusic", "Microsoft.LinkedInforWindows", "Microsoft.MicrosoftSolitaireCollection" ) # 遍历移除预配包 foreach ($app in $provisionedApps) { Get-AppxProvisionedPackage -Online | Where-Object {$_.DisplayName -eq $app} | Remove-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue Write-Host "已尝试移除预配包:$app" }
注:部分Xbox核心组件(比如
Microsoft.XboxIdentityProvider)属于系统依赖组件,可能无法完全移除,保留不影响日常使用。
四、脚本化隐藏应用商店
用PowerShell修改注册表来隐藏应用商店,适合批量部署场景:
# 隐藏应用商店(针对所有用户) New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" -Force | Out-Null New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" -Name "{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}" -Value 1 -PropertyType DWORD -Force | Out-Null # 刷新资源管理器使设置生效 Stop-Process -Name explorer -Force
如果后续需要恢复显示,把命令中的-Value 1改成-Value 0即可。
内容的提问来源于stack exchange,提问作者Andy McRae
相关产品推荐
相关产品推荐

