欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

jamf 在客户端 如何 触发智慧型群组 更新 chatgpt 有大用 有大大用

jamf 在客户端 如何 触发智慧型群组 更新

在 Jamf 里,智能群组 (Smart Group) 的成员资格不是即时刷新的,它依赖设备上报的 Inventory(盘点信息)

也就是说:

  • Mac 本地不会主动“更新群组”,它只会上报自己的状态

  • Jamf Pro 后端根据上报的数据,去重新计算智能群组成员


在客户端触发智能群组更新的方法

你需要让这台 Mac 更新 Inventory

sudo jamf recon


作用:

  • 采集设备的硬件、软件、扩展属性等信息

  • 上传到 Jamf Pro

  • 服务器端会基于最新数据重新计算智能群组


相关命令

  • 手动上报 Inventory:

    sudo jamf recon


  • 手动触发策略检查(包含部分 Inventory 更新):

    sudo jamf policy


  • 同时更新 Inventory 并执行策略:

    sudo jamf policy && sudo jamf recon



验证是否生效

  1. 客户端:

    tail -f /var/log/jamf.log


    可以看到 Submitting inventory to JSS 之类的日志

  2. Jamf Pro 控制台:
    打开该设备 → History → Management History,能看到最新的盘点时间

  3. Smart Group:
    进入群组 → 点 View,看看该设备是否被包含


要不要我给你写一个小脚本,Mac 上一键执行 recon 并自动检测 本机是否已进入目标 Smart Group


我给你写一个 一键脚本,在 Mac 客户端执行后,可以:

  1. 执行 jamf recon,强制上传 Inventory

  2. 等待 Jamf Pro 服务器刷新

  3. 通过 API 查询该设备是否在指定的 Smart Group


⚠️ 前置条件

要用 Jamf API,需要:

  • Jamf Pro 服务器地址(例如 https://yourcompany.jamfcloud.com

  • 一个 API 帐号(有读取 Smart Group 的权限,至少需要 Read 权限)

  • API 帐号用户名、密码

  • Smart Group 名称(例如 "Compliance-Check"


脚本示例(bash)

#!/bin/bash # check_smartgroup.sh # 在 Mac 客户端触发 Inventory 更新,并检测是否在指定 Smart Group # ==== 配置区 ==== JAMF_URL="https://yourcompany.jamfcloud.com"   # Jamf Pro 地址 API_USER="api_user"                            # API 用户 API_PASS="api_password"                        # API 密码 SMARTGROUP_NAME="Compliance-Check"             # 要检测的 Smart Group 名称 # ================= JAMF_LOG="/var/log/jamf.log" SERIAL=$(system_profiler SPHardwareDataType | awk '/Serial Number/{print $4}') echo "========== Jamf Smart Group 检测 ==========" echo "设备序列号: $SERIAL" echo "目标 Smart Group: $SMARTGROUP_NAME" echo # 1. 触发 Inventory 更新 echo ">>> 正在执行 jamf recon..." sudo jamf recon echo # 2. 等待 10 秒,给服务器计算 Smart Group 的时间 echo ">>> 等待服务器刷新 Smart Group..." sleep 10 # 3. 通过 API 获取 Smart Group 成员 echo ">>> 检查 Smart Group 成员..." GROUP_API="$JAMF_URL/JSSResource/computergroups/name/$SMARTGROUP_NAME" RESULT=$(curl -sku "$API_USER:$API_PASS" -H "Accept: application/xml" "$GROUP_API" 2>/dev/null | grep -o "$SERIAL") if [ -n "$RESULT" ]; then    echo "✅ 该设备 ($SERIAL) 已在 Smart Group [$SMARTGROUP_NAME] 中。" else    echo "❌ 该设备 ($SERIAL) 不在 Smart Group [$SMARTGROUP_NAME] 中。" fi echo echo "检查完成 ✅"



使用方法

  1. 保存为 check_smartgroup.sh

  2. 修改配置区:填好 JAMF_URLAPI_USERAPI_PASSSMARTGROUP_NAME

  3. 给权限:

    chmod +x check_smartgroup.sh


  4. 执行:

    ./check_smartgroup.sh



👉 这样你就能在客户端直接确认:

  • jamf recon 有没有跑

  • 本机是否已经进入指定 Smart Group

要不要我帮你改成 支持多个 Smart Group 批量检测 的版本?



普通分类: