Jamf Pro 如何判断 macOS/iOS 设备是否已脱离管控

Apple 设备管理的第一步是将设备接入到 Jamf Pro,再由 Jamf Pro 去下发管控的任务,例如执行应用安装、系统更新、远程锁定、远程擦除等。但是所有这些任务都是基于设备处于被管控的状态,一旦出现任务下发失败或任务一直处于等待中的情况,那么客户端可以已经脱离了管控,当然也不排除客户端处于离线状态。以下是常见的异常现象:

  • 通过 Jamf Pro 下发远程命令不生效。
  • 通过 Jamf Pro 或 Self Service 去部署来自 App Store 的应用不成功。
  • 打开 Self Service 报错或在 Self Service 内执行的软件包安装任务失败。
  • 配置描述文件(Configuration Profile)新建或修改后,客户端上没有生效。
  • 安装软件、执行脚本、更新 Inventory 的 Policy 任务没有在客户端上被执行。

那么,我们遇到此类情况如何去对客户端的管控状态做出判断呢?这是比较推荐的判断流程:

 

第一步、确认此时客户端是正常联网的,并且可以与 Jamf Pro 服务器和 Apple 消息推送服务(APNs)正常通信。

1、macOS 客户端可以打开 jamf pro 服务器的网址或其他网站,并执行命令以判断与APNs通信是否正常。

nc -vz api.push.apple.com 443

nc -vz api.push.apple.com 2197

2、iOS 客户端可以打开 jamf pro 服务器的网址或其他网站,确认联网正常。

3、可尝试重启 macOS 或 iOS 客户端。

 

第二步、在 Jamf Pro 中确认设备的在线状态。

1、macOS 客户端可以查询 last check-in、last Inventory update、last enrollment、MDM Profile Expiration Date 时间,确认是否有异常。

last check-in 频率比较高,设备在线状态下默认是15-20分钟左右一次,此频率可以在 Jamf Pro Settings > Computer Management > Check-In 设置中调整。

last Inventory update 默认是一周一次,频率可以前往 Computers > Policies > Inventory Update 调整。

MDM Profile Expiration Date 默认是 Last Enrollment 时间加2年,即 MDM 客户端证书有效期。如果此证书没能及时更新导致过期,那么客户端将无法与 APNs 通信,所有基于 APNs 的 远程命令、Profile 下发、App Store App 推送等都将无法成功执行。

2、iOS 客户端可以查看 last Inventory update、last enrollment、MDM Profile Expiration Date 时间。

last Inventory update 默认是最高频率每天一次。

MDM Profile Expiration Date 情况同 macOS 客户端。

 

从以上这些时间信息基本可以判断设备状态是否异常。例如:已确认设备此时在线情况下,last check-in 时间已超过了3周,或是 last Inventory update 时间已超过了2个月,或是 MDM Profile Expiration Date 已过期,这些都可以说明设备基本上是处于已经脱离管控的状态。

 

第三步、在客户端中进一步确认设备管控状态。

1、Jamf 管理 macOS 客户端基于 Jamf Agent 和 Apple MDM 管理框架,所以可以从这两方面入手。

1.1 确认 Jamf Agent

1.1.1 确认 Jamf Agent 是否存在,可执行终端命令:jamf help

如果遇到 command not found: jamf 报错,说明 jamf binary 没能成功安装或已被删除,如下图。

如果可以返回 jamf binary 使用说明,则说明其已成功安装,如下图。


1.1.2 确认 Jamf Daemon 是否运行。

执行终端命令:sudo launchctl  | grep com.jamf.management.daemon

如果没有运行,则执行以下命令加载:

sudo launchctl load -w /Library/LaunchDaemon/com.jamf.management.daemon.plist


1.1.3 确认 jamf binary 可用之后继续执行其他如下检查命令。

检查与 Jamf Pro Server 的通信:jamf checkjssconnection

更新 Jamf 管理框架:sudo jamf manage

更新客户端 Inventory 资产信息:sudo jamf recon

检查待执行策略:sudo jamf policy


1.1.4 查看 /var/log/jamf.log 日志或打开 Console.app 查看 jamf.log,尝试从中查找异常情况。


1.2 确认 MDM 客户端设备身份证书

MDM 客户端设备身份证书是在设备注册到 MDM 服务器时通过在注册配置文件中嵌入PKCS#12配置文件有效负载来完成的,这将成为设备的身份证明。如果钥匙串中此设备身份证书不存在或和 Jamf Pro 中不一致,则可能是由于设备执行过迁移助理或证书删除操作,这将导致所有基于 APNs 推送的任务都会失败或一直处于 pending 状态,如远程命令、profile 推送更新、app store 应用安装等。


1.2.1 打开钥匙串 keychain.app, 前往 系统 > 我的证书,确认客户端身份证书是否存在并仍然处于有效期内,且和 Jamf Pro 中此设备 Inventory 中的证书名称和有效期一致。


2、Jamf 管理 iOS 客户端完全基于 Apple MDM 管理框架,可以从这几个方面入手。

2.1 查询 MDM 描述文件是否存在。设置 > 通用 > VPN 与设备管理 > 移动设备管理 > MDM Profile.


2.2 确认 MDM 描述文件内的 APNs 证书主题是否和 Jamf Pro 中的一致。设置 > 通用 > VPN 与设备管理 > 移动设备管理 > MDM Profile > 移动设备管理 > Jamf xxx Enrollment Payload: MDM > 主题。

Jamf Pro Settings > Global > Push Certificate > MDM Push Notification Certificate

 

2.3 确认设备身份证书是否和 Jamf Pro 中的证书一致。

设置 > 通用 > VPN 与设备管理 > 移动设备管理 > MDM Profile > SCEP 设备身份证书

Jamf Pro > Devices > Search Inventory > “Device Name” > Inventory > Certificate.

 

通过排查 Jamf Pro 服务端和客户端相关日志、信息、证书等,如出现如上异常情况,重新注册设备是最好最快的解决办法。

希望能够对 Jamf Pro 管理员处理设备脱管问题上有所帮助。

如有疑问,请与我们联系或发送工单邮件至 help@solutionkeys.com.

 

Comments are closed.