删除 Windows 10 内置应用

以 Win 10 内置应用 XboxGameCallableUI 为例。在 PowerShell 命令行中执行:

powershellget-appxpackage *XboxGameCallableUI*

可以看到返回如下信息:

Name              : Microsoft.XboxGameCallableUI
Publisher         : CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : Neutral
ResourceId        : neutral
Version           : 1000.19041.1023.0
PackageFullName   : Microsoft.XboxGameCallableUI_1000.19041.1023.0_neutral_neutral_cw5n1h2txyewy
InstallLocation   : C:\Windows\SystemApps\Microsoft.XboxGameCallableUI_cw5n1h2txyewy
PublisherId       : cw5n1h2txyewy
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : True
IsPartiallyStaged : False
SignatureKind     : System

其中 NonRemovable 的值为 True,这意味着如果我们直接用 get-appxpackage *XboxGameCallableUI* | remove-appxpackage 命令是无法删除该 package 的。

必须需要修改系统配置才能实现删除内置应用。在一切开始前,我们需要准备如下工具:

首先,在开始菜单中输入 “CMD” 找到命令提示符,点击“以管理员身份运行”。

运行如下命令:

powershell/path/to/psexec.exe -i -s -d python.exe

该命令会启动一个以 system 权限运行的 Python 解释器。

在 Python 解释器中逐行输入:

pythonimport os,sqlite3
conn = sqlite3.connect(os.path.expandvars(r'%ProgramData%\Microsoft\Windows\AppRepository\StateRepository-Machine.srd'))
def is_srjournal_enabled(): return False

def workid():pass

def now():pass

conn.create_function('is_srjournal_enabled',0,is_srjournal_enabled)
conn.create_function('workid',0,workid)
conn.create_function('now',0,now)
conn.execute('update main.Package set IsInbox=0 where IsInbox=1')
conn.commit()
exit()

代码也可以直接保存为 Python 脚本后用 PsExec 执行。

如果脚本运行成功,则所有 Package 都已经解锁,可以用 remove-appxpackage 命令删除。在 PowerShell 下尝试删除 Microsoft.XboxGameCallableUI

powershellget-appxpackage *XboxGameCallableUI* | remove-appxpackage