macOS 13+ ARM版电脑零接触部署问题解决方法

简介: macOS 13+ ARM版电脑使用MDM工具零接触部署

ARM版本电脑部署 macOS 13+问题:

  1. 因为ARM版(M1/M2等) 苹果在macOS 13+修改大多数策略和配置文件导致在使用URL注册的MDM可以被用户删除;
  2. 因为ARM版直接在第一次开机部署的脚本无法自动连接WiFi,且无法安装Rosetta,会导致其他依赖Rosetta的软件无法安装。
  3. Recovery Lock无法下发问题。

最佳实践:

解决macOS 13 URL注册可以被用户删除的问题

针对第一个问题,且电脑来源无法直接ASM的情况下(例如串货,特殊优惠渠道),只能通过手机版Apple Configurator进行注册来避免。所以MDS部署需要去除掉Skip Setup Assistant勾选,然后通过手机版Apple Configurator扫码从而使得电脑获得配置文件。如果已在ASM/ABM中则联网后自动下载配置文件。

提示:即使是DEP(ASM/ABM)设备如果跳过了Setup Assistant后,通过URL注册的方式,用户依然可以删除MDM。
所以我们必须保留Setup Assistant,之后步骤可以在MDM中设置跳过。

macOS 使用Apple Configurator第一次注册到ASM/ABM - SimpleMDM

macOS 使用Apple Configurator第一次注册到ASM/ABM - Hexnode

解决使用MDS 无法安装Intel App的问题

由于MDS部署后,不知道为什么WiFi无法连上,也就导致Intel App无法安装了。
在参考了hexnode的脚本后发现,安装Rosetta依然显示连不上网,于是稍微修改了脚本。
需要注意的是,当同一个Workflow有packages以及script的时候,需要将脚本的顺序修改为"After macOS Install, but before packages install"

# Determine WiFi is Connected 
wifi_status=$(ifconfig en0 |grep "status: active")
wifi_network=$(networksetup -getairportnetwork en0 | awk -F': ' '/Current Wi-Fi Network/{print $2}') 
if [ -z "$wifi_status" ]; then 
    echo "WiFi is not Connected. Setting to AppleWiFi..." 
    # Set Wi-Fi 
    networksetup -setairportnetwork en0 AppleWiFi
    sleep 5
else 
    echo "WiFi is already connected to $wifi_network"     
fi



# Determine the architecture of the macOS device 
processorBrand=$(/usr/sbin/sysctl -n machdep.cpu.brand_string) 
if [[ "${processorBrand}" = *"Apple"* ]]; then 
    echo "Apple Processor is present." 
else 
    echo "Apple Processor is not present. Rosetta not required." 
    exit 0 
fi 

# Check if Rosetta is installed 
checkRosettaStatus=$(/bin/launchctl list | /usr/bin/grep "com.apple.oahd-root-helper") 
RosettaFolder="/Library/Apple/usr/share/rosetta" 
if [[ -e "${RosettaFolder}" && "${checkRosettaStatus}" != "" ]]; then 
    echo "Rosetta Folder exists and Rosetta Service is running. Exiting..." 
    exit 0 
else 
    echo "Rosetta Folder does not exist or Rosetta service is not running. Installing Rosetta..." 
fi 

# Install Rosetta with WIFI check
if [ -z "$wifi_status" ]; then 
    echo "Rosetta - WiFi is not Connected. Setting to AppleWiFi..." 
    # Set Wi-Fi 
    networksetup -setairportnetwork en0 AppleWiFi
    sleep 5
    echo "Starting to Install Rosetta - Setting WiFi Done"
    /usr/sbin/softwareupdate --install-rosetta --agree-to-license
else 
    echo "Rosetta - WiFi is already connected to $wifi_network" 
    echo "Starting to Install Rosetta - Detected WiFi"
    /usr/sbin/softwareupdate --install-rosetta --agree-to-license    
fi

# /usr/sbin/softwareupdate --install-rosetta --agree-to-license 

# Check the result of Rosetta install command 
if [[ $? -eq 0 ]]; then 
    echo "Rosetta installed successfully." 
    exit 0 
else 
    echo "Rosetta installation failed." 
    exit 1 

fi 
exit 0

解决Recovery Lock下发不成功的问题

因为我们需要Bootstrap Token 在escrowed状态,以及该账号下Secure Token为Yes。Secure Token是在第一次登录账号或者Setup Assistant完成后建立的,而早期部署中,由于忽略Setup Assistant以及第一次账号使用的是隐藏账号,然后跳到新建的用户账号导致Secure Token无法下发到新建用户下面,导致Rocovery Lock无法下发部署。

第一,通过MDM设置Bootstrap Token,使得电脑获得MDM后会自动获得Bootstrap Token。
第二,由于我们MDS部署步骤已经修改为含Setup Assistant, Secure Token也就不会有问题。

相关文章
|
算法 编译器 Linux
【Qt4 部署】ARM系统上使用Qt 4 进行开发的QWS 等环境变量部署
【Qt4 部署】ARM系统上使用Qt 4 进行开发的QWS 等环境变量部署
407 0
|
4月前
|
人工智能 安全 网络安全
Burp Suite Professional 2025.5 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2025.5 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件
154 3
|
4月前
|
Kubernetes 应用服务中间件 nginx
鲲鹏Arm+麒麟V10,国产化信创 K8s 离线部署保姆级教程
Rainbond V6 国产化部署教程,针对鲲鹏 CPU + 麒麟 V10 的离线环境,手把手教你从环境准备到应用上线,所有依赖包提前打包好,步骤写成**傻瓜式**操作指南。别说技术团队了,照着文档一步步来,让你领导来都能独立完成部署。
鲲鹏Arm+麒麟V10,国产化信创 K8s 离线部署保姆级教程
|
4月前
|
消息中间件 数据可视化 Kafka
docker arm架构部署kafka要点
本内容介绍了基于 Docker 的容器化解决方案,包含以下部分: 1. **Docker 容器管理**:通过 Portainer 可视化管理工具实现对主节点和代理节点的统一管理。 2. **Kafka 可视化工具**:部署 Kafka-UI 以图形化方式监控和管理 Kafka 集群,支持动态配置功能, 3. **Kafka 安装与配置**:基于 Bitnami Kafka 镜像,提供完整的 Kafka 集群配置示例,涵盖 KRaft 模式、性能调优参数及数据持久化设置,适用于高可用生产环境。 以上方案适合 ARM64 架构,为用户提供了一站式的容器化管理和消息队列解决方案。
323 10
|
7月前
|
存储 网络协议 网络安全
【Azure 环境】部署ARM Linked Template时候 Blob SAS Token不能正常工作
Unable to retrieve url https://<stroage account name>.blob.core.chinacloudapi.cn/arm/azuredeploy.json?sp=r 'st' is not recognized as an internal or external command, operable program or batch file. 'se' is not recognized as an internal or external command, operable program or batch file. 'spr' is no
|
存储 网络协议 安全
【Azure 环境】ARM部署模板大于4MB的解决方案及Linked Template遇见存储账号防火墙无法访问
【Azure 环境】ARM部署模板大于4MB的解决方案及Linked Template遇见存储账号防火墙无法访问
140 0
|
Linux 虚拟化 iOS开发
部署06--MacOS安装VMware Fusion安装
部署06--MacOS安装VMware Fusion安装
|
Docker 容器
Docker部署minio-arm64版本,阿里官方推荐
Docker部署minio-arm64版本,阿里官方推荐
|
存储
【Azure Developer】Github Action部署资源(ARM模板)到Azure中国区时,遇见登录问题的解决办法
【Azure Developer】Github Action部署资源(ARM模板)到Azure中国区时,遇见登录问题的解决办法
128 0

热门文章

最新文章