0x01. BACKUP
Le registre de macOS se distingue en domaines, en clés et en valeurs. Le nettoyage de ce registre doit se faire prudemment afin de ne pas perdre sa configuration. C'est pourquoi il faut bien faire une sauvegarde :
defaults export com.apple.ServicesMenu.Services ./backup_com.apple.ServicesMenu.Services.db
Qui pourra être restauré ainsi :
defaults import com.apple.ServicesMenu.Services ./backup_com.apple.ServicesMenu.Services.db
Donc pour un export complet :
# La liste des domaines : defaults domains|tr "," "\n" # Export complet dans le dossier backup : mkdir backup ; defaults domains|tr "," "\n"|sed 's/ //1'|while read domain ; do defaults export $domain backup/$domain.json ; done
Donc pour une restauration complète :
cd backup ; ls -1 *.json|while read domain ; do defaults import $domain backup/$domain.json ; done
0x02. EXPORT AU FORMAT TEXTE
L'export au format "texte" se fait avec le parcours du domaine en le redirigeant vers un fichiers de sortie (>)
defaults read com.apple.ServicesMenu.Services > ./altered_domain
À ce moment là, il faut éditer le fichier ./altered_domain, et y retirer ce qui doit être enlevé, exemple, s'il s'agit de désinstallation Microsoft Office, il faut alors rechercher toutes les clés/variables contenant la chaine "microsoft" (en ignorant la casse), et les supprimer. Et faire bien attention de supprimer la ligne ou le bloc. Le format est proche du JSON.
Le tout en prenant soin de supprimer la chaine :
Found 1 keys in domain 'com.apple.ServicesMenu.Services':
L'idée est donc ensuite de supprimer l'ancien domaine et de le recréé avec les nouvelles données :
defaults delete com.apple.ServicesMenu.Services defaults write com.apple.ServicesMenu.Services "$(cat ./altered_domain)"
=> Écrit par : Nicolas, le 25 février 2018