找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 7024|回复: 46

[分享] 分享一个删除非必需的APPX(包括Defender)的简单办法

    [复制链接]
发表于 2025-7-1 17:40:57 | 显示全部楼层 |阅读模式
本帖最后由 hlowld 于 2025-7-3 19:24 编辑

对离线镜像(假设在z:)执行以下代码,安装后,所有用户都不会有白名单以外的APPX(包括Defender等NonRemovable为True的系统应用)
偶然发现插入代码好像要吃字符,导致脚本无效,改为直接发文本。

:removeproappx
powershell -NoProfile -Command ^
"Get-ProvisionedAppxPackage -Path 'z:' |" ^
"Where-Object { " ^
"  $_.DisplayName -notmatch 'ShellExperienceHost|StartMenuExperienceHost|Client\.CBS|immersivecontrolpanel|PrintDialog|VCLibs'" ^
"} |" ^
"Remove-ProvisionedAppxPackage -Path 'z:'" >nul 2>nul


reg load HKLM\sof z:\Windows\System32\config\software >nul 2>nul || goto :eof
set "exclude_list=ShellExperienceHost StartMenuExperienceHost Client.CBS immersivecontrolpanel PrintDialog VCLibs"
for /f "tokens=9 delims=\" %%a in ('reg query "HKLM\sof\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\InboxApplications"') do (
    set "should_delete=1"
    for %%# in (%exclude_list%) do (echo %%a | findstr /i "%%#" >nul && set "should_delete=0")
    if "!should_delete!" equ "1" reg delete "HKLM\sof\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\InboxApplications\%%a" /f >nul 2>nul
)
reg unload HKLM\sof >nul 2>nul
goto :eof


对于Edge,在线系统用老版本安装包执行卸载,暂时没找到简单好用的离线卸载方法。不太愿意用删除注册表和文件的方案,感觉容易出错,对系统版本的兼容性也不高。
:removeedge
if exist "%~dp0edgesetup.exe" (
for /f "tokens=1 delims=\" %%i in ('dir /B /A:D "%ProgramFiles(x86)%\Microsoft\Edge\Application" 2^>nul ^| find "."') do set "edge_chromium_package_version=%%i"
if defined edge_chromium_package_version (
  taskkill /f /im msedge.exe >nul 2>nul
  taskkill /f /im MicrosoftEdgeUpdate.exe >nul 2>nul
  %~dp0edgesetup.exe --uninstall --force-uninstall --msedge --system-level --verbose-logging
)
)
del /f /q "%USERPROFILE%\Desktop\Microsoft Edge.lnk" >nul 2>nul
del /f /q "%ProgramData%\Microsoft\Windows\Start Menu\Programs\Microsoft Edge.lnk" >nul 2>nul
del /f /q "%appdata%\Microsoft\Windows\Start Menu\Programs\Microsoft Edge.lnk" >nul 2>nul
goto :eof


评分

参与人数 1无忧币 +5 收起 理由
某些人 + 5 赞一个!

查看全部评分

发表于 2025-7-1 17:48:13 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2025-7-1 19:02:37 | 显示全部楼层
白名单怎么设置

点评

系统必需的6个白名单ShellExperienceHost|StartMenuExperienceHost|Client.CBS|immersivecontrolpanel|PrintDialog|VCLibs,已经写在脚本中了,可以将自己想要保留的appx加入进来  详情 回复 发表于 2025-7-1 20:53
回复

使用道具 举报

发表于 2025-7-1 19:48:23 | 显示全部楼层
正找这个,牛逼
回复

使用道具 举报

发表于 2025-7-1 19:53:25 | 显示全部楼层
有更新了就去试用一下,支持、感谢分享!
回复

使用道具 举报

发表于 2025-7-1 19:56:48 | 显示全部楼层
谢谢分享
回复

使用道具 举报

 楼主| 发表于 2025-7-1 20:53:53 | 显示全部楼层

系统必需的6个白名单ShellExperienceHost|StartMenuExperienceHost|Client.CBS|immersivecontrolpanel|PrintDialog|VCLibs,已经写在脚本中了,可以将自己想要保留的appx加入进来
回复

使用道具 举报

发表于 2025-7-1 21:04:06 | 显示全部楼层
移除defender会不会报错?

点评

这个办法其实并没有移除任何组件,原理是: 1、每个新用户首次登录时,AppReadiness应用会自动为用户安装预配的应用。该办法将白名单外的应用解除预配,让其不被自动安装。 2、每个新用户首次登录时,AppReadiness  详情 回复 发表于 2025-7-1 21:12
回复

使用道具 举报

发表于 2025-7-1 21:06:01 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2025-7-1 21:12:43 | 显示全部楼层
本帖最后由 hlowld 于 2025-7-1 21:18 编辑
印第安老斑鸠 发表于 2025-7-1 21:04
移除defender会不会报错?

这个办法其实并没有移除任何组件,原理是:
1、每个新用户首次登录时,AppReadiness服务会自动为用户安装预配的应用(即Windows Apps)。该办法将白名单外的应用解除预配,让其不被自动安装。
2、每个新用户首次登录时,AppReadiness服务会自动为用户安装HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\InboxApplications下的系统应用(即System Apps,存储路径在Windows\SystemApps下)。该办法将该注册表下白名单外的项删除,让其不被自动安装。
所以理论上,该办法其实对系统改动小,应该是较为稳定的。

点评

好的,谢谢,你这么一说我懂了,这种方法很安全  详情 回复 发表于 2025-7-2 20:27
回复

使用道具 举报

发表于 2025-7-1 21:27:09 | 显示全部楼层
感谢分享!
回复

使用道具 举报

发表于 2025-7-1 21:32:14 | 显示全部楼层

谢谢分享
回复

使用道具 举报

发表于 2025-7-1 22:57:01 | 显示全部楼层
謝謝大大用心分享,感恩喔~~! ^^ 辛苦了!
回复

使用道具 举报

发表于 2025-7-1 23:06:09 | 显示全部楼层
如何获取z:盘镜像的appx名单,再自定义白名单?
回复

使用道具 举报

发表于 2025-7-1 23:22:06 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2025-7-1 23:24:24 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2025-7-2 00:37:20 | 显示全部楼层
回复

使用道具 举报

发表于 2025-7-2 00:48:59 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2025-7-2 08:03:04 | 显示全部楼层
谢谢分享!!!
回复

使用道具 举报

发表于 2025-7-2 08:18:16 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2025-7-2 08:46:50 | 显示全部楼层
感谢分享,学习了
回复

使用道具 举报

发表于 2025-7-2 08:59:54 | 显示全部楼层

谢谢楼主分享
回复

使用道具 举报

发表于 2025-7-2 09:10:05 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

发表于 2025-7-2 09:11:10 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

发表于 2025-7-2 09:23:02 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2025-7-2 09:43:02 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2025-7-2 10:52:47 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2025-7-2 11:06:01 | 显示全部楼层
Mark,看反馈情况再说。。。
回复

使用道具 举报

发表于 2025-7-2 12:41:26 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2025-7-2 12:51:19 | 显示全部楼层
本帖最后由 2010hook 于 2025-7-2 13:07 编辑

改进了一下,更严谨简洁:
  1. powershell -ExecutionPolicy Bypass -NoProfile -Command "Get-ProvisionedAppxPackage -Path 'z:' | Where-Object { $_.PackageName -notmatch '(?:ShellExperienceHost|StartMenuExperienceHost|Client\.CBS|ImmersiveControlPanel|PrintDialog|VCLibs)' } | ForEach-Object { Remove-ProvisionedAppxPackage -Path 'z:' -PackageName $_.PackageName -ErrorAction Continue }"
复制代码
  1. for /f "tokens=9* delims=" %%a in ('reg query "HKLM\SOFTWARE_Tmp\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\InboxApplications" ^| findstr /ive "ShellExperienceHost StartMenuExperienceHost Client.CBS immersivecontrolpanel PrintDialog VCLibs" 2>nul') do (
  2.     reg delete "HKLM\SOFTWARE_Tmp\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\InboxApplications\%%~a" /f >nul 2>nul
  3. )
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-5-26 22:11

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表