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

发布时间:2026/9/18 16:32:35

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),仅供参考
延伸阅读

更多相关文章

2026/9/18 16:27:34

PHP汽车俱乐部系统:原生MySQL业务建模与定时提醒实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/18 21:13:03

球面邻域匹配度:量化打车难的时空诊断模型

简介:本资源是一份面向数学建模初学者与竞赛参与者的实战型分析报告,聚焦“互联网”背景下城市出租车资源配置优化这一典型交通管理问题,旨在通过数据建模解决“打车难”这一现实痛点。报告基于2015年成都真实时空数据,构建了以“…

2026/9/18 21:13:03

变压器绕组变形试验详解:从FRA曲线到Python量化诊断

简介:变压器绕组变形试验培训PPT课件是一份面向变电检修、运维及电气试验人员的专业培训资源,针对110kV及以上电力变压器绕组变形检测方法进行了系统梳理。包内共1个PPT,单份课件体积仅707KB,方便直接下载使用。课件共37页&#x…

2026/9/18 21:13:03

RAG系统工程实战:从检索增强到可信可溯的生产级落地

1. 这不是“加个检索”那么简单:RAG早已脱离玩具阶段,进入系统工程深水区你搜“RAG实战”,刷出来的90%内容还在教你怎么用LangChain加载PDF、调个OpenAI API、跑通一个能回答“公司年报里提到多少次‘数字化转型’”的demo。这就像十年前教人…

2026/9/18 21:13:03

中国地面气候日值数据集V3.0处理指南:缺测值与格式陷阱详解

干过中国地面气候日值数据集(V3.0)的人,多少都经历过这种崩溃瞬间:明明从数据网下载了标准化产品,跑出来的气温曲线却直接飙到三千多摄氏度,降水序列里无缘无故出现一条四位数毫米的“极端暴雨”。我最早处理这批数据的时候&#…

2026/9/18 21:08:03

企业数智库建设:四层数据链路、KPI规则与知识图谱落地

简介:面向企业高层管理者、技术负责人与数字化项目骨干的《企业数智库建设指南》PDF文档,聚焦知识驱动的智能交互如何提升运营效率与决策科学性。内容从数智库内核与实现路径切入,梳理信息化提供客观数据、数字化构建实时业务模型、智能化借助…

2026/9/18 14:13:01

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/18 0:01:09

Google Colab 实战:运行模型、数据加载与报错排查

1. 为什么我劝你先搞懂 Colab 的运行模型1.1 Colab 到底是什么,跟本地跑代码差在哪Google Colab 简单说就是一台跑在浏览器里的 Linux 虚拟机,你打开一个 Notebook,背后就连上了一台带 GPU 的远程机器。你在单元格里敲的每一行 Python&#x…

2026/9/18 0:01:09

C语言数据类型与表达式详解

1. C语言数据与数据类型概述在C语言编程中,数据是程序处理的核心对象。理解数据的分类和特性是掌握C语言的基础。C语言中的数据主要分为四大类:常量、变量、表达式和函数。这些数据类型构成了C语言程序的基本元素,每种类型都有其独特的特性和…

2026/9/18 0:01:09

SQL时间字段指定时间段查询:区间语义、索引与时区避坑

上周排查一个线上问题&#xff0c;用户反馈"昨天的订单一条都没查到"&#xff0c;但数据库里明明躺着两千多条。最后定位下来&#xff0c;不是数据丢了&#xff0c;也不是接口挂了&#xff0c;而是那个查询条件把时间段写成了> 2024-05-20 00:00:00 AND < 2024…

2026/9/18 14:13:03

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行&#xff0c;Type-C接口算是典型的“看着简单&#xff0c;做起来全坑”的东西。光引脚就24个&#xff0c;高低速信号、电源、控制线全部塞在一个小小的连接器里&#xff0c;如果PCB布局不做规划&#xff0c;打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/18 14:13:02

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/18 14:13:02

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码