MacOS非管理员用户无法更新VSCode问题求助
VSCode非管理员用户更新失败问题(Jamf Pro环境)
问题详情
近期为设备上的非管理员用户完成注册后,遇到VSCode更新异常:更新助手弹窗弹出后,非管理员用户无法完成更新。已执行以下排查动作但未解决:
- 查阅过微软VSCode官方仓库的相关更新权限议题
- 检查过应用程序文件夹及
~/Library/Caches/com.microsoft.VSCode.ShipIt的所有权与组权限 - 尝试取消弹窗后手动搜索下载最新版本、重启应用安装,但重启VSCode后并未成功完成更新
环境背景:使用Jamf Pro作为MDM工具,VSCode最初通过Jamf SelfService部署安装。
解决建议
1. 调整核心目录权限
通过Jamf Pro推送脚本,为非管理员用户开放VSCode安装目录及缓存目录的写入权限:
# 授予staff组对VSCode应用目录的读写权限 sudo chmod -R g+w /Applications/Visual\ Studio\ Code.app sudo chgrp -R staff /Applications/Visual\ Studio\ Code.app # 修复ShipIt缓存目录权限 sudo chmod -R g+w ~/Library/Caches/com.microsoft.VSCode.ShipIt sudo chgrp -R staff ~/Library/Caches/com.microsoft.VSCode.ShipIt
2. Jamf Pro静默推送更新
绕过用户端更新流程,直接通过MDM推送官方安装包:
- 从VSCode官网下载最新的pkg格式安装包
- 在Jamf Pro中创建软件部署策略,设置为静默安装,指定目标设备为所有非管理员用户设备
- 配置策略定期执行(如每周一次),确保设备始终保持最新版本
3. 配置系统级更新模式
修改VSCode配置,启用系统级更新,避免用户权限限制:
在VSCode的settings.json中添加以下配置:
{ "update.mode": "system", "update.enableMacBackgroundUpdates": true }
通过Jamf Pro将该配置文件批量推送到用户的~/Library/Application Support/Code/User/settings.json路径。
4. 检查ShipIt工具执行权限
验证VSCode内置的ShipUpdater工具权限,确保非管理员可执行:
ls -l /Applications/Visual\ Studio\ Code.app/Contents/Resources/app/out/vs/code/electron-browser/ShipIt.app/Contents/MacOS/ShipIt
若权限不足,推送脚本修复:
sudo chmod +x /Applications/Visual\ Studio\ Code.app/Contents/Resources/app/out/vs/code/electron-browser/ShipIt.app/Contents/MacOS/ShipIt
内容的提问来源于stack exchange,提问作者J.zdz.
相关产品推荐
相关产品推荐

