PowerShell卸载Windows预装应用时白名单排除规则失效问题求助
问题诊断
- 逻辑错误:原代码循环遍历每一个白名单应用,每次都执行「排除当前单个白名单应用、卸载所有其他应用」的操作。第一次循环就会把除了第一个白名单应用之外的所有应用(包括其余白名单应用)全部卸载,白名单规则完全失效。
- 匹配操作符使用错误:
-NotLike是通配符匹配操作符,需要配合*之类的通配符使用,你需要的是完全匹配应用名判断是否在白名单内,应该用-notin集合包含判断操作符。 - 语法冗余错误:代码末尾多了一个无对应起始的闭合大括号
}。
修正方案
调整执行逻辑,先获取所有Appx应用包,一次性过滤掉所有在白名单内的应用后再执行卸载操作,修正后的完整代码如下:
$WhitelistedApps = @( "1527c705-839a-4832-9118-54d4Bd6a0c89" "E2A4F912-2574-4A75-9BB0-0D023378592B" "F46D4000-FD22-4DB4-AC8E-4E1DDDE828FE" "Microsoft.AAD.BrokerPlugin" "Microsoft.AccountsControl" "Microsoft.AsyncTextService" "Microsoft.BioEnrollment" "Microsoft.CredDialogHost" "Microsoft.ECApp" "Microsoft.LockApp" "Microsoft.MicrosoftEdge" "Microsoft.MicrosoftEdgeDevToolsClient" "Microsoft.PPIProjection" "Microsoft.Win32WebViewHost" "Microsoft.Windows.Apprep.ChxApp" "Microsoft.Windows.AssignedAccessLockApp" "Microsoft.Windows.CallingShellApp" "Microsoft.Windows.CapturePicker" "Microsoft.Windows.CloudExperienceHost" "Microsoft.Windows.ContentDeliveryManager" "Microsoft.Windows.Cortana" "Microsoft.Windows.NarratorQuickStart" "Microsoft.Windows.OOBENetworkCaptivePortal" "Microsoft.Windows.OOBENetworkConnectionFlow" "Microsoft.Windows.ParentalControls" "Microsoft.Windows.PeopleExperienceHost" "Microsoft.Windows.PinningConfirmationDialog" "Microsoft.Windows.Search" "Microsoft.Windows.SecHealthUI" "Microsoft.Windows.SecondaryTileExperience" "Microsoft.Windows.SecureAssessmentBrowser" "Microsoft.Windows.ShellExperienceHost" "Microsoft.Windows.StartMenuExperienceHost" "Microsoft.Windows.XGpuEjectDialog" "Microsoft.XboxGameCallableUI" "MicrosoftWindows.Client.CBS" "MicrosoftWindows.UndockedDevKit" "NcsiUwpApp" "Windows.CBSPreview" "Windows.ContactSupport" "Windows.MiracastView" "Windows.PrintDialog" "c5e2524a-ea46-4f67-841f-6a9465d9d515" "windows.immersivecontrolpanel" ) # 过滤所有非白名单应用后执行卸载 Get-AppxPackage | Where-Object {$_.Name -notin $WhitelistedApps} | Remove-AppxPackage
如果需要同时卸载设备上所有用户的预装冗余软件,可以将Get-AppxPackage替换为Get-AppxPackage -AllUsers,执行脚本需要管理员权限。
内容的提问来源于stack exchange,提问作者Se7en
相关产品推荐
相关产品推荐

