Désactiver les Mises à Jour Automatiques de macOS
Dans les environnements d'entreprise, contrôler quand et comment les mises à jour macOS sont installées est crucial pour maintenir la stabilité du système et assurer la compatibilité avec les applications métier. Ce tutoriel montre comment désactiver les mises à jour automatiques de macOS avec des scripts shell.
Comprendre les Paramètres de Mise à Jour macOS
macOS a deux comportements principaux de mise à jour automatique :
- Téléchargement Automatique : Télécharge les mises à jour en arrière-plan
- Vérification Automatique : Vérifie périodiquement les serveurs d'Apple pour de nouvelles mises à jour
Les deux peuvent être contrôlés via le domaine de préférences com.apple.SoftwareUpdate.
Scripts de Base
Désactiver le Téléchargement Automatique
#!/bin/bash
defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload -boolean false
Désactiver la Vérification Automatique
#!/bin/bash
defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticCheckEnabled -boolean false
Script de Déploiement Entreprise
Pour un déploiement à grande échelle dans votre Roundfleet :
#!/bin/bash
# Désactiver les Mises à Jour Automatiques macOS - Script Entreprise
# Compatible avec macOS 10.14+
# Fonction pour enregistrer les messages
log_message() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a /var/log/macos_update_config.log
}
# Fonction pour obtenir l'utilisateur actuel
get_current_user() {
stat -f "%Su" /dev/console
}
# Fonction principale de configuration
configure_updates() {
local current_user
current_user=$(get_current_user)
log_message "Début de la configuration des mises à jour macOS pour l'utilisateur : $current_user"
# Désactiver le téléchargement automatique
if defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload -boolean false; then
log_message "✓ Téléchargement automatique désactivé avec succès"
else
log_message "✗ Échec de la désactivation du téléchargement automatique"
return 1
fi
# Désactiver la vérification automatique
if defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticCheckEnabled -boolean false; then
log_message "✓ Vérification automatique désactivée avec succès"
else
log_message "✗ Échec de la désactivation de la vérification automatique"
return 1
fi
# Désactiver l'installation automatique (sécurité supplémentaire)
if defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticallyInstallMacOSUpdates -boolean false; then
log_message "✓ Installation automatique désactivée avec succès"
else
log_message "✗ Échec de la désactivation de l'installation automatique"
fi
# Redémarrer les préférences Software Update pour forcer le rechargement
killall -HUP cfprefsd 2>/dev/null || true
log_message "Configuration des mises à jour macOS terminée"
return 0
}
# Fonction de vérification
verify_configuration() {
local download_status check_status install_status
download_status=$(defaults read /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload 2>/dev/null || echo "non défini")
check_status=$(defaults read /Library/Preferences/com.apple.SoftwareUpdate AutomaticCheckEnabled 2>/dev/null || echo "non défini")
install_status=$(defaults read /Library/Preferences/com.apple.SoftwareUpdate AutomaticallyInstallMacOSUpdates 2>/dev/null || echo "non défini")
log_message "Vérification de la configuration :"
log_message " Téléchargement Automatique : $download_status"
log_message " Vérification Automatique : $check_status"
log_message " Installation Automatique : $install_status"
}
# Exécuter la fonction principale
if configure_updates; then
verify_configuration
log_message "Script exécuté avec succès"
exit 0
else
log_message "Échec de l'exécution du script"
exit 1
fi
Script de Vérification
Vérifier les paramètres de mise à jour actuels :
#!/bin/bash
echo "=== État des Paramètres de Mise à Jour macOS ==="
echo "Téléchargement Automatique : $(defaults read /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload 2>/dev/null || echo 'Non configuré')"
echo "Vérification Automatique : $(defaults read /Library/Preferences/com.apple.SoftwareUpdate AutomaticCheckEnabled 2>/dev/null || echo 'Non configuré')"
echo "Installation Automatique : $(defaults read /Library/Preferences/com.apple.SoftwareUpdate AutomaticallyInstallMacOSUpdates 2>/dev/null || echo 'Non configuré')"
Réactiver les Mises à Jour
Pour restaurer les mises à jour automatiques :
#!/bin/bash
# Réactiver le téléchargement automatique
defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload -boolean true
# Réactiver la vérification automatique
defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticCheckEnabled -boolean true
# Réactiver l'installation automatique
defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticallyInstallMacOSUpdates -boolean true
echo "Mises à jour automatiques réactivées"
Dépannage
| Problème | Solution |
|---|---|
| Les paramètres reviennent après redémarrage | S'assurer que les scripts s'exécutent avec des privilèges admin |
| Préférences Système affiche les anciennes valeurs | Redémarrer Préférences Système ou exécuter killall -HUP cfprefsd |
| Les changements ne s'appliquent pas | Vérifier /var/log/macos_update_config.log pour les erreurs |
| Les mises à jour se téléchargent encore | Vérifier les permissions du fichier de préférences |
Notes Importantes
- Les utilisateurs avec privilèges admin peuvent changer manuellement ces paramètres
- L'app Préférences Système/Réglages peut nécessiter un redémarrage pour refléter les changements
- Considérez l'utilisation de Profils de Configuration pour un contrôle plus strict
- Testez sur un petit groupe avant le déploiement à l'échelle de l'entreprise
Alternative avec Profil de Configuration
Pour un contrôle plus strict, considérez le déploiement d'un Profil de Configuration :
<key>AutomaticCheckEnabled</key>
<false/>
<key>AutomaticDownload</key>
<false/>
<key>AutomaticallyInstallMacOSUpdates</key>
<false/>