资讯详情

Fleet 中如何卸载 fleetd(Fleet 代理):macOS、Windows、Linux 本地与远程卸载完整指南

📅 2026/9/18 16:32:40 | 华诺云谱 👁 阅读
Fleet 中如何卸载 fleetd(Fleet 代理):macOS、Windows、Linux 本地与远程卸载完整指南
Fleet 中如何卸载 fleetdFleet 代理macOS、Windows、Linux 本地与远程卸载完整指南【免费下载链接】fleetOpen device management项目地址: https://gitcode.com/GitHub_Trending/fl/fleetFleet 的设备管理代理fleetd由 Orbit 组件构成包含 osquery 安装器/自动更新器、osqueryd 与 fleet-desktop 桌面菜单应用负责设备与 Fleet 服务器之间的连接、遥测上报与 MDM 管理。本文基于仓库中的官方卸载脚本完整讲解在 macOS、Windows、Linux 三种平台上本地直接卸载与通过 Fleet 控制台远程卸载的全流程并深入剖析各平台卸载脚本的底层清理逻辑LaunchDaemon/systemd 服务、包管理器残留、注册表项、MDM 注册状态等帮助你安全、干净地移除 fleetd 并理解卸载脚本为何采用延迟分离子进程的设计。卸载前须知卸载 fleetd 需要管理员root权限macOS 与 Linux 需在sudo下执行Windows 需以管理员身份运行 PowerShell。三份官方卸载脚本均采用**父进程 延迟分离子进程的设计脚本先由 Fleet 感知的会话返回成功随后再启动一个脱离父进程的子进程等待 1520 秒后真正执行文件清理。这样做的目的是给 Fleet 留出时间接收脚本执行结果**避免清理过程过早中断遥测上报。卸载后设备在 Fleet 中会显示为offline离线直到你在 Fleet 中手动删除该主机记录。若设备仍受 MDM 管理卸载脚本会优先关闭/移除 MDM 注册防止 Fleet 在 agent 被移除前重新启用管理。在 macOS 上卸载 fleetdmacOS 卸载脚本位于 it-and-security/lib/macos/scripts/uninstall-fleetd-macos.sh执行步骤如下下载 macOS 卸载脚本uninstall-fleetd-macos.sh。打开Terminal终端应用。进入脚本保存目录cd /path/to/your/script为脚本添加可执行权限chmod x uninstall-fleetd-macos.sh以 root 权限运行sudo ./uninstall-fleetd-macos.shmacOS 卸载脚本的清理逻辑脚本首先通过id -u校验当前用户是否为 root非 root 直接退出并提示 Please run as root。核心清理函数remove_fleet依次执行rm -rf /Library/LaunchDaemons/com.fleetdm.orbit.plist /var/lib/orbit /usr/local/bin/orbit /var/log/orbit /opt/orbit/ pkgutil --forget com.fleetdm.orbit.base.pkg || true launchctl stop com.fleetdm.orbit launchctl unload /Library/LaunchDaemons/com.fleetdm.orbit.plist pkill fleet-desktop || true即删除 Orbit 的LaunchDaemon 启动项、数据目录/var/lib/orbit、二进制/usr/local/bin/orbit、日志目录/var/log/orbit与安装目录/opt/orbit并通过pkgutil --forget注销 pkg 安装记录随后停止并卸载 LaunchDaemon、结束fleet-desktop进程。随后脚本检查 MDM 注册状态profiles status -type enrollment若输出包含MDM enrollment: Yes则执行profiles remove -identifier com.fleetdm.fleet.mdm.apple移除 Fleet 的 MDM 注册描述文件若为No则直接跳过其余情况提示 MDM status is unknown。主流程部分$1 ! remove会输出 Removing fleetd, system will be unenrolled in 15 seconds...并通过bash -c bash $0 remove ... 启动分离的子进程子进程$1 remove会sleep 15等待 15 秒再将完整清理过程输出追加到/tmp/fleet_remove_log.txt。在 Windows 上卸载 fleetdWindows 卸载脚本位于 docs/solutions/windows/scripts/uninstall-fleetd-windows.ps1该脚本会先关闭 MDM 注册再卸载 fleetd。执行步骤如下下载 Windows 卸载脚本uninstall-fleetd-windows.ps1。右键点击PowerShell选择以管理员身份运行Run as administrator。进入脚本保存目录cd C:\path\to\your\script运行脚本.\uninstall-fleetd-windows.ps1注意运行未签名的 PowerShell 脚本时通常会收到警告需要调整 Execution Policy。一个示例是Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process。这会为当前 PowerShell 会话绕过所有警告和提示。Windows 卸载脚本的清理逻辑脚本的Main函数分为两个阶段阶段一关闭 MDM 注册。脚本通过Test-Administrator校验管理员权限然后检查注册表HKLM:\SOFTWARE\Microsoft\Enrollments下是否存在ProviderID为Fleet且EnrollmentState匹配1|3|6|13的项若无则回退检查DiscoveryServiceFullURL属性作为判断依据。若确认已注册 MDM则调用 P/Invoke 引入的mdmregistration.dll中的UnregisterDeviceWithManagementUnregisterDevice()注销设备并逐一清理各注册项下的DiscoveryServiceFullURL值防止 Fleet 重新启用 MDM。阶段二真正移除 agent。Force-Remove-Orbit函数依次完成Stop-Orbit停止名为Fleet osquery的 Windows 服务并强制结束orbit、osqueryd、fleet-desktop残留进程通过 WMI 删除Fleet osquery服务定义删除$Env:Programfiles\Orbit目录清理注册表HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall中DisplayName为Fleet osquery的项清理HKLM:\SOFTWARE\Classes\Installer\Products与...\Installer\UserData下的 MSI 产品注册记录避免原安装源如网络共享不可用时出现 1612 之类的陈旧源路径错误将成功/失败日志写入%TEMP%\fleet_remove_log.txt。与 macOS/Linux 版本一致脚本默认未传remove参数只先完成 MDM 注销并启动一个隐藏的分离子进程Start-Process -WindowStyle Hidden ... remove子进程等待 20 秒后执行真正的清理父进程随即报告 Removing fleetd, system will be unenrolled in 20 seconds...。在 Linux 上卸载 fleetdLinux 卸载脚本位于 it-and-security/lib/linux/scripts/uninstall-fleetd-linux.sh执行步骤如下下载 Linux 卸载脚本uninstall-fleetd-linux.sh。打开终端。进入脚本保存目录cd /path/to/your/script为脚本添加可执行权限chmod x uninstall-fleetd-linux.sh以 root 权限运行sudo ./uninstall-fleetd-linux.shLinux 卸载脚本的清理逻辑脚本首先校验 root 权限核心函数remove_fleet依次执行systemctl stop orbit.service || true systemctl disable orbit.service || true rm -rf /var/lib/orbit /opt/orbit /var/log/orbit /usr/local/bin/orbit /etc/default/orbit /usr/lib/systemd/system/orbit.service即停止并禁用orbit.service系统服务删除 Orbit 的数据目录、安装目录、日志、二进制、默认配置文件/etc/default/orbit以及 systemd 单元文件。随后根据包管理器清理fleet-osquery软件包引用if command -v dpkg /dev/null; then dpkg --purge fleet-osquery || true elif command -v rpm /dev/null; then rpm -e fleet-osquery || true elif command -v pacman /dev/null; then pacman -Rns --noconfirm fleet-osquery || true fi覆盖 Debian/Ubuntudpkg、RHEL 系rpm与 Archpacman三类常见发行版。最后pkill -f fleet-desktop结束残留进程并systemctl daemon-reload刷新 systemd 配置。值得注意的是Linux 脚本在启动延迟分离子进程时优先使用systemd-run --quiet bash $SCRIPT_PATH remove将清理任务放入独立的 transient unit 运行从而让清理进程脱离orbit.service的 cgroup——这样即使orbit.service被停止卸载脚本也能继续执行完毕对于无 systemd 的罕见环境才回退到nohup ... 方式。通过 Fleet 远程卸载 fleetd除在设备本地执行脚本外也可以完全通过 Fleet 控制台对单台设备远程触发卸载先将对应平台的卸载脚本macOS / Windows / Linux作为**脚本script**添加到 Fleet 中。从仓库结构看这些脚本同时被 Fleet 自身的安全基线与测试用例引用例如 it-and-security/fleets/testing-and-qa.yml、it-and-security/fleets/workstations.yml可参考其中的组织方式导入。进入该设备的Host details主机详情页面。选择Actions Run script并选择卸载脚本执行。该操作背后对应 Fleet REST API 的脚本执行接口POST /api/v1/fleet/scripts/run见 server/api_endpoints/api_endpoints.yml 与 docs/REST API/rest-api.md 的 Run script 一节请求体中通过host_id指定目标主机并以script_id、script_contents或script_name配合fleet_id三者之一指定脚本内容脚本会被加入该主机的活动队列依次执行单次内联脚本内容需小于 10,000 字符长脚本建议先保存再用script_id引用。接口返回202与一个execution_id可通过GET /api/v1/fleet/scripts/results/:execution_id查询退出码exit_code、输出output与运行时长runtime等结果。脚本执行默认超时时间为 5 分钟可在 agent 配置中调整。正因为卸载脚本采用父进程先返回成功、子进程延迟清理的结构远程触发时 Fleet 能在 agent 被移除前及时收到执行成功的回执。卸载后的处理与注意事项卸载完成后设备在 Fleet 中会显示为offline并保持该状态直到你在 Fleet 中删除该主机。如果设备将重新部署直接删除旧记录后重新注册即可。各平台脚本都会把清理日志写入临时目录下的fleet_remove_log.txtmacOS/Linux 为/tmp/fleet_remove_log.txtWindows 为%TEMP%\fleet_remove_log.txt便于排查卸载失败原因。若希望按需管理脚本可使用POST /api/v1/fleet/scripts上传、GET /api/v1/fleet/scripts/:id查询、DELETE /api/v1/fleet/scripts/:id删除等接口见 server/api_endpoints/api_endpoints.yml。卸载脚本会同时清理 Orbit 代理、osqueryd 与 fleet-desktop 的进程与文件无需手动逐项处理但请务必在卸载前确认设备不再需要 Fleet 管理因为 MDM 注册与 enroll secret 等状态一旦移除重新接入需要再次完成注册流程。【免费下载链接】fleetOpen device management项目地址: https://gitcode.com/GitHub_Trending/fl/fleet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。