Désinstaller
Nécessite @openlatch/client 0.11.12 ou une version ultérieure
Utilisez cette page pour retirer le client des machines : le portable d’un développeur, une vague de déploiement ou le parc entier. Le client s’installe et s’exécute au niveau de l’utilisateur, si bien qu’une désinstallation se fait machine par machine, en tant que l’utilisateur pour qui le client a été installé. Retirez-le par la voie qui l’a installé.
| Installé avec | Retiré avec |
|---|---|
| Le parcours développeur | Retirer le client d’une seule machine |
| Un script de plateforme Intune ou une application Win32 | Microsoft Intune |
| Une stratégie Jamf Pro | Jamf Pro |
| Ansible ou une étape de pipeline | Ansible |
| Une image de conteneur ou une tâche de CI | Conteneurs et intégration continue |
Ce qu’une désinstallation retire de la machine
Section intitulée « Ce qu’une désinstallation retire de la machine »Une désinstallation a trois niveaux. Un retour arrière sur un parc utilise normalement le troisième.
| Niveau | Commande | Ce qu’elle retire | Ce qu’elle laisse |
|---|---|---|---|
| Désinstallation | openlatch uninstall | L’entrée du client dans la configuration de chaque agent, en restaurant chaque agent tel qu’il était avant l’installation. Le client est arrêté, ainsi que son démarrage automatique | Le répertoire d’état, les binaires, la ligne PATH, et la CA de relais, toujours approuvée, si bien qu’une réinstallation n’affiche aucune boîte de dialogue |
| Purge | openlatch uninstall --purge | Ce qui précède, plus le répertoire d’état, avec la configuration, les enregistrements locaux et les fichiers d’identifiants chiffrés, et la CA de relais avec son entrée dans le magasin de confiance de l’utilisateur | Les binaires, la ligne PATH |
| Suppression complète | La purge, puis la suppression des binaires | Tout ce que l’installation a placé | Le marqueur d’inscription, si une recette de parc en a laissé un |
Un certificat de relais que votre gestion des appareils approuve à l’échelle de la machine n’est jamais retiré par le client, à aucun niveau : retirez-le du profil ou de l’objet de stratégie de groupe qui l’a installé, une fois qu’aucune machine n’en a besoin.
openlatch uninstall ne touche pas aux réglages qu’OpenLatch n’a pas écrits. Une purge reste locale à la machine : elle supprime du disque l’identifiant d’hôte de la machine, et l’identifiant n’est pas révoqué sur la plateforme. Révoquer et nettoyer dans la console couvre la révocation.
Avant de désinstaller (facultatif)
Section intitulée « Avant de désinstaller (facultatif) »Une purge supprime les enregistrements locaux, et les événements que la plateforme n’a pas encore reçus partent avec eux ; le client vous en donne le nombre avant de les supprimer. Gardez-en une copie d’abord si votre politique de conservation l’exige.
| Ce qu’il faut garder | Comment |
|---|---|
| Les enregistrements locaux d’une machine | Lancez openlatch doctor --rescue --yes sur la machine. Elle écrit une archive ZIP expurgée dans le répertoire courant, ou au chemin donné avec --output |
| La fiche d’un agent dans la console | Export as JSON, dans le menu d’actions de l’agent. Trouver et lire un agent montre où |
| Le journal d’audit | Export sur la page Audit Trail, en CSV ou JSON. Consulter le journal d’audit couvre les filtres |
Sans terminal, openlatch doctor --rescue ne construit l’archive que si --yes est donné, alors gardez l’option dans un script.
Retirer le client d’une seule machine
Section intitulée « Retirer le client d’une seule machine »Utilisez cette voie sur une machine où vous pouvez ouvrir un terminal, en général une installation par le parcours développeur. Déconnectez-vous d’abord, pour que l’identifiant d’hôte de la machine soit révoqué sur la plateforme tant que la machine est en ligne, puis purgez :
openlatch system auth logoutopenlatch uninstall --purgeLa déconnexion ne révoque que l’identifiant de cette machine. Quand la plateforme est injoignable, le client garde l’identifiant pour le révoquer plus tard, mais la purge le supprime, si bien que la révocation n’a jamais lieu : coupez plutôt l’hôte dans la console, comme le décrit Révoquer et nettoyer dans la console.
Supprimez ensuite les deux fichiers que l’installation a placés :
rm -f "$HOME/.local/bin/openlatch" "$HOME/.local/bin/openlatch-hook"L’installation a aussi ajouté une ligne PATH à votre profil de shell, avec ce commentaire sur la ligne qui la précède :
# openlatch installerSupprimez le commentaire et la ligne qui le suit, sauf si d’autres outils ont besoin que ce répertoire figure dans le PATH. Laissez le répertoire lui-même : d’autres logiciels peuvent l’utiliser.
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\openlatch\bin"Le répertoire appartient au client, vous pouvez donc le supprimer entièrement. Retirez aussi son entrée de votre Path utilisateur, sous Modifier les variables d’environnement pour votre compte.
Pour détacher un agent et garder les autres, openlatch uninstall --agent prend le type de l’agent. Cela ne restreint que le retrait des hooks : le client s’arrête quand même pour toute la machine, si bien que les autres agents restent pointés vers un client qui ne tourne plus. Utilisez-le avant une réinstallation, pas pour désactiver un seul agent.
Retour arrière sur un parc
Section intitulée « Retour arrière sur un parc »Un retour arrière sur un parc se fait en quatre étapes, dans cet ordre :
- Arrêtez l’installation. Retirez la stratégie ou l’affectation d’installation des machines dont vous faites le retour arrière, pour que l’outil n’installe pas de nouveau le client.
- Retirez le client. Livrez la purge et la suppression des fichiers ci-dessous par le même outil, en tant que le même utilisateur que l’installation. La purge retire aussi la CA de relais du magasin de confiance de chaque utilisateur.
- Révoquez dans la console. Coupez les hôtes en une seule action groupée, qui couvre les machines hors ligne pendant l’étape 2. Révoquer et nettoyer dans la console montre comment.
- Si vous avez livré le certificat de relais de votre organisation, retirez sa confiance à l’échelle de la machine : désaffectez le profil Trusted certificate d’Intune, retirez le profil de configuration Jamf Pro de la portée, ou supprimez le certificat de l’objet de stratégie de groupe. Supprimez ensuite le bundle de votre coffre de secrets.
Les scripts ci-dessous ne se déconnectent pas. La révocation se fait une seule fois, depuis la console, si bien qu’une machine qui ne peut pas joindre la plateforme au moment du retrait est quand même coupée. Les recettes du script de plateforme, de Jamf et d’Ansible gardent le marqueur d’inscription laissé par l’installation, si bien qu’une installation qui atteint encore une machine la saute ; ne supprimez le marqueur que sur une machine que vous inscrirez de nouveau. L’application Win32 fait exception, plus bas.
--yes passe la demande de confirmation. Sans terminal, la désinstallation ne demande rien de toute façon, mais gardez l’option pour que le script se comporte de la même manière quand quelqu’un le lance à la main. openlatch uninstall sort avec 0 quand la désinstallation est faite. Elle sort avec un code non nul avant de toucher quoi que ce soit quand la cible de la purge n’est pas le répertoire propre au client (OL-1300) ou qu’un type d’agent est inconnu, et après avoir commencé quand le client ne peut pas être arrêté ou que le répertoire ne peut pas être supprimé. Transmettez ce code de sortie à l’outil, comme le font les scripts ci-dessous. --json affiche un résumé avec les agents retirés et les éventuels avertissements.
La désinstallation signale aussi à la plateforme que la machine a été désinstallée, quand le client tourne et peut joindre la plateforme. La console ne l’affiche pas encore comme un état : suivez donc l’avancement avec le rapport de l’outil lui-même, puis avec le tableau des hôtes sous licence, où une machine désinstallée ne montre plus de nouvelle activité.
Microsoft Intune
Section intitulée « Microsoft Intune »Lancez le script avec les identifiants de l’utilisateur connecté, comme pour l’installation. Lancé en SYSTEM, il chercherait dans le profil SYSTEM et ne trouverait rien à retirer : le script refuse donc SYSTEM. Il peut être relancé sans risque sur une machine d’où le client est déjà parti.
# Platform script, user context. Runs silently and cannot prompt.if ([Security.Principal.WindowsIdentity]::GetCurrent().IsSystem) { Write-Output "run this script with the logged-on credentials"; exit 1}
$bin = "$env:LOCALAPPDATA\openlatch\bin"$openlatch = "$bin\openlatch.exe"if (-not (Test-Path $openlatch)) { exit 0 }
& $openlatch uninstall --purge --yesif ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
Remove-Item -Recurse -Force $binexit 0$ErrorActionPreference n’arrête pas le script quand une commande native échoue : le script lit donc $LASTEXITCODE et le renvoie, et Intune signale l’échec. Le Path utilisateur garde une entrée pour le répertoire supprimé, que Windows ignore une fois le répertoire disparu.
Le script lance la purge : il retire donc la CA de relais et son entrée dans le magasin de confiance de l’utilisateur. Le profil Trusted certificate est distinct : désaffectez-le une fois qu’aucune machine de ses groupes n’exécute le client.
Pour l’application Win32, utilisez ce script comme le wrapper que lance la Uninstall command de l’application, avec une ligne de plus avant la dernière : supprimez openlatch-enrolled de %LOCALAPPDATA%, car la règle de détection de l’application lit ce fichier et Intune ne considère l’application comme retirée qu’une fois le fichier disparu. Remplacez ensuite l’affectation Required de l’application par Uninstall pour les utilisateurs dont vous faites le retour arrière, pour qu’Intune lance le wrapper et n’installe pas de nouveau l’application.
Jamf Pro
Section intitulée « Jamf Pro »Une stratégie Jamf exécute normalement ses scripts en root, et le client a été installé pour l’utilisateur connecté à la console. Le script trouve donc cet utilisateur et lance la désinstallation en tant que lui, par launchctl asuser et sudo -u, comme l’a fait l’installation. Lancée en root sans cette étape, la désinstallation chercherait dans le répertoire personnel de root et ne trouverait rien à retirer. Si personne n’est connecté, le script se termine en erreur, et la stratégie s’exécute de nouveau au prochain check-in.
#!/bin/zsh# A Jamf policy normally runs as root: remove the client as the console user instead.set -eu
user=$(stat -f%Su /dev/console)if [[ -z "$user" || "$user" == "root" || "$user" == "loginwindow" ]]; then echo "nobody is logged in at the console; the next check-in retries" exit 1fiuid=$(id -u "$user")home=$(dscacheutil -q user -a name "$user" | sed -n 's/^dir: //p')as_user() { launchctl asuser "$uid" sudo -H -u "$user" "$@"; }
bin="$home/.local/bin"if [[ ! -x "$bin/openlatch" ]]; then exit 0; fi
as_user "$bin/openlatch" uninstall --purge --yesas_user rm -f "$bin/openlatch" "$bin/openlatch-hook"set -e arrête le script à la première commande qui échoue, si bien que le journal de la stratégie enregistre le code de sortie de la désinstallation. Définissez Execution Frequency de la stratégie sur Ongoing, déclenchée par Recurring Check-in, pour qu’une machine dont l’utilisateur n’était pas connecté soit traitée à un check-in ultérieur. Retirez d’abord ces mêmes machines du périmètre de la stratégie d’installation.
La purge retire la CA de relais et son entrée dans le trousseau de session de l’utilisateur de la console. Un profil de configuration au niveau ordinateur qui approuve votre certificat reste jusqu’à ce que vous retiriez les ordinateurs de sa portée.
- name: Remove OpenLatch, as the user who runs the agents hosts: agent_machines become: true become_user: "{{ openlatch_user }}" # Never root. tasks: - name: Purge the client and its local state ansible.builtin.command: "{{ ansible_env.HOME }}/.local/bin/openlatch uninstall --purge --yes" args: removes: "{{ ansible_env.HOME }}/.local/bin/openlatch"
- name: Delete the installed files ansible.builtin.file: path: "{{ ansible_env.HOME }}/.local/bin/{{ item }}" state: absent loop: - openlatch - openlatch-hookLancez le play en tant que l’utilisateur pour qui le client a été installé, comme le fait le play d’installation. L’argument removes passe la purge sur une machine d’où le client est déjà parti, si bien qu’une relance est sans risque. Lancez-le d’abord sur un échantillon de la vague et lisez la sortie des tâches sur ces machines, comme pour l’installation.
La purge retire la CA de relais et son entrée de confiance pour l’utilisateur sous lequel le play s’exécute. Linux n’a pas d’étape de confiance à l’échelle de la machine à défaire.
Conteneurs et intégration continue
Section intitulée « Conteneurs et intégration continue »Il n’y a rien à retirer d’un runner éphémère ou d’un conteneur : le client ne vit que le temps de la tâche. Supprimez l’étape d’installation du pipeline, ou la couche d’installation de l’image, et la tâche suivante s’exécute sans lui. Supprimez la clé avec laquelle les tâches se sont inscrites une fois qu’aucune tâche ne l’utilise plus.
Rien à retirer sur la machine pour le certificat de relais. Supprimez le secret du certificat de relais du pipeline une fois qu’aucune tâche ne l’utilise.
Révoquer et nettoyer dans la console
Section intitulée « Révoquer et nettoyer dans la console »Faites-le une fois les machines désinstallées, dans cet ordre :
| Étape | Que faire | Pourquoi |
|---|---|---|
| 1. Couper les hôtes | Sélectionnez les hôtes dans le tableau des hôtes sous licence, choisissez Remove hosts, puis Cut it off, et confirmez avec Cut off host. Lire les licences et l’usage couvre ce choix | Leurs identifiants cessent de fonctionner à leur prochain appel, y compris sur une machine hors ligne au moment du retrait, et ils cessent de compter comme hôtes sous licence. Un hôte coupé ne revient que si quelqu’un l’inscrit de nouveau |
| 2. Supprimer la clé de la vague | Choisissez Delete sur la clé une fois que sa vague n’a plus besoin d’inscriptions. Gérer les clés d’API couvre la suppression | La clé ne peut qu’inscrire des hôtes. Une machine sur le client actuel détient son propre identifiant d’hôte : supprimer la clé ne déconnecte donc aucune machine |
| 3. Supprimer les agents, si vous en avez besoin | Delete agent, dans le menu d’actions de l’agent. Trouver et lire un agent couvre la suppression | La suppression efface l’agent avec chaque session et chaque événement enregistrés pour lui. Exportez d’abord si vous avez besoin de la fiche |
Pour garder l’historique d’une machine et la laisser revenir plus tard, choisissez Let it come back on its own au lieu de Cut it off : l’hôte cesse de compter dès maintenant et compte de nouveau la prochaine fois qu’il fait un signalement. Désinstallez avant de supprimer un agent : un agent supprimé alors que son client tourne encore revient avec l’événement suivant.
- Retirez le client par la voie qui l’a installé, en tant que l’utilisateur pour qui il a été installé. Une désinstallation lancée en root ou en SYSTEM ne trouve rien à retirer.
- Une suppression complète, c’est
openlatch uninstall --purge, puis les deux fichiers installés. Gardez d’abord une archiveopenlatch doctor --rescue --yesou un export de la console si vous avez besoin des enregistrements. - Un retour arrière sur un parc arrête l’installation, livre la purge, transmet son code de sortie et garde le marqueur d’inscription, pour que la machine ne soit pas inscrite de nouveau.
- Révoquez depuis la console : coupez les hôtes en une seule action groupée, supprimez la clé de la vague, et supprimez les agents en dernier.
- Une simple
openlatch uninstallconserve la CA de relais, toujours approuvée ;--purgela retire avec son entrée de confiance. Un certificat approuvé à l’échelle de la machine reste jusqu’à ce que vous le retiriez dans votre gestion des appareils.