跳转到内容
本站为社区维护的非官方中文翻译,与 Cloudflare, Inc. 无关联。本站不提供账户登录,请勿在任何非官方站点输入您的 Cloudflare 账户信息。官方文档:developers.cloudflare.com

卸载保护

最后更新 查看 MarkdownAgent 设置

功能可用性

客户端模式 Zero Trust 计划 ↗
所有模式 所有计划
系统 可用性 最低客户端版本
Windows ✅ 2026.9.0.0
macOS ❌
Linux ❌
iOS ❌
Android ❌
ChromeOS ❌

卸载保护可防止 Windows 上的 Cloudflare One Client(原名 WARP)遭到未经授权的修改或卸载。启用此功能后,用户必须提供管理员生成的代码才能卸载客户端。未提供有效代码时,卸载操作会被阻止。

受保护的操作

启用卸载保护后,Cloudflare One Client 会阻止以下操作,直到输入有效代码:

  • 通过 Settings > Apps、控制面板或 msiexec 卸载客户端。
  • 使用 .msi 安装程序升级或降级客户端。
  • 通过客户端界面退出 Zero Trust 组织。
  • 使用 warp-cli registration delete 删除设备注册。

在 Windows 10 21H2 版(内部版本 19044)及更高版本上,客户端还会安装文件系统驱动程序。此驱动程序会阻止更改 C:\Program Files\Cloudflare 和 C:\ProgramData\Cloudflare 中的客户端文件,也会阻止更改客户端注册表项和服务。即使 Cloudflare One Client 服务已停止,该驱动程序仍会继续执行这些保护。

此驱动程序也会阻止更改 MDM 文件,例如 C:\ProgramData\Cloudflare\mdm.xml。若要更改受保护设备上的 MDM 文件,请先解锁客户端。

卸载代码

Cloudflare 提供两种代码。两种代码都会在你选择的时长后过期,时长范围为 1 到 24 小时。

设备专属卸载代码按固定的一小时区间计算,并与 UTC 整点对齐。有效时长从生成代码时所在 UTC 小时的开始时间起算。例如,在 UTC 时间 10:45 生成的一小时代码会在 UTC 时间 11:00 过期。

代码 格式 适用对象 适用场景
设备专属卸载代码 7 位数字 一台设备 用户需要手动卸载、升级或降级
账户范围卸载令牌 104 个字符的字符串 账户中的所有设备 你通过 MDM 或脚本卸载、升级或降级

Cloudflare One Client 会在本地验证这两种代码。设备无需连接互联网即可接受代码。

客户端接受代码后,会关闭卸载保护,直到代码过期后再延长一小时。这额外的一小时可让较慢的升级或卸载完成。此期限过后,卸载保护会自动重新启用。

启用卸载保护

卸载保护是设备配置文件中的一项设置,默认关闭。此设置的变更会记录在审计日志中。

  1. 在 Cloudflare 控制面板 ↗中,转到 Zero Trust > Team & Resources > Devices > Device profiles > General profiles。
  2. 找到要更新的设备配置文件,然后选择 Configure。
  3. 启用 Device Management Protection。
  4. 选择 Save profile。

如需更改设备配置文件,你需要一个具有 Zero Trust Write 权限的 API 令牌。

如需为自定义设备配置文件启用卸载保护,请向 Devices API发送 PATCH 请求:

Required API token permissions

At least one of the following token permissions is required:
  • Zero Trust Write
Update a device settings profilebash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/devices/policy/$POLICY_ID" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"uninstall_protection": true
	}'

如需为默认设备配置文件启用卸载保护,请向 Devices API发送 PATCH 请求:

Required API token permissions

At least one of the following token permissions is required:
  • Zero Trust Write
Update the default device settings profilebash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/devices/policy" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"uninstall_protection": true
	}'

新更新的设置可能需要多达 10 分钟才能传播到设备。

设备必须先收到更新后的配置文件,卸载保护才会生效。生效后,即使设备处于离线状态,卸载保护仍会保持开启。

生成卸载代码

设备专属卸载代码

  1. 在 Cloudflare 控制面板 ↗中,转到 Zero Trust > Team & Resources > Devices。
  2. 在 Your devices 中选择设备。
  3. 选择 Delete 旁边的三个点 (...),然后选择 Generate uninstall code。
  4. 在 Duration (hours) 中,输入代码有效时长,范围为 1 到 24 小时。
  5. 选择 Generate code。
  6. 复制 7 位代码并分享给用户。

向 Devices API发送 POST 请求。将 scope 设为 device,并将 device_id 设为设备 ID。将 duration_hours 设为 1 到 24 之间的值。API 令牌至少需要 Zero Trust Read 权限:

Generate an uninstall protection override codebash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/devices/override_codes" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"type": "uninstall_protection",
		"scope": "device",
		"device_id": "$DEVICE_ID",
		"duration_hours": 4
	}'

响应中的 code 字段包含设备专属卸载代码:

{
	"result": {
		"code": "1234567"
	},
	"success": true,
	"errors": [],
	"messages": []
}

如需查找设备 ID,请在 Team & Resources > Devices 中打开设备,并复制页面顶部的 ID。你也可以在设备上运行 warp-cli registration show 并复制 Device ID 值。

设备专属卸载代码仅适用于生成该代码的设备。

账户范围卸载令牌

  1. 在 Cloudflare 控制面板 ↗中,转到 Zero Trust > Team & Resources > Devices > Management。
  2. 在 Client control 下找到 Account-wide uninstall token,然后选择 Generate token。
  3. 在 Duration (hours) 中,输入令牌有效时长,范围为 1 到 24 小时。
  4. 选择 Generate token。
  5. 复制令牌。

向 Devices API发送 POST 请求。将 scope 设为 account,且不要包含 device_id。将 duration_hours 设为 1 到 24 之间的值。API 令牌至少需要 Zero Trust Read 权限:

Generate an uninstall protection override codebash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/devices/override_codes" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"type": "uninstall_protection",
		"scope": "account",
		"duration_hours": 4
	}'

响应中的 code 字段包含账户范围卸载令牌。

卸载受保护的客户端

手动卸载

如需在受保护设备上卸载 Cloudflare One Client:

  1. 向管理员获取设备专属卸载代码。
  2. 启动卸载程序。例如,转到 Settings > Apps > Installed apps,然后卸载 Cloudflare One Client。
  3. 安装程序提示时,输入设备专属卸载代码并选择 Continue。
  4. 如果 Windows 请求管理员批准,请批准该请求。

客户端接受代码后,卸载会继续。如果选择 Cancel,卸载会停止,客户端仍保持安装状态。

如果代码错误或已过期,安装程序会显示错误,你可以重新输入代码。多次输入错误代码后,客户端会要求等待一段时间再重试。每次输错后,等待时间都会增加,最长为一分钟。

使用 MDM 或脚本卸载

静默卸载需要账户范围卸载令牌。请将令牌通过 UNINSTALL_TOKEN 属性传给安装程序:

msiexec /x "<LOCAL_PACKAGE_PATH>" /qn UNINSTALL_TOKEN="<ACCOUNT_WIDE_UNINSTALL_TOKEN>"

如需查找 .msi 软件包路径,请参阅卸载 Cloudflare One Client。

如果缺少令牌或令牌无效,msiexec 会以错误代码 1603 退出,客户端仍会保持安装状态。静默卸载不能使用设备专属卸载代码。

安装程序会将任何以 SYSTEM 账户运行的卸载视为静默卸载。这包括 Microsoft Intune 和其他 MDM 工具,即使使用 /qb 选项也是如此。

升级或降级受保护的客户端

使用 .msi 安装程序升级或降级同样需要代码:

  • 手动升级或降级:安装程序会提示输入设备专属卸载代码。
  • 静默升级或降级:通过 UNINSTALL_TOKEN 属性传入账户范围卸载令牌。
msiexec /i "Cloudflare_WARP_<VERSION>.msi" /qn UNINSTALL_TOKEN="<ACCOUNT_WIDE_UNINSTALL_TOKEN>"

以下更新不需要代码:

  • 通过客户端版本分配推送的更新。
  • 从不支持卸载保护的客户端版本升级。升级完成后,卸载保护会启用。

静默降级到较早版本

静默降级到早于 2026.9.0.0 的客户端版本时,会忽略 UNINSTALL_TOKEN 属性。较早版本的安装程序不会将令牌传给已安装的客户端,因此降级会失败。

如需静默降级,请先使用账户范围卸载令牌解锁客户端,然后运行较早版本的安装程序:

warp-cli uninstall-protection unlock --account "<ACCOUNT_WIDE_UNINSTALL_TOKEN>"
msiexec /i "Cloudflare_WARP_<VERSION>.msi" /qn

请在令牌有效期内运行这两个命令。更多信息,请参阅使用 warp-cli 解锁客户端。

手动降级不受影响。安装程序仍会照常提示输入设备专属卸载代码。

使用 warp-cli 解锁客户端

你可以使用 warp-cli 关闭设备上的卸载保护。在不经过安装程序提示的操作前使用此命令,例如退出 Zero Trust 组织。

使用设备专属卸载代码解锁:

warp-cli uninstall-protection unlock --device <DEVICE_SPECIFIC_UNINSTALL_CODE>

使用账户范围卸载令牌解锁:

warp-cli uninstall-protection unlock --account <ACCOUNT_WIDE_UNINSTALL_TOKEN>

检查卸载保护是否已启用,以及解锁后会关闭多久:

warp-cli uninstall-protection show
Uninstall protection: disabled
Grace period remaining: 7140 seconds

如果 Cloudflare One Client 服务未运行,warp-cli 会将代码直接发送到文件系统驱动程序。此时请在提升权限的命令提示符中运行 warp-cli。

退出受保护的设备

启用卸载保护后,客户端会禁用 Logout 按钮。

即使已启用允许设备离开组织,此限制仍然生效。如需退出,请先解锁客户端。

关闭卸载保护

如需关闭卸载保护,请在设备配置文件中关闭 Device Management Protection。如果使用 API,请将 uninstall_protection 设为 false。

设备收到更新后的配置文件后会关闭卸载保护。离线设备会一直受到保护,直到重新连接。如需从离线设备移除客户端,请使用卸载代码。

故障排除

代码未被接受

请检查以下事项:

  • 代码尚未过期。
  • 设备专属卸载代码是为此设备生成的。代码不能用于其他设备。
  • 代码是针对设备当前 ID 生成的。在设备上运行 warp-cli registration show,并检查 Device ID 是否与 Team & Resources > Devices 中该设备的 ID 匹配。
  • 你在安装程序提示中输入了设备专属卸载代码。该提示不接受账户范围卸载令牌。

查看日志

安装程序会将以 Uninstall authorization: 开头的行写入 Windows Installer 日志 ↗。如需创建日志,请在 msiexec 命令中添加 /l*v <PATH_TO_LOG_FILE>。

诊断日志包含被拒绝的代码以及文件系统驱动程序阻止的操作。

这篇文档对您有帮助吗?