Exécuter l'Assistant de configuration sur les appareils macOS au prochain redémarrage
Ce guide complet démontre comment déclencher l'Assistant de configuration macOS au prochain redémarrage de l'appareil, permettant la reconfiguration des appareils, l'intégration des utilisateurs et les flux de déploiement d'entreprise.
Aperçu
L'Assistant de configuration est l'assistant de configuration intégré de macOS qui guide les utilisateurs dans la configuration initiale de l'appareil. Il peut être déclenché manuellement pour divers scénarios d'entreprise :
- Reconfiguration d'appareils : Réinitialiser les appareils à un état proche de l'usine tout en préservant les données
- Intégration d'utilisateurs : Rationaliser la configuration des appareils pour les nouveaux employés
- Déploiement de masse : Standardiser la configuration des appareils dans les organisations
- Dépannage : Réinitialiser les configurations système sans effacement complet de l'appareil
- Conformité : S'assurer que les appareils répondent aux exigences de configuration organisationnelle
Déclenchement de base de l'Assistant de configuration
Script simple pour l'Assistant de configuration
Créez un script de base pour déclencher l'Assistant de configuration au prochain redémarrage :
#!/bin/bash
# Script de déclenchement de base de l'Assistant de configuration
# Utilisation : ./declencher_assistant_config.sh
declencher_assistant_config() {
# Vérifier si le script est exécuté en tant que root
if [ "$(id -u)" != "0" ]; then
echo "Erreur : Ce script doit être exécuté en tant que root"
exit 1
fi
# Vérifier si le fichier .AppleSetupDone existe
if [ ! -f "/private/var/db/.AppleSetupDone" ]; then
echo "Fichier marqueur de l'Assistant de configuration non trouvé. L'Assistant de configuration pourrait déjà être programmé pour s'exécuter."
exit 0
fi
# Supprimer le fichier .AppleSetupDone
sudo rm /private/var/db/.AppleSetupDone
if [ $? -eq 0 ]; then
echo "L'Assistant de configuration s'exécutera au prochain redémarrage."
echo "Veuillez redémarrer l'appareil pour commencer l'Assistant de configuration."
else
echo "Erreur : Impossible de supprimer le fichier marqueur de l'Assistant de configuration."
exit 1
fi
}
# Exécuter la fonction
declencher_assistant_config
Assistant de configuration avancé avec validation
#!/bin/bash
# Assistant de configuration avancé avec validation et journalisation
# Utilisation : ./assistant_config_avance.sh
assistant_config_avance() {
local fichier_log="/var/log/macfleet_assistant_config.log"
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
local fichier_config_termine="/private/var/db/.AppleSetupDone"
local nom_ordinateur=$(scutil --get ComputerName)
# Vérifier si le script est exécuté en tant que root
if [ "$EUID" -ne 0 ]; then
echo "Erreur : Ce script doit être exécuté en tant que root"
exit 1
fi
# Créer le répertoire de log s'il n'existe pas
mkdir -p /var/log
# Enregistrer le début de l'opération
echo "[$timestamp] Démarrage du déclenchement de l'Assistant de configuration sur $nom_ordinateur" >> "$fichier_log"
# Vérifier la compatibilité de la version macOS
local version_os=$(sw_vers -productVersion)
local version_majeure=$(echo "$version_os" | cut -d. -f1)
if [ "$version_majeure" -ge 14 ]; then
echo "[$timestamp] ATTENTION : macOS $version_os détecté. Le déclenchement de l'Assistant de configuration pourrait ne pas fonctionner sur macOS 14+" >> "$fichier_log"
echo "Attention : Ce script est pris en charge sur les versions macOS inférieures à 14. Version actuelle : $version_os"
read -p "Voulez-vous continuer quand même ? (o/N) : " continuer_quand_meme
if [ "$continuer_quand_meme" != "o" ] && [ "$continuer_quand_meme" != "O" ]; then
echo "[$timestamp] Opération annulée par l'utilisateur en raison de la compatibilité de version" >> "$fichier_log"
echo "Opération annulée."
exit 0
fi
fi
# Vérifier si le fichier marqueur de l'Assistant de configuration existe
if [ ! -f "$fichier_config_termine" ]; then
echo "[$timestamp] Fichier marqueur de l'Assistant de configuration non trouvé à $fichier_config_termine" >> "$fichier_log"
echo "Fichier marqueur de l'Assistant de configuration non trouvé. L'Assistant de configuration pourrait déjà être programmé pour s'exécuter."
echo "Emplacement du fichier : $fichier_config_termine"
exit 0
fi
# Obtenir les informations du fichier avant suppression
local info_fichier=$(ls -la "$fichier_config_termine" 2>/dev/null)
echo "[$timestamp] Informations actuelles du fichier marqueur : $info_fichier" >> "$fichier_log"
# Créer une sauvegarde du fichier marqueur
local repertoire_sauvegarde="/var/backups/macfleet"
mkdir -p "$repertoire_sauvegarde"
cp "$fichier_config_termine" "$repertoire_sauvegarde/.AppleSetupDone.sauvegarde.$(date +%Y%m%d_%H%M%S)" 2>/dev/null
# Supprimer le fichier .AppleSetupDone
rm "$fichier_config_termine"
# Vérifier la suppression
if [ ! -f "$fichier_config_termine" ]; then
echo "[$timestamp] Fichier marqueur de l'Assistant de configuration supprimé avec succès" >> "$fichier_log"
echo "L'Assistant de configuration a été configuré pour s'exécuter au prochain redémarrage."
echo ""
echo "Informations sur l'appareil :"
echo " Nom de l'ordinateur : $nom_ordinateur"
echo " Version macOS : $version_os"
echo " Horodatage : $timestamp"
echo ""
echo "Prochaines étapes :"
echo " 1. Redémarrer l'appareil pour commencer l'Assistant de configuration"
echo " 2. Suivre les instructions à l'écran pour configurer l'appareil"
echo " 3. L'Assistant de configuration vous guidera à travers la langue, la région, les comptes et autres paramètres"
echo ""
echo "Note : Toutes les données utilisateur et applications existantes resteront intactes."
else
echo "[$timestamp] ERREUR : Impossible de supprimer le fichier marqueur de l'Assistant de configuration" >> "$fichier_log"
echo "Erreur : Impossible de supprimer le fichier marqueur de l'Assistant de configuration."
echo "Veuillez vérifier les permissions et réessayer."
exit 1
fi
}
# Exécuter la configuration avancée
assistant_config_avance
Gestion avancée de l'Assistant de configuration
Déclenchement conditionnel de l'Assistant de configuration
#!/bin/bash
# Déclenchement conditionnel de l'Assistant de configuration avec plusieurs scénarios
# Utilisation : ./assistant_config_conditionnel.sh [scenario]
assistant_config_conditionnel() {
local scenario=${1:-"defaut"}
local fichier_log="/var/log/macfleet_assistant_config.log"
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
# Vérifier si le script est exécuté en tant que root
if [ "$EUID" -ne 0 ]; then
echo "Erreur : Ce script doit être exécuté en tant que root"
exit 1
fi
echo "[$timestamp] Déclenchement conditionnel de l'Assistant de configuration - Scénario : $scenario" >> "$fichier_log"
case $scenario in
"nouvel_employe")
declencher_config_nouvel_employe
;;
"actualisation_appareil")
declencher_config_actualisation_appareil
;;
"reinitialisation_conformite")
declencher_reinitialisation_conformite
;;
"depannage")
declencher_config_depannage
;;
"deploiement_masse")
declencher_config_deploiement_masse
;;
"defaut")
declencher_config_defaut
;;
*)
echo "Scénario inconnu : $scenario"
echo "Scénarios disponibles : nouvel_employe, actualisation_appareil, reinitialisation_conformite, depannage, deploiement_masse, defaut"
exit 1
;;
esac
}
declencher_config_nouvel_employe() {
echo "Configuration de l'Assistant de configuration pour l'intégration d'un nouvel employé..."
# Supprimer le marqueur de l'Assistant de configuration
rm -f /private/var/db/.AppleSetupDone
echo "[$timestamp] Configuration nouvel employé - Assistant de configuration configuré" >> "$fichier_log"
cat << 'EOF'
Assistant de configuration configuré pour l'intégration d'un nouvel employé.
Les éléments suivants seront présentés à l'utilisateur :
• Sélection de la langue et de la région
• Configuration du réseau Wi-Fi
• Connexion avec l'Apple ID
• Création d'un compte utilisateur
• Paramètres de confidentialité et de sécurité
• Configuration de Touch ID (si disponible)
• Préférences d'apparence du bureau
Veuillez redémarrer l'appareil et le fournir au nouvel employé.
EOF
}
declencher_config_actualisation_appareil() {
echo "Configuration de l'Assistant de configuration pour l'actualisation d'appareil..."
# Vérifier si les données utilisateur doivent être préservées
local repertoires_utilisateur=$(ls /Users | grep -v "Shared" | grep -v "Guest" | head -5)
if [ -n "$repertoires_utilisateur" ]; then
echo "Comptes utilisateur existants détectés :"
echo "$repertoires_utilisateur"
echo ""
read -p "Préserver les données utilisateur existantes ? (O/n) : " preserver_donnees
if [ "$preserver_donnees" = "n" ] || [ "$preserver_donnees" = "N" ]; then
echo "Attention : Cela supprimera les données utilisateur lors de l'actualisation."
read -p "Êtes-vous sûr ? (o/N) : " confirmer
if [ "$confirmer" != "o" ] && [ "$confirmer" != "O" ]; then
echo "Opération annulée."
return 1
fi
fi
fi
rm -f /private/var/db/.AppleSetupDone
echo "[$timestamp] Configuration actualisation appareil - Assistant de configuration configuré" >> "$fichier_log"
echo "Assistant de configuration configuré pour l'actualisation d'appareil."
echo "Redémarrez l'appareil pour commencer le processus de reconfiguration."
}
declencher_reinitialisation_conformite() {
echo "Configuration de l'Assistant de configuration pour la réinitialisation de conformité..."
# Enregistrer la réinitialisation de conformité
echo "[$timestamp] Réinitialisation de conformité initiée - Assistant de configuration déclenché" >> "$fichier_log"
# Supprimer le marqueur de l'Assistant de configuration
rm -f /private/var/db/.AppleSetupDone
cat << 'EOF'
Assistant de configuration configuré pour la réinitialisation de conformité.
Cela garantira que l'appareil répond aux exigences de conformité organisationnelle :
• Forcer la re-acceptation des termes et politiques
• Vérifier les configurations des comptes utilisateur
• Confirmer les paramètres de sécurité
• Mettre à jour les préférences de confidentialité
• Valider les paramètres organisationnels
Redémarrez l'appareil pour commencer la vérification de conformité.
EOF
}
declencher_config_depannage() {
echo "Configuration de l'Assistant de configuration pour le dépannage..."
# Créer un rapport de dépannage
local rapport_depannage="/tmp/rapport_depannage_$(date +%Y%m%d_%H%M%S).txt"
cat > "$rapport_depannage" << EOF
Rapport de dépannage MacFleet
Généré : $(date)
Appareil : $(scutil --get ComputerName)
Version macOS : $(sw_vers -productVersion)
Problèmes que l'Assistant de configuration peut résoudre :
• Problèmes de configuration des comptes utilisateur
• Corruption des préférences système
• Problèmes de configuration réseau
• Problèmes d'authentification Apple ID
• Incohérences des paramètres de confidentialité
L'Assistant de configuration sera déclenché au prochain redémarrage.
EOF
rm -f /private/var/db/.AppleSetupDone
echo "[$timestamp] Configuration dépannage - Assistant de configuration configuré" >> "$fichier_log"
echo "Assistant de configuration configuré pour le dépannage."
echo "Rapport de dépannage sauvegardé à : $rapport_depannage"
echo "Redémarrez l'appareil pour commencer le processus de configuration."
}
declencher_config_deploiement_masse() {
echo "Configuration de l'Assistant de configuration pour le déploiement de masse..."
# Obtenir le numéro de série de l'appareil pour le suivi
local numero_serie=$(system_profiler SPHardwareDataType | grep "Serial Number" | awk '{print $4}')
# Enregistrer le déploiement
echo "[$timestamp] Configuration déploiement de masse - Appareil : $numero_serie" >> "$fichier_log"
rm -f /private/var/db/.AppleSetupDone
cat << EOF
Assistant de configuration configuré pour le déploiement de masse.
Numéro de série de l'appareil : $numero_serie
Date de déploiement : $(date)
La configuration standardisée inclura :
• Langue : Français
• Région : France
• Réseau : Wi-Fi d'entreprise
• Compte : Compte utilisateur standard
• Sécurité : Politiques de sécurité d'entreprise
• Applications : Applications d'entreprise standard
L'appareil est prêt pour le déploiement. Redémarrez pour commencer la configuration.
EOF
}
declencher_config_defaut() {
echo "Configuration de l'Assistant de configuration avec les paramètres par défaut..."
rm -f /private/var/db/.AppleSetupDone
echo "[$timestamp] Configuration par défaut - Assistant de configuration configuré" >> "$fichier_log"
echo "Assistant de configuration configuré avec les paramètres par défaut."
echo "Redémarrez l'appareil pour commencer le processus de configuration."
}
# Exécution principale
if [ $# -eq 0 ]; then
echo "Utilisation : $0 [scenario]"
echo "Scénarios disponibles :"
echo " nouvel_employe - Configurer pour l'intégration d'un nouvel employé"
echo " actualisation_appareil - Configurer pour l'actualisation/reconfiguration d'appareil"
echo " reinitialisation_conformite - Configurer pour la vérification de conformité"
echo " depannage - Configurer pour le dépannage"
echo " deploiement_masse - Configurer pour le déploiement de masse"
echo " defaut - Configurer avec les paramètres par défaut"
echo ""
assistant_config_conditionnel "defaut"
else
assistant_config_conditionnel "$1"
fi
Automatisation et surveillance de l'Assistant de configuration
Gestionnaire d'entreprise de l'Assistant de configuration
#!/bin/bash
# Gestionnaire d'entreprise de l'Assistant de configuration
# Utilisation : ./gestionnaire_entreprise_assistant.sh
gestionnaire_entreprise_assistant() {
local fichier_config="/etc/macfleet/config_assistant_configuration.conf"
local fichier_log="/var/log/macfleet_assistant_config.log"
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
# Vérifier si le script est exécuté en tant que root
if [ "$EUID" -ne 0 ]; then
echo "Erreur : Ce script doit être exécuté en tant que root"
exit 1
fi
# Créer le répertoire de configuration
mkdir -p /etc/macfleet
# Charger ou créer la configuration
if [ -f "$fichier_config" ]; then
source "$fichier_config"
else
creer_config_entreprise
source "$fichier_config"
fi
echo "[$timestamp] Gestionnaire d'entreprise de l'Assistant de configuration démarré" >> "$fichier_log"
# Afficher le menu de configuration
afficher_menu_entreprise
}
creer_config_entreprise() {
cat > "/etc/macfleet/config_assistant_configuration.conf" << 'EOF'
# Configuration de l'Assistant de configuration d'entreprise MacFleet
# Informations de l'organisation
NOM_ORGANISATION="Organisation MacFleet"
EMAIL_CONTACT_IT="support@macfleet.com"
TELEPHONE_CONTACT_IT="1-800-MACFLEET"
# Configuration par défaut
LANGUE_DEFAUT="Français"
REGION_DEFAUT="France"
NECESSITER_APPLE_ID="false"
ACTIVER_SERVICES_LOCALISATION="false"
ACTIVER_SIRI="false"
NECESSITER_ACCEPTATION_TERMES="true"
# Paramètres de sécurité
NECESSITER_MOT_PASSE_FORT="true"
ACTIVER_FILEVAULT="true"
NECESSITER_TOUCH_ID="true"
# Paramètres de déploiement
MODE_DEPLOIEMENT="entreprise"
IGNORER_ETAPES_OPTIONNELLES="true"
AUTO_CONFIGURER_RESEAU="true"
EOF
echo "Configuration d'entreprise créée à /etc/macfleet/config_assistant_configuration.conf"
}
afficher_menu_entreprise() {
while true; do
clear
echo "======================================="
echo "Assistant de configuration d'entreprise MacFleet"
echo "======================================="
echo ""
echo "Organisation : $NOM_ORGANISATION"
echo "Contact : $EMAIL_CONTACT_IT"
echo ""
echo "Actions disponibles :"
echo "1. Déclencher l'Assistant de configuration (Appareil unique)"
echo "2. Préparer le déploiement de masse"
echo "3. Configurer les options de l'Assistant"
echo "4. Voir le statut de l'Assistant de configuration"
echo "5. Générer un rapport de déploiement"
echo "6. Sauvegarder/Restaurer l'état de configuration"
echo "7. Voir la configuration"
echo "8. Quitter"
echo ""
read -p "Sélectionnez une option (1-8) : " choix
case $choix in
1)
declencher_config_appareil_unique
;;
2)
preparer_deploiement_masse
;;
3)
configurer_options_assistant
;;
4)
voir_statut_assistant
;;
5)
generer_rapport_deploiement
;;
6)
sauvegarder_restaurer_config
;;
7)
voir_configuration
;;
8)
echo "Fermeture du gestionnaire d'entreprise de l'Assistant de configuration."
exit 0
;;
*)
echo "Option invalide. Veuillez réessayer."
;;
esac
echo ""
read -p "Appuyez sur Entrée pour continuer..."
done
}
declencher_config_appareil_unique() {
echo "======================================="
echo "Déclencher l'Assistant de configuration - Appareil unique"
echo "======================================="
local nom_appareil=$(scutil --get ComputerName)
local numero_serie=$(system_profiler SPHardwareDataType | grep "Serial Number" | awk '{print $4}')
echo "Appareil : $nom_appareil"
echo "Numéro de série : $numero_serie"
echo ""
read -p "Confirmer le déclenchement de l'Assistant de configuration sur cet appareil ? (o/N) : " confirmer
if [ "$confirmer" = "o" ] || [ "$confirmer" = "O" ]; then
# Supprimer le marqueur de l'Assistant de configuration
if rm -f /private/var/db/.AppleSetupDone; then
echo "[$timestamp] Configuration appareil unique déclenchée - $nom_appareil ($numero_serie)" >> "$fichier_log"
echo "Assistant de configuration configuré avec succès."
echo "Veuillez redémarrer l'appareil pour commencer la configuration."
else
echo "Erreur : Impossible de configurer l'Assistant de configuration."
fi
else
echo "Opération annulée."
fi
}
preparer_deploiement_masse() {
echo "======================================="
echo "Préparer le déploiement de masse"
echo "======================================="
read -p "Entrez le nombre d'appareils pour le déploiement : " nombre_appareils
read -p "Entrez le nom du lot de déploiement : " nom_lot
local repertoire_deploiement="/var/macfleet/deploiements/$nom_lot"
mkdir -p "$repertoire_deploiement"
# Créer le package de déploiement
cat > "$repertoire_deploiement/deployer_assistant_config.sh" << 'EOF'
#!/bin/bash
# Déclencheur de l'Assistant de configuration pour déploiement de masse MacFleet
# Script de déploiement auto-généré
# Vérifier si le script est exécuté en tant que root
if [ "$EUID" -ne 0 ]; then
echo "Erreur : Ce script doit être exécuté en tant que root"
exit 1
fi
# Supprimer le marqueur de l'Assistant de configuration
rm -f /private/var/db/.AppleSetupDone
# Enregistrer le déploiement
echo "$(date '+%Y-%m-%d %H:%M:%S') - Configuration déploiement de masse déclenchée sur $(scutil --get ComputerName)" >> /var/log/macfleet_deploiement_masse.log
echo "Assistant de configuration configuré pour le déploiement de masse."
echo "Redémarrez l'appareil pour commencer le processus de configuration."
EOF
chmod +x "$repertoire_deploiement/deployer_assistant_config.sh"
# Créer le manifeste de déploiement
cat > "$repertoire_deploiement/manifeste_deploiement.txt" << EOF
Manifeste de déploiement de masse MacFleet
Nom du lot : $nom_lot
Nombre d'appareils : $nombre_appareils
Créé : $(date)
Organisation : $NOM_ORGANISATION
Instructions de déploiement :
1. Copier deployer_assistant_config.sh sur chaque appareil
2. Exécuter le script en tant que root sur chaque appareil
3. Redémarrer les appareils pour commencer l'Assistant de configuration
4. Suivre les procédures de configuration standard
Contact : $EMAIL_CONTACT_IT
EOF
echo "Package de déploiement de masse créé à : $repertoire_deploiement"
echo "Script de déploiement : $repertoire_deploiement/deployer_assistant_config.sh"
echo "Manifeste : $repertoire_deploiement/manifeste_deploiement.txt"
}
configurer_options_assistant() {
echo "======================================="
echo "Configurer les options de l'Assistant"
echo "======================================="
echo "Configuration actuelle :"
echo " Langue : $LANGUE_DEFAUT"
echo " Région : $REGION_DEFAUT"
echo " Nécessiter Apple ID : $NECESSITER_APPLE_ID"
echo " Activer les services de localisation : $ACTIVER_SERVICES_LOCALISATION"
echo " Activer Siri : $ACTIVER_SIRI"
echo ""
read -p "Modifier la configuration ? (o/N) : " modifier
if [ "$modifier" = "o" ] || [ "$modifier" = "O" ]; then
echo "La modification de la configuration nécessiterait une configuration supplémentaire..."
echo "Veuillez modifier : /etc/macfleet/config_assistant_configuration.conf"
fi
}
voir_statut_assistant() {
echo "======================================="
echo "Statut de l'Assistant de configuration"
echo "======================================="
local fichier_config_termine="/private/var/db/.AppleSetupDone"
local nom_appareil=$(scutil --get ComputerName)
local version_os=$(sw_vers -productVersion)
echo "Appareil : $nom_appareil"
echo "Version macOS : $version_os"
echo "Horodatage : $(date)"
echo ""
if [ -f "$fichier_config_termine" ]; then
echo "Statut : Assistant de configuration TERMINÉ"
echo "Fichier : $fichier_config_termine existe"
echo "Modifié : $(stat -f "%Sm" "$fichier_config_termine")"
echo ""
echo "L'Assistant de configuration ne s'exécutera PAS au prochain redémarrage."
else
echo "Statut : Assistant de configuration PROGRAMMÉ"
echo "Fichier : $fichier_config_termine n'existe pas"
echo ""
echo "L'Assistant de configuration s'exécutera au prochain redémarrage."
fi
}
generer_rapport_deploiement() {
echo "======================================="
echo "Générer un rapport de déploiement"
echo "======================================="
local fichier_rapport="/tmp/rapport_macfleet_assistant_$(date +%Y%m%d_%H%M%S).txt"
cat > "$fichier_rapport" << EOF
Rapport de déploiement de l'Assistant de configuration MacFleet
Généré : $(date)
Organisation : $NOM_ORGANISATION
Informations sur l'appareil :
Nom de l'ordinateur : $(scutil --get ComputerName)
Numéro de série : $(system_profiler SPHardwareDataType | grep "Serial Number" | awk '{print $4}')
Version macOS : $(sw_vers -productVersion)
Modèle matériel : $(system_profiler SPHardwareDataType | grep "Model Name" | cut -d: -f2 | xargs)
Statut de l'Assistant de configuration :
EOF
if [ -f "/private/var/db/.AppleSetupDone" ]; then
echo " Statut : Terminé" >> "$fichier_rapport"
echo " Dernière exécution : $(stat -f "%Sm" "/private/var/db/.AppleSetupDone")" >> "$fichier_rapport"
else
echo " Statut : Programmé pour le prochain redémarrage" >> "$fichier_rapport"
fi
cat >> "$fichier_rapport" << EOF
Configuration :
Langue par défaut : $LANGUE_DEFAUT
Région par défaut : $REGION_DEFAUT
Mode de déploiement : $MODE_DEPLOIEMENT
Contact : $EMAIL_CONTACT_IT
Entrées de log récentes :
EOF
if [ -f "/var/log/macfleet_assistant_config.log" ]; then
tail -10 "/var/log/macfleet_assistant_config.log" >> "$fichier_rapport"
else
echo " Aucune entrée de log trouvée" >> "$fichier_rapport"
fi
echo "Rapport de déploiement généré : $fichier_rapport"
}
sauvegarder_restaurer_config() {
echo "======================================="
echo "Sauvegarder/Restaurer l'état de configuration"
echo "======================================="
echo "1. Sauvegarder l'état actuel de l'Assistant de configuration"
echo "2. Restaurer l'état de l'Assistant de configuration"
echo ""
read -p "Sélectionnez une option (1-2) : " option_sauvegarde
case $option_sauvegarde in
1)
sauvegarder_etat_config
;;
2)
restaurer_etat_config
;;
*)
echo "Option invalide."
;;
esac
}
sauvegarder_etat_config() {
local repertoire_sauvegarde="/var/backups/macfleet"
local timestamp=$(date +%Y%m%d_%H%M%S)
mkdir -p "$repertoire_sauvegarde"
if [ -f "/private/var/db/.AppleSetupDone" ]; then
cp "/private/var/db/.AppleSetupDone" "$repertoire_sauvegarde/.AppleSetupDone.sauvegarde.$timestamp"
echo "État de l'Assistant de configuration sauvegardé à : $repertoire_sauvegarde/.AppleSetupDone.sauvegarde.$timestamp"
else
echo "Aucun état de l'Assistant de configuration à sauvegarder (fichier n'existe pas)."
fi
}
restaurer_etat_config() {
local repertoire_sauvegarde="/var/backups/macfleet"
if [ -d "$repertoire_sauvegarde" ]; then
echo "Sauvegardes disponibles :"
ls -la "$repertoire_sauvegarde"/.AppleSetupDone.sauvegarde.* 2>/dev/null || echo "Aucune sauvegarde trouvée."
echo ""
read -p "Entrez le nom du fichier de sauvegarde à restaurer : " fichier_sauvegarde
if [ -f "$repertoire_sauvegarde/$fichier_sauvegarde" ]; then
cp "$repertoire_sauvegarde/$fichier_sauvegarde" "/private/var/db/.AppleSetupDone"
echo "État de l'Assistant de configuration restauré depuis : $fichier_sauvegarde"
else
echo "Fichier de sauvegarde non trouvé."
fi
else
echo "Aucun répertoire de sauvegarde trouvé."
fi
}
voir_configuration() {
echo "======================================="
echo "Configuration actuelle"
echo "======================================="
if [ -f "/etc/macfleet/config_assistant_configuration.conf" ]; then
cat "/etc/macfleet/config_assistant_configuration.conf"
else
echo "Aucun fichier de configuration trouvé."
fi
}
# Exécuter le gestionnaire d'entreprise
gestionnaire_entreprise_assistant
Dépannage et bonnes pratiques
Problèmes courants et solutions
1. Compatibilité de version macOS
# Vérifier la version macOS avant l'exécution
version_os=$(sw_vers -productVersion)
version_majeure=$(echo "$version_os" | cut -d. -f1)
if [ "$version_majeure" -ge 14 ]; then
echo "Attention : Ce script pourrait ne pas fonctionner sur macOS 14 ou ultérieur"
echo "Version actuelle : $version_os"
fi
2. Problèmes de permissions
# S'assurer que le script s'exécute avec les privilèges appropriés
if [ "$EUID" -ne 0 ]; then
echo "Erreur : Ce script doit être exécuté en tant que root"
echo "Veuillez utiliser : sudo $0"
exit 1
fi
3. Protection du système de fichiers
# Vérifier si la protection d'intégrité du système affecte l'opération
csrutil status | grep -q "enabled"
if [ $? -eq 0 ]; then
echo "Note : SIP est activé. Cela pourrait affecter le fonctionnement du script."
fi
Bonnes pratiques pour la gestion de l'Assistant de configuration
- Compatibilité de version : Toujours vérifier la compatibilité de version macOS avant le déploiement
- Communication utilisateur : Notifier les utilisateurs avant de déclencher l'Assistant de configuration
- Sauvegarde de données : Créer des sauvegardes avant les changements de configuration majeurs
- Tests : Tester les scripts dans des environnements contrôlés avant le déploiement de masse
- Journalisation : Maintenir des logs détaillés de toutes les opérations de l'Assistant de configuration
- Plans de retour : Préparer des procédures de retour en arrière pour les échecs de déploiement
Considérations de déploiement d'entreprise
- Planification : Planifier les déploiements pendant les fenêtres de maintenance
- Impact utilisateur : Considérer les flux de travail des utilisateurs et minimiser les perturbations
- Exigences réseau : S'assurer d'une connectivité réseau adéquate pour les services Apple
- Sécurité : Implémenter des mesures de sécurité appropriées pour les déploiements automatisés
- Conformité : S'assurer que les déploiements respectent les exigences de conformité organisationnelle
Conclusion
La gestion de l'Assistant de configuration est un outil puissant pour l'administration des appareils macOS. Ces scripts fournissent des solutions complètes pour déclencher, gérer et automatiser l'Assistant de configuration dans les flottes Mac. Des déclencheurs simples pour un seul appareil à l'automatisation d'entreprise complexe, ces outils permettent une gestion efficace des appareils tout en maintenant l'expérience utilisateur et la conformité organisationnelle.
N'oubliez pas de tester tous les scripts de manière approfondie dans des environnements contrôlés avant le déploiement en production, et de toujours maintenir des sauvegardes appropriées des configurations système. La surveillance régulière et la journalisation garantissent des déploiements réussis de l'Assistant de configuration et aident à identifier les problèmes potentiels avant qu'ils n'affectent les utilisateurs.