ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Fleet 4.91.0 发布解读:Windows 本地管理员账户、Autopilot 默认 Fleet 与脚本内置变量

Fleet 4.91.0 发布解读:Windows 本地管理员账户、Autopilot 默认 Fleet 与脚本内置变量 Fleet 4.91.0 发布解读Windows 本地管理员账户、Autopilot 默认 Fleet 与脚本内置变量【免费下载链接】fleetOpen device management项目地址: https://gitcode.com/GitHub_Trending/fl/fleet本篇文章围绕 Fleet 4.91.0 的版本发布说明展开聚焦该版本在 Windows 设备管理上的三项关键能力——受管本地管理员账户、Autopilot 入网主机的默认 Fleet 分配以及 Windows Store 应用软件清单的清晰化同时覆盖 webhook、补丁策略、脚本变量、DDM、Apple Business Manager 与 OS 更新等方向的更新。读完本文你将掌握 4.91.0 中每项新特性的配置入口UI 与 GitOps 双通道、底层实现要点与适用前提如 fleetd 版本要求、Fleet Premium 授权并能结合仓库源码定位对应实现。Highlights 总览Fleet 4.91.0 的发布说明将本次更新归纳为以下八个亮点Windows创建受管本地管理员账户break-glass 账户Windows Autopilot 入网主机的默认 Fleet面向主机活动的 Webhook补丁策略应用关闭时再安装脚本中的内置变量从 Apple BusinessABM释放主机Apple 硬件营销名称Marketing Name展示OS 更新在截止日期后自动更新到最新版本其中前三条直接补齐了 Windows 设备管理中的缺口也是本版本对外宣传的主打能力。Windows创建受管本地管理员账户可用性Fleet PremiumIT 管理员现在可以在 Windows 主机上创建受管本地管理员账户用于故障排查场景下的应急登录break-glass account。开启方式有两种UI进入Controls Setup experience Users为 Windows 打开Create hidden admin选项GitOps在配置中设置windows_settings.enable_managed_local_account: true。开启后Fleet 会在每台启用 MDM 的 Windows 主机上创建该账户将其从登录屏幕隐藏并为每台主机生成一个唯一的、被托管escrow保存的密码。任意角色的 Fleet 用户都可以在Host details Actions Show managed account中取回该密码供 IT 在故障排查时使用。从仓库源码可以看到该配置项的定义位置server/fleet/app.go#L2516-L2518 中WindowsSettings.EnableManagedLocalAccount的注释明确写道该选项开启由 fleetd 在 Windows 主机上创建的隐藏受管本地管理员账户并且发布说明要求fleetd 1.60.0 或更高版本才能生效。需要区分 macOS 与 Windows 的行为差异macOS受管账户仅在入网时创建且只针对通过 Apple Business Manager 自动入网ADE的主机Windows对每一台启用 MDM 的主机都会创建包括之前已经入网的主机无需重新入网。对应的 GitHub issue 为 #43488。Windows Autopilot 入网主机的默认 FleetIT 管理员现在可以为通过 Windows Autopilot以及 Entra join 等用户驱动的 Windows MDM 入网流程入网的新主机指定一个默认 Fleet。这些主机将自动落入指定 Fleet而不再停留在 Unassigned未分配状态等待人工转移。关键约束与细节只有global admin全局管理员可以设置默认 Fleet该设置在 GitOps 中对应mdm.windows_automatic_enrollment.default_fleet默认 Fleet 会在Autopilot Enrollment Status PageESP运行之前完成分配因此该 Fleet 配置的软件、脚本和配置描述文件能够在开箱OOBE设置阶段就生效该能力属于 Fleet Premium 功能。源码层面server/fleet/app.go#L2536-L2543 定义了WindowsAutomaticEnrollment结构体DefaultFleet字段即默认 Fleet 名称空值表示不设置默认新主机保持 Unassigned。值得留意的是源码注释明确说明该字段仅是传输/展示形态真正的数据源是数据库中的 fleet 记录Datastore.GetWindowsEnrollmentDefaultFleet在 Fleet 重命名或删除后app_config_json中的副本可能过期因此业务逻辑不应直接读取该字段。对应的 GitHub issue 为 #41787。面向主机活动的 Webhook可用性Fleet PremiumIT 管理员和安全工程师现在可以为每一台特定主机关联的活动发送 webhook 通知例如脚本运行、软件安装、配置描述文件安装等活动都会触发。配置方式UI从对应 Fleet 的Hosts页面配置 webhook URLGitOps使用webhook_settings.host_activities_webhook配置。该能力可用于向 SIEM 投递事件流或触发第三方自动化工具如 Tines中的自动化流程。源码中server/fleet/app.go#L1517-L1531 定义了WebhookSettings结构体其中ActivitiesWebhookSettings包含enable_activities_webhook与destination_url两个字段说明该 webhook 与既有的 host status、failing policies、vulnerabilities webhook 平级遵循同样的启用开关 目标 URL 模式。发布说明中描述为每 Fleet 一个 webhook即按 fleet 维度配置。对应的 GitHub issue 为 #40493。补丁策略仅在应用关闭时安装可用性Fleet Premium针对 Fleet 维护应用Fleet-maintained apps的补丁策略现在可以等待应用完全退出后再安装更新避免在终端用户工作中途强制更新打断任务。使用方式在添加或编辑 Fleet-maintained app 时选择Patch only when app is closed若应用正在运行Fleet 会跳过本次安装日志记录为 Install skipped直到应用退出后的下一次自动化运行才真正执行安装。这一能力同样适用于 macOS 与 Windows 平台上的 Fleet 维护应用补丁管理帮助 IT 在及时打补丁与不打扰用户之间取得平衡。对应的 GitHub issue 为 #39962。脚本中的内置变量可用性Fleet PremiumFleet 的内置变量built-in variables例如$FLEET_VAR_HOST_END_USER_IDP_USERNAME现在可以在macOS、Windows、Linux主机上的 shell、PowerShell 与 Python 脚本内容中使用而不再仅限于配置描述文件。典型用法编写一份脚本运行时自动插入主机的序列号、IdP 用户名等主机特定值避免为每台主机硬编码不同取值覆盖的脚本类型包括软件安装、安装后处理post-install以及卸载脚本变量在执行时按主机解析per-host resolution。安全细节Fleet 会在脚本上传时校验变量引用脚本中若引用了不存在的变量会在真正运行之前被拒绝避免脚本运行时才发现拼写错误。该能力要求 Fleet Premium 许可证。变更说明中还提到$FLEET_HOST_VITAL_id自定义主机健康指标变量现已支持在Android 配置描述文件与托管应用配置中使用含按主机值展开与值变更后自动重发也可用于主机名称模板含引用 vital ID 的校验与值变更后的自动重交付。对应的 GitHub issue 为 #46837。从 Apple BusinessABM释放主机可用性Fleet PremiumIT 管理员现在可以直接从 Fleet UI 或 API 将主机从 Apple BusinessABM中释放无需登录 ABM 门户UI在符合条件的宿主详情页使用Release from Apple Business操作API可以一次释放多台主机权限要求只有具备admin 角色的 Fleet 用户才能执行释放操作。相关的辅助能力在本版本也有更新ABM token API 响应新增了token_invalid字段GET /hosts/:id/dep_assignment新增dep_device_error人类可读消息用于帮助定位 ABM 设备查询或 token 异常的原因例如被拒绝或签名无效的 token、未签署的条款、服务端错误、设备不再被分配至 Fleet 等。此外mdm_enrolled活动针对 macOS/iOS/iPadOS 入网新增host_id与host_serial字段且该活动会出现在主机的活动时间线上。对应的 GitHub issue 为 #47633。Apple 硬件营销名称展示Fleet 现在会在Hosts、Host details以及Fleet Desktop My device页面展示 Apple 硬件的营销名称Marketing Name例如 MacBook Pro 16-inch, M3, 2023而不再只显示原始硬件型号标识符例如 Mac15,9。这样 IT 管理员无需自行查询型号标识符即可分辨主机实际硬件。变更说明补充了覆盖范围macOS、iOS、iPadOS 设备的营销名称都会展示Hardware model 字段现在显示人类可读名称如 MacBook Pro (16-inch, 2021)而非原始标识符如 MacBookPro18,1。对应的 GitHub issue 为 #46818。OS 更新截止日期后自动更新到最新版本可用性Fleet Premium管理 macOS、iOS、iPadOS OS 更新的管理员现在可以将强制执行目标设置为始终跟踪最新 OS 版本并以版本发布后的天数作为截止日期而不是固定某个具体版本和日历日期。随着 Apple 发布新 OS 版本Fleet 会自动更新强制执行的目标管理员无需在每次 Apple 发布更新时手动调整最低版本。GitOps 配置方式为macos_updates: minimum_version: latest deadline_days: 14源码中对应实现非常清晰。server/fleet/app.go#L694-L715 定义了AppleOSUpdateSettingsminimum_version取哨兵值latest常量AppleOSUpdateLatestVersion见 server/fleet/app.go#L715时目标版本按每台主机的硬件解析为 Apple 提供的最新版本deadline_days表示自该版本发布之日起多少天后强制执行相对发布时间而非固定日历日期。校验逻辑Validate()server/fleet/app.go#L734-L783给出了严格的取值规则可直接指导配置minimum_version: latest时不能同时设置deadline固定日期必须使用deadline_daysdeadline_days必须大于 0不使用latest时deadline_days无效必须改用deadline格式YYYY-MM-DDminimum_version只接受版本号格式如13.0.1不接受 Ventura 13 之类的名称Configured()方法server/fleet/app.go#L724-L732显示latest模式下以deadline_days 0作为已配置判定普通模式下要求deadline与minimum_version同时非空。对应的 GitHub issue 为 #39085。其他值得关注的变更IT 管理员相关Adobe 插件纳入软件清单Fleet 现在可以在 macOS 和 Windows 主机上检测 Adobe Creative Cloud 插件CEP 与 UXP 扩展并在 Software 页面与主机详情中列出软件类型为 Plugin (Adobe)包含版本与主机数。注意Adobe 插件被排除在漏洞扫描之外——目前没有漏洞数据源将 CEP/UXP 扩展映射到 CVEAdobe 的 CVE 是针对宿主应用Photoshop、Acrobat 等归档的而宿主应用本身已在 Fleet 的扫描范围内。29 项新的 iOS/iPadOS 设备健康指标包括电池电量、辅助功能设置、蜂窝技术、云备份状态、组织信息、MDM 选项、设备证明attestation、蜂窝服务订阅等通过既有的DeviceInformationMDM refetch 采集在主机 API 响应与主机详情页新增的 View all 指标弹窗中展示。个人BYOD入网不接收这些新字段以避免暴露组织不拥有的设备信息。GCS 预签名 URL新增s3_software_installers_signed_url配置项用于通过 GCS 预签名 URL 提供软件安装包、企业内部分发in-house应用与引导包下载作为 CloudFront URL 签名在 GCS 侧的对应实现客户端直接从对象存储下载而不经 Fleet 服务器转发。按 Fleet 开关软件清单通过PATCH /api/v1/fleet/fleets/{id}携带{features: {enable_software_inventory: bool}}可逐 Fleet 启停软件清单该键遵循 PATCH 合并语义省略时保持原值不变。fleetctl package新增--bypass-end-user-auth生成 fleetd 安装器时跳过 Linux/Windows 主机入网过程中的终端用户认证提示例如终端用户已通过另一个 MDM 完成认证时要求 fleetd v1.60.0。标签平台新增linux选项可面向任何 Linux 发行版的主机。主机表新增可排序的 Added to Fleet 列展示每台主机最近一次入网时间。安全工程师相关Orbit 入网的终端用户认证改为服务端策略驱动mdm.allow_orbit_end_user_auth_bypass服务端设置默认启用控制未完成终端用户认证的主机是否可入网到要求认证的 Fleet设为false可对所有 Orbit 入网严格强制终端用户认证。新增user_mfa_requested活动当 MFA 账户提交有效凭据且验证邮件已发送时记录。新增created_setup_experience_script/deleted_setup_experience_script活动通过 API 或 GitOps 添加、替换、删除设置体验脚本时写入审计日志。macOS CIS 基准策略更新更新至最新 CIS 版本macOS 14 Sonoma v3.1.0、macOS 15 Sequoia v2.1.0、macOS 26 Tahoe v1.1.0。值得注意的 Bug 修复修复了 Windows GitFleet 维护应用补丁策略恒为 Pass 的问题生成查询匹配programs.name LIKE Git %而 Git for Windows 在注册表中注册的名称恰为Git导致过时版本永远被判为通过更新自动化从不触发。修复 macOS Steam up to date 补丁策略失败Steam.app 不带CFBundleShortVersionString生成的策略改为比较CFBundleVersion与软件清单中报告的版本一致。修复 Apple 应用安装悬死问题设备确认但未完成验证的 App Store/企业内部分发应用安装24 小时后判定失败并释放主机的活动队列队列中等待的脚本、软件安装、卸载得以继续执行等待时长可用FLEET_SERVER_VPP_INSTALL_REAP_TIMEOUT配置。修复 Omarchy 主机不再被识别为 Linux 的问题Omarchy 4 自带/etc/os-release且上报platformomarchy主机健康指标与软件清单恢复填充磁盘加密与密钥托管恢复可用作用于linux的策略与标签重新生效。修复团队级 BitLocker PIN 强制未下发当服务端未配置 Apple MDM 时My device 页面出现 Create PIN 横幅但启用 PIN 设置的查询与 MDM 命令从未发送现已修复。修复 .sh/.py 脚本包 CRLF 换行问题Windows 风格CRLF行尾的脚本在 Linux 主机上安装报 No such file or directory上传时统一规范为 Unix 风格换行后存储。修复软件安装器一次性下载 token 的竞态将 token 消费改为原子操作并发请求下 token 不再被重复兑换。修复 Helm chart 空环境变量冲突environments中的空/未设置条目如默认的FLEET_SERVER_PRIVATE_KEY: 不再渲染为空字符串 env var避免与envsFrom提供的同名 key 冲突导致 server-side apply 报 duplicate entries for key。修复密码重置 token 大小写变体被接受的问题token 现在按大小写敏感匹配。修复 SSO-only 邀请可用密码接受的问题认证模式现在完全由邀请决定防止绕过 SSO 强制创建本地密码认证账户。更新 Go 至 1.26.7并移除了一个不支持 Apple M 芯片的依赖。升级与前置条件升级到 Fleet 4.91.0 前需要确认以下几点使用 Windows 受管本地管理员账户与--bypass-end-user-auth功能需要fleetd 1.60.0 或更高版本默认 Fleet、host activities webhook、Patch when closed、脚本内置变量、OS 更新 latest 模式、从 ABM 释放主机等均为Fleet Premium能力Windows 默认 Fleet 分配在 Autopilot ESP 运行前生效这意味着该 Fleet 的软件与策略会在 OOBE 阶段直接应用配置前请确认目标 Fleet 内的策略适用于全新设备。完整变更记录可参见仓库根目录的 CHANGELOG.md各版本发布说明按版本号归档在 articles/ 目录下例如本版本的 fleet-4.91.0.md升级步骤可参考 Fleet 官方文档中的 upgrade guide 页面。【免费下载链接】fleetOpen device management项目地址: https://gitcode.com/GitHub_Trending/fl/fleet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表