带-AllUsers参数的PowerShell删Windows预装软件后,新用户仍自动安装的解决办法
问题描述
每次安装Windows 10/11时,我都会运行以下PowerShell脚本删除部分默认预装软件:
$bloatware = @( "ActiproSoftwareLLC" "AdobeSystemsIncorporated.AdobePhotoshopExpress" "BingNews" "BubbleWitch3Saga" "CandyCrush" "Duolingo" "EclipseManager" "Facebook" "Flipboard" "GetHelp" "Getstarted" "Messaging" "Microsoft3DViewer" "MicrosoftOfficeHub" "MicrosoftSolitaireCollection" "Minecraft" "MixedReality" "News" "Office.Lens" "Office.OneNote" "Office.Sway" "Office.Todo.List" "OneConnect" "PandoraMediaInc" "Microsoft.People" "Print3D" "Royal Revolt" "SkypeApp" "Speed Test" "Spotify" "Sway" "Twitter" "Wallet" "Weather" "Whiteboard" "windowscommunicationsapps" "WindowsFeedbackHub" "WindowsMaps" "Wunderlist" "Xbox.TCUI" "XboxApp" "XboxGameOverlay" "XboxIdentityProvider" "XboxSpeechToTextOverlay" "YourPhone" "ZuneMusic" "ZuneVideo" ) foreach ($bloat in $bloatware) { Get-AppxPackage -AllUsers -Name *$bloat* | Remove-AppxPackage }
脚本运行无异常,但创建新本地用户时,即便已使用-AllUsers参数,这些软件仍会重新安装到新用户账户,请问如何阻止这些软件在创建用户时自动安装?
解决方法
你的脚本仅删除了已安装到现有用户账户的应用,但Windows的**默认应用预安装配置(Provisioned Apps)**仍保存在系统中,新用户创建时会自动从该配置列表部署应用。要彻底阻止,需删除这些应用的预安装配置。
方法一:删除指定应用的预安装配置
使用Remove-AppxProvisionedPackage cmdlet清理预安装配置,修改后的脚本如下:
$bloatware = @( "ActiproSoftwareLLC" "AdobeSystemsIncorporated.AdobePhotoshopExpress" "BingNews" "BubbleWitch3Saga" "CandyCrush" "Duolingo" "EclipseManager" "Facebook" "Flipboard" "GetHelp" "Getstarted" "Messaging" "Microsoft3DViewer" "MicrosoftOfficeHub" "MicrosoftSolitaireCollection" "Minecraft" "MixedReality" "News" "Office.Lens" "Office.OneNote" "Office.Sway" "Office.Todo.List" "OneConnect" "PandoraMediaInc" "Microsoft.People" "Print3D" "Royal Revolt" "SkypeApp" "Speed Test" "Spotify" "Sway" "Twitter" "Wallet" "Weather" "Whiteboard" "windowscommunicationsapps" "WindowsFeedbackHub" "WindowsMaps" "Wunderlist" "Xbox.TCUI" "XboxApp" "XboxGameOverlay" "XboxIdentityProvider" "XboxSpeechToTextOverlay" "YourPhone" "ZuneMusic" "ZuneVideo" ) # 先删除已安装到所有用户的应用 foreach ($bloat in $bloatware) { Get-AppxPackage -AllUsers -Name *$bloat* | Remove-AppxPackage } # 删除应用的预安装配置,阻止新用户自动部署 foreach ($bloat in $bloatware) { Get-AppxProvisionedPackage -Online | Where-Object DisplayName -like *$bloat* | Remove-AppxProvisionedPackage -Online }
注意:必须以管理员权限运行PowerShell窗口执行此脚本。
方法二:禁用应用自动部署服务
如果想彻底阻止所有预安装应用的自动部署,可禁用AppXSvc服务:
- 打开管理员权限的PowerShell,运行以下命令:
Set-Service -Name AppXSvc -StartupType Disabled Stop-Service -Name AppXSvc
- 此操作会阻止所有新应用的自动部署,但可能影响Microsoft Store等系统功能的正常使用,需谨慎操作。
额外注意事项
- 不要删除系统核心应用(如
Microsoft.WindowsStore),否则可能导致系统功能异常。 - 对于Windows 11,部分应用的包名可能有所变化,可通过
Get-AppxProvisionedPackage -Online命令查看完整的预安装应用列表,确认包名后再执行删除操作。
内容的提问来源于stack exchange,提问作者markfree
相关产品推荐
相关产品推荐

