Fleet 主机锁定与擦除Lock Wipe操作指南macOS / Windows / Linux / iOS / iPadOS / Android 远程管控实战【免费下载链接】fleetOpen device management项目地址: https://gitcode.com/GitHub_Trending/fl/fleetFleet 提供跨平台的主机远程锁定Lock与数据擦除Wipe能力覆盖 macOS、Windows、Linux、iOS、iPadOS 与 Android 六类平台。当设备可能丢失、被盗或需要为重新分配给其他终端用户而做准备时管理员可以直接在 Fleet 界面或通过fleetctl命令行发起操作。本文以 Fleet Premium 功能为主体逐一拆解各平台的锁定、解锁、擦除与清除密码流程并结合仓库中真实的嵌入式脚本Linux/Windows与回退擦除脚本讲清底层实现原理、适用前提与安全注意事项。本文对应 Fleet 官方指南 articles/lock-wipe-hosts.md并引用仓库源码进行深度佐证。功能标注Available in Fleet Premium即仅在 Fleet Premium 版本可用。平台能力总览Fleet 的锁定与擦除覆盖六个平台但执行机制截然不同平台LockWipeUnlock底层机制macOS✅✅PIN 手动输入MDM 命令Wipe 使用 EACSWindows✅✅✅无需 PINMDM 命令默认doWipeProtected另有脚本回退Linux✅✅✅无需 PIN嵌入式 Shell 脚本无标准 Linux MDM 协议iOS / iPadOS✅仅公司拥有的受监管设备✅✅无需 PINMDM 命令Android✅BYOD 与公司所有均可—用户自行输入 PINMDM 命令其中 macOS、Windows、iOS、iPadOS 的擦除通过 MDM 命令执行Linux 的擦除是基于脚本的见后文 Linux 擦除行为。对于 iPhone 和 iPad将擦除操作限制为仅公司自有设备的功能即将推出。锁定主机Lock a host界面操作步骤点击顶部主导航栏中的Hosts标签进入主机列表页通过右上角搜索框按名称、主机名、UUID、序列号或私有 IP 地址定位目标设备。点击主机进入Host details页面。点击Actions下拉菜单选择Lock。在确认对话框中确认锁定。此时主机将被标记为Lock pending徽章一旦主机确认收到锁定命令徽章更新为Locked。平台差异与注意事项WindowsMicrosoft Entra 加入对于 Entra 加入的 Windows 主机最佳实践是先禁用终端用户在 Entra 中的账户再在 Fleet 中锁定主机。这一点适用于所有通过自动注册加入 Fleet、且为 Entra 加入的 Windows 主机。iOS / iPadOSLock 操作仅对公司自有受监管 / supervised主机可用。作为锁定的一部分Fleet 会收集设备的位置数据且在位置数据收集完成前Fleet 不会认为设备已完全锁定。Apple 主机如果在锁定后 1 分钟内立即解锁主机在下一次 MDM 签入check-in之前仍会显示锁定徽章。Linux 主机系统可能在大约 10 秒后自动重启以完成锁定过程。Android锁定操作会强制启用主机锁屏要求用户输入密码或 PIN。该操作在公司自有和 BYOD Android 主机上均可用在完全托管fully-managed设备上锁定整个设备在 BYOD 设备上取决于终端用户如何配置设备锁——如果用户为工作资料单独设置了 PIN工作应用使用独立 PIN则只锁定工作资料。Android 锁定期间会显示Lock pending徽章确认后恢复正常不会显示Locked徽章。锁定背后的脚本实现Windows 与 Linux 的锁定/解锁动作会附带运行脚本仓库中对应的脚本位于 ee/server/service/embedded_scripts/Linux 锁定linux_lock.sh禁用常见显示管理器GDM、LightDM的自动登录对/etc/passwd中 UID 1000~60000 的非 root 用户执行pkill -KILL登出并passwd -l锁定账户写入/etc/nologin与/run/nologinpam_nologin会在登录时显示Locked by administrator提示针对 Ubuntu GDM 的场景会切换至multi-user.target文本模式以规避黑屏问题并通过systemd-run --on-active10s /sbin/reboot在 10 秒后重启完成锁定。Linux 解锁linux_unlock.sh恢复所有非 root 用户密码对无密码账户执行passwd -ud特殊处理删除 nologin 文件与 GDM 锁定横幅、fleet-lock-message.service解除systemd-user-sessions屏蔽恢复图形目标并调度 10 秒后重启以修复 UI 问题。Windows 锁定windows_lock.ps1登出所有本地用户跳过已断开的会话、禁用本地用户账户、写入注册表AllowSignInOptions3与CachedLogonsCount0以阻止额外 Microsoft 账户登录并在 15 秒后执行shutdown /s /f /t 15。获取被锁定 iOS/iPadOS 主机的位置进入Hosts页面找到已锁定设备进入Host details页面。在Vitals下点击Show location再点击Open in Google Maps新标签页将打开设备在 Google Maps 中的位置。设备锁定期间可通过点击Refetch重新拉取位置数据。也可以通过自定义命令手动下发 Apple 的DeviceLocation命令参见 mdm-commands 指南。注意该命令仅在设备处于锁定且 Lost Mode 状态下才生效。将命令响应中的纬度和经度拼入以下 URL 即可在 Google Maps 中查看https://google.com/maps?q{latitude},{longitude}响应示例keyLatitude/key real37.33385013244351/real keyLongitude/key real-122.01079213269968/real对应 URLhttps://google.com/maps?q37.33385013244351,-122.01079213269968擦除主机Wipe a host界面操作步骤进入Hosts页面定位目标设备点击进入Host Overview页面。点击Actions下拉菜单选择Wipe。在对话框中确认擦除。macOS、Windows、iOS、iPadOS主机标记Wipe pending徽章确认收到命令后更新为Wiped。Linux不显示Wipe pending或Wiped徽章具体见下文 Linux 擦除行为。擦除的副作用与最佳实践取消待办活动擦除主机会静默取消其所有即将进行的活动且不会在主机活动历史中新增被取消的活动记录。重装前删除主机擦除并重装操作系统后先从 Fleet 中删除该主机再重新注册。如果未删除即重新注册Fleet 将不会托管新的磁盘加密密钥不生成新的 escrow 密钥。等待擦除完成再删除主机删除主机会移除 Fleet 对已发送命令的记录。若在擦除仍处于 pending 状态时删除Fleet 将无法确认擦除是否完成。赠送 Apple 主机如果是公司自有的 Apple 主机或出于其他原因希望阻止其自动重新注册到 Fleet应先在 Apple BusinessAB中释放该主机再在 Fleet 中删除。仅删除 Fleet 不会改变 AB 中的分配关系仍分配给 Fleet 的主机会以Pending状态重新出现。Windows 擦除的底层机制与回退方案对于 Windows 主机Fleet 默认使用 doWipeProtected 命令。根据微软文档该命令在部分设备配置下可能使主机无法启动unable to boot。也可通过 REST API 使用doWipe命令参见 REST API 文档parameters57。如果擦除命令失败MDM 命令结果中协议返回 500可以通过 Fleet 运行回退擦除脚本 docs/solutions/windows/scripts/wipe-windows-device.ps1。该脚本会校验并修复 WinREWindows 恢复环境擦除失败最常见的根因通过reagentc /info检查状态若未启用则reagentc /enable重新启用必要时从SystemDrive\Recovery\WindowsRE或SystemDrive\Windows\System32\Recovery定位winre.wim并reagentc /setreimage注册检查组件存储WinSxS健康度dism /Online /Cleanup-Image /ScanHealth检测损坏必要时RestoreHealth修复——重置过程由本地组件存储或 Cloud Download 重建系统无需 USB 介质挂起 BitLocker对保护状态为 On 的卷执行Suspend-BitLocker -RebootCount 1防止重置过程中弹出恢复密钥提示若系统盘无法挂起 BitLocker 则终止脚本通过 WMI-to-CSP 桥本地触发擦除在root\cimv2\mdm\dmmap命名空间调用MDM_RemoteWipe实例优先尝试doWipeProtectedMethodBuild 1703/15063防篡改中断后自动重试失败则回退doWipeMethod——该方式绕过 MDM 命令队列规避服务端数据库超时、认证失败等处理问题。脚本全程在后台记录日志%ProgramData%\fleet-wipe-device-*.log输出审计痕迹。脚本头部注释明确指出所有完全无人值守的 Windows 擦除最终都调用同一个 RemoteWipe CSP不存在其他可编程触发重置此电脑的 Windows API该脚本的价值在于先修复根因、再绕过 MDM 命令队列。注意 WMI 桥要求设备具有或曾具有MDM 注册否则MDM_RemoteWipe类不会注册桥调用将失败。macOS 擦除macOS 主机使用 Erase All Content and SettingsEACS命令遵循 Apple 文档记录的默认回退行为devices always obliterate且 EACS preflight 有默认回退。Linux 擦除行为最佳实践在生产环境擦除 Linux 主机前先在与生产主机相同发行版与版本、相同磁盘布局、相同文件系统配置包括任何 btrfs、LVM 或 LUKS 设置及相同网络驱动器使用方式的测试主机上执行擦除。不同发行版——甚至同一发行版的不同版本——行为可能不同。在批量擦除生产环境前务必确认结果符合预期。Linux 擦除不使用 MDM 命令因为不存在标准的 Linux MDM 协议。Fleet 改为运行嵌入式脚本 ee/server/service/embedded_scripts/linux_wipe.sh。该脚本执行以下步骤登出所有非 root 用户并锁定其密码通过who枚举当前登录用户pkill -KILL结束进程、passwd -l锁定账户同时写入/etc/nologin与/run/nologinblock_logins用于拦截 SSSD/LDAP/Kerberos/AD 等目录用户避免擦除中途重新登录。检测并卸载网络文件系统通过/proc/mounts识别 NFS、CIFS/SMB、SSHFSnfs|nfs4|cifs|smb|smbfs|fuse\.sshfs|afs|ncpfs|9p等挂载点并先行卸载避免误删远端存储数据若/proc/mounts不存在脚本直接终止exit 1而非冒险删除。注意脚本无法保证检测出所有网络后端路径——解析到已检测挂载点之外的符号链接或异常挂载配置可能被漏掉。此外脚本对/、/usr、/bin等关键挂载点明确跳过不卸载。删除 btrfs 快照优先使用snapper处理只读与importantyes快照并同步元数据回退到btrfs subvolume delete。此步骤在文件删除之前执行因为只读快照会抵抗rm -rf。回退逻辑会挂载 btrfs 顶层subvolid5以获取完整子卷可见性并跳过网络挂载的 btrfs 设备。若snapper未安装且回退无法访问全部子卷快照删除可能不完整。删除非必要用户数据/home/*、/tmp、/var/tmp、/var/log、用户缓存、回收站目录/home/*/.local/share/Trash以及/.snapshots。删除系统目录/bin、/sbin、/usr、/lib、/opt、/etc、/var、/srv。通过内核 sysrq 接口停机脚本先复制/usr/bin/sync到/sync_bin、开启/proc/sys/kernel/sysrqsync后向/proc/sysrq-trigger写入o立即停机。脚本通过--one-file-system回退find -xdev不跨文件系统边界避免递归进入已挂载文件系统。这是安全措施但也意味着挂载在非标准路径的独立文件系统上的数据不会被擦除。删除过程由systemd-run --unitfleet-wipe调度为独立单元执行避免受 orbit 服务的 KillMode/CPUQuota 影响失败时回退nohup后台执行脚本开头sleep 10给 fleetd 足够时间登记脚本完成状态且使用block_logins先阻断登录再进入删除阶段避免锁定登录但未完成擦除的中间态。局限性这是尽力而为、基于脚本的擦除并非硬件级安全擦除不保证所有数据均被清除。未启用全盘加密的 SSD 上数据可能被取证工具恢复。独立分区或挂载点如专门的/data分区不在上述路径覆盖范围内不会被擦除。使用非标准磁盘布局的主机脚本可能在这些卷上遗留数据。网络挂载路径会被检测并跳过以保护远端存储但检测依赖/proc/mounts的准确性与完整性。擦除前务必断开所有网络驱动器并确认擦除时主机上不存在可访问的网络后端存储。如有疑问在发起擦除前先在主机上执行mount查看挂载情况。脚本完成后主机将停机halt不会重启到可用状态需物理接触设备并重装操作系统才能恢复服务。解锁主机Unlock a host界面操作步骤进入Hosts页面定位目标设备进入Host Overview页面。点击Actions菜单选择Unlock。macOS弹出包含 PIN 的对话框需将该 PIN 输入到设备中完成解锁。Windows、Linux、iOS、iPadOS解锁命令进入队列主机收到命令后即解锁无需 PIN。点击Unlock后Windows、Linux、iOS、iPadOS 主机会显示Unlock pending徽章主机解锁并与 Fleet 重新签入后徽章移除。macOS 主机没有Unlock pending徽章——因为它们无法远程解锁PIN 必须输入设备。Linux 主机系统会在约 10 秒后自动重启以完成解锁过程并确保用户界面正常恢复。如果主机与 Fleet 断开连接解锁过程可能再次运行导致主机再次重启。如何解锁离线的 iOS/iPadOS 主机如果 iPhone/iPad 在锁定状态下关机或重启会断开 Wi-Fi 且无法远程解锁。此时将 iPhone/iPad 通过 USB 连接到 Mac 并共享网络待设备联网后在 Fleet 中进入Host details页面选择Actions Unlock。清除 iOS、iPadOS 或 Android 主机密码当终端用户忘记密码时可远程清除 iOS、iPadOS 或 Android 设备上的密码。适用范围iOS/iPadOS清除密码仅对公司自有或手动注册的主机可用不支持个人 MDM 注册状态的主机也不支持处于 Lost Mode 或待擦除pending wipe状态的主机。AndroidBYOD 与公司自有主机均可使用。BYOD 设备只移除工作资料密码用户个人设备解锁不受影响公司自有主机则移除设备密码。界面操作步骤进入Hosts页面定位 iOS/iPadOS 设备进入Host details页面。点击Actions下拉菜单选择Clear passcode。在确认对话框中点击Clear passcode确认。清除密码活动会记录在主机的活动流activity feed中。通过 REST API 与 fleetctl 清除密码也可以通过 REST API 清除密码POST /api/v1/fleet/hosts/:id/clear_passcode或使用fleetctlfleetctl mdm clear-passcode --host $HOST_IDENTIFIER在源码层面clear-passcode命令定义于 cmd/fleetctl/fleetctl/mdm.go它向主机发起 MDM 清除密码请求且与 lock/wipe 不同它不展示 clear-passcode 专属状态完成仅体现在活动流中。使用 fleetctl 锁定与擦除Fleet 的命令行工具fleetctl同样支持锁定、解锁与擦除fleetctl mdm lock --host $HOST_IDENTIFIERfleetctl mdm unlock --host $HOST_IDENTIFIERfleetctl mdm wipe --host $HOST_IDENTIFIER$HOST_IDENTIFIER可以是任一主机标识符主机名、UUID 或序列号。为任何命令添加--help标志可查看详细用法。macOSmdm unlock命令会返回六位 PIN必须将其输入设备才能完成解锁。Linuxfleetctl mdm wipe触发与界面操作相同的脚本擦除。在生产环境使用前务必阅读上文 Linux 擦除行为 一节。从 cmd/fleetctl/fleetctl/mdm.go 源码结构看lock、unlock、wipe三个子命令共用hostMdmActionSetup辅助流程解析主机标识符 → 建立客户端 → 调用 MDM 动作 API其中lock会输出后续跟踪锁定状态的命令提示并提醒Android 主机没有 Fleet 侧的解锁操作终端用户需通过设备 PIN/密码自行解锁unlock对 macOS 返回六位 PIN 并在终端打印Use this 6 digit PIN to unlock the hostwipe提示主机上线后将被擦除。仓库中的测试 ee/server/service/embedded_scripts_test.go 还验证了脚本的关键约束例如linux_wipe.sh必须将脚本暂存到 fleetd 运行目录之外/run/fleet_wipe.sh、必须调用block_logins、必须使用systemd-run --unitfleet-wipe且不得使用--collect并需保留nohup回退分支——保证在旧版 systemd 或 orbit 重启场景下主机不会停留在已锁定登录但从未擦除的危险中间态。总结Fleet 的锁定与擦除能力覆盖六个平台并提供 UI、fleetctl与 REST API 三种操作入口。macOS / Windows / iOS / iPadOS 依赖 MDM 命令Windows 另有脚本回退方案修复 WinRE 与 BitLocker 根因Linux 则完全基于嵌入式 Shell 脚本实现尽力而为的擦除。使用要点归纳如下擦除前的关键动作重装前先删除主机再注册否则磁盘加密密钥不会重新托管等待擦除完成再删除主机避免丢失命令确认记录赠送 Apple 主机前先释放 AB 分配。Linux 擦除定位为最佳努力先在小规模、同配置测试主机上验证擦除前断开所有网络驱动器接受独立分区数据可能遗留与无硬件级安全擦除的事实。Entra 加入的 Windows 主机锁定前先禁用终端用户的 Entra 账户是最佳实践。iOS/iPadOS 的 Lock仅限公司自有受监管设备且锁定会伴随位置数据采集。Android锁定可用但无 Fleet 侧解锁用户输入 PIN清除密码仅影响工作资料BYOD。在实际运维中建议先通过fleetctl mdm lock --help等命令确认当前 Fleet 版本支持的参数并在非生产主机上完整演练各平台流程后再投入生产环境。【免费下载链接】fleetOpen device management项目地址: https://gitcode.com/GitHub_Trending/fl/fleet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考