Desinstalar
Requiere @openlatch/client 0.11.12 o una versión posterior
Usa esta página para retirar el cliente de las máquinas: el portátil de un desarrollador, una oleada de despliegue o todo el parque. El cliente se instala y se ejecuta a nivel de usuario, así que una eliminación se ejecuta máquina por máquina, como el usuario para el que se instaló el cliente. Retíralo por la misma ruta que lo instaló.
| Instalado con | Se retira con |
|---|---|
| La ruta del desarrollador | Retirar el cliente de una sola máquina |
| Un script de plataforma de Intune o una aplicación Win32 | Microsoft Intune |
| Una directiva de Jamf Pro | Jamf Pro |
| Ansible o un paso de pipeline | Ansible |
| Una imagen de contenedor o una tarea de CI | Contenedores e integración continua |
Qué quita una desinstalación de la máquina
Sección titulada «Qué quita una desinstalación de la máquina»Una desinstalación tiene tres niveles. Una marcha atrás en una flota usa normalmente el tercero.
| Nivel | Comando | Qué quita | Qué deja |
|---|---|---|---|
| Desinstalación | openlatch uninstall | La entrada del cliente en la configuración de cada agente, restaurando cada agente como estaba antes de la instalación. El cliente se detiene, y también su arranque automático | El directorio de estado, los binarios, la línea PATH, y la CA de relé, todavía de confianza, así que una reinstalación no muestra ningún diálogo |
| Purga | openlatch uninstall --purge | Lo anterior, más el directorio de estado, con la configuración, los registros locales y los archivos de credenciales cifrados, y la CA de relé con su entrada en el almacén de confianza del usuario | Los binarios, la línea PATH |
| Eliminación completa | La purga y después el borrado de los binarios | Todo lo que colocó la instalación | El marcador de inscripción, si una receta de parque dejó uno |
El cliente nunca retira, en ningún nivel, un certificado de relé en el que tu gestión de dispositivos confía en toda la máquina: retíralo del perfil o del objeto de directiva de grupo que lo instaló, cuando ya ninguna máquina lo necesite.
openlatch uninstall no toca los ajustes que OpenLatch no escribió. Una purga es local a la máquina: borra del disco la credencial de host de la máquina, y la credencial no se revoca en la plataforma. Revocar y limpiar en la consola cubre la revocación.
Antes de desinstalar (opcional)
Sección titulada «Antes de desinstalar (opcional)»Una purga borra los registros locales, y los eventos que la plataforma aún no ha recibido se van con ellos; el cliente te avisa con el número antes de borrarlos. Guarda antes una copia si tu política de retención lo exige.
| Qué guardar | Cómo |
|---|---|
| Los registros locales de una máquina | Ejecuta openlatch doctor --rescue --yes en la máquina. Escribe un archivo ZIP depurado en el directorio actual, o en la ruta indicada con --output |
| La ficha de un agente en la consola | Export as JSON, en el menú de acciones del agente. Encontrar y leer un agente muestra dónde |
| El registro de auditoría | Export en la página Audit Trail, en CSV o JSON. Revisar el registro de auditoría cubre los filtros |
Sin terminal, openlatch doctor --rescue solo construye el archivo cuando se indica --yes, así que mantén la opción en un script.
Retirar el cliente de una sola máquina
Sección titulada «Retirar el cliente de una sola máquina»Usa esta ruta en una máquina en la que puedas abrir un terminal, normalmente una instalación por la ruta del desarrollador. Cierra sesión primero, para que la credencial de host de la máquina se revoque en la plataforma mientras la máquina sigue en línea, y después purga:
openlatch system auth logoutopenlatch uninstall --purgeCerrar sesión solo revoca la credencial de esta máquina. Cuando no se puede llegar a la plataforma, el cliente conserva la credencial para revocarla más tarde, pero la purga la borra, así que la revocación nunca ocurre: en su lugar, corta el host en la consola, como describe Revocar y limpiar en la consola.
Después borra los dos archivos que colocó la instalación:
rm -f "$HOME/.local/bin/openlatch" "$HOME/.local/bin/openlatch-hook"La instalación también añadió una línea PATH a tu perfil de shell, con este comentario en la línea anterior:
# openlatch installerBorra el comentario y la línea que lo sigue, salvo que otras herramientas necesiten que ese directorio esté en el PATH. Deja el propio directorio: otro software puede usarlo.
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\openlatch\bin"El directorio pertenece al cliente, así que puedes borrarlo entero. Quita también su entrada de tu Path de usuario, en Editar las variables de entorno de esta cuenta.
Para desconectar un agente y conservar los demás, openlatch uninstall --agent recibe el tipo de agente. Solo limita la retirada de los hooks: el cliente se detiene igualmente para toda la máquina, de modo que los demás agentes quedan apuntando a un cliente que ya no se ejecuta. Úsalo antes de reinstalar, no para desactivar un solo agente.
Marcha atrás en una flota
Sección titulada «Marcha atrás en una flota»Una marcha atrás en una flota tiene cuatro pasos, en este orden:
- Detén la instalación. Quita la directiva o la asignación de instalación de las máquinas en las que das marcha atrás, para que la herramienta no vuelva a instalar el cliente.
- Retira el cliente. Entrega la purga y el borrado de archivos de abajo con la misma herramienta, como el mismo usuario con el que se ejecutó la instalación. La purga también retira la CA de relé del almacén de confianza de cada usuario.
- Revoca en la consola. Corta los hosts en una sola acción en bloque, que cubre las máquinas que estaban sin conexión durante el paso 2. Revocar y limpiar en la consola muestra cómo.
- Si entregaste el certificado de relé de tu organización, retira su confianza en toda la máquina: desasigna el perfil Trusted certificate de Intune, saca el perfil de configuración de Jamf Pro del ámbito, o borra el certificado del objeto de directiva de grupo. Después borra el bundle de tu almacén de secretos.
Los scripts de abajo no cierran sesión. La revocación se hace una sola vez, desde la consola, así que una máquina que no puede llegar a la plataforma en el momento de la eliminación queda cortada igualmente. Las recetas del script de plataforma, de Jamf y de Ansible conservan el marcador de inscripción que dejó la instalación, así que una instalación que todavía llegue a una máquina la omite; borra el marcador solo en una máquina que vayas a volver a inscribir. La aplicación Win32 es la excepción, más abajo.
--yes omite la petición de confirmación. Sin terminal, la desinstalación no pregunta de todos modos, pero mantén la opción para que el script se comporte igual cuando alguien lo ejecute a mano. openlatch uninstall termina con 0 cuando la eliminación está hecha. Termina con un código distinto de cero antes de tocar nada cuando el destino de la purga no es el directorio propio del cliente (OL-1300) o un tipo de agente es desconocido, y después de empezar cuando el cliente no se puede detener o el directorio no se puede borrar. Devuelve ese código de salida a la herramienta, como hacen los scripts de abajo. --json imprime un resumen con los agentes retirados y los avisos que haya.
La desinstalación también informa a la plataforma de que la máquina se desinstaló, cuando el cliente se está ejecutando y puede llegar a la plataforma. La consola todavía no lo muestra como un estado, así que sigue el avance con el informe de la propia herramienta y después con la tabla de hosts con licencia, donde una máquina desinstalada deja de mostrar actividad nueva.
Microsoft Intune
Sección titulada «Microsoft Intune»Ejecuta el script con las credenciales del usuario con sesión iniciada, como en la instalación. Ejecutado como SYSTEM, buscaría en el perfil de SYSTEM y no encontraría nada que retirar, así que el script rechaza SYSTEM. Se puede volver a ejecutar sin riesgo en una máquina de la que el cliente ya no está.
# 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 no detiene el script cuando falla un comando nativo, así que el script lee $LASTEXITCODE y lo devuelve, e Intune informa del fallo. El Path de usuario conserva una entrada para el directorio borrado, que Windows ignora cuando el directorio ya no existe.
El script ejecuta la purga, así que retira la CA de relé y su entrada en el almacén de confianza del usuario. El perfil Trusted certificate es aparte: desasígnalo cuando ninguna máquina de sus grupos ejecute ya el cliente.
Para la aplicación Win32, usa este script como el script contenedor que ejecuta el Uninstall command de la aplicación, con una línea más antes de la última: borra openlatch-enrolled de %LOCALAPPDATA%, porque la regla de detección de la aplicación lee ese archivo e Intune solo considera retirada la aplicación cuando ya no existe. Después sustituye la asignación Required de la aplicación por Uninstall para los usuarios en los que das marcha atrás, para que Intune ejecute el script contenedor y no vuelva a instalar la aplicación.
Jamf Pro
Sección titulada «Jamf Pro»Una directiva de Jamf normalmente ejecuta sus scripts como root, y el cliente se instaló para el usuario con la sesión iniciada en la consola. Por eso el script busca ese usuario y ejecuta la eliminación como él, con launchctl asuser y sudo -u, como hizo la instalación. Ejecutada como root sin ese paso, la eliminación buscaría en el directorio personal de root y no encontraría nada que retirar. Si nadie tiene la sesión iniciada, termina con un error, y la directiva vuelve a ejecutarse en el siguiente 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 detiene el script en el primer comando que falla, así que el registro de la directiva recoge el código de salida de la desinstalación. Pon Execution Frequency de la directiva en Ongoing, con el desencadenador Recurring Check-in, para que una máquina cuyo usuario no tenía la sesión iniciada se retire en un check-in posterior. Quita antes el ámbito de la directiva de instalación de esas mismas máquinas.
La purga retira la CA de relé y su entrada en el llavero de inicio de sesión del usuario de la consola. Un perfil de configuración a nivel de equipo que confía en tu certificado sigue ahí hasta que saques los equipos de su ámbito.
Ansible
Sección titulada «Ansible»- 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-hookEjecuta el play como el usuario para el que se instaló el cliente, como hace el play de instalación. El argumento removes omite la purga en una máquina de la que el cliente ya no está, así que repetirlo es seguro. Ejecútalo primero contra una muestra de la oleada y lee la salida de las tareas en esas máquinas, como en la instalación.
La purga retira la CA de relé y su entrada de confianza para el usuario con el que se ejecuta el play. Linux no tiene ningún paso de confianza en toda la máquina que deshacer.
Contenedores e integración continua
Sección titulada «Contenedores e integración continua»No hay nada que retirar de un ejecutor efímero ni de un contenedor: el cliente solo vive lo que dura la tarea. Borra el paso de instalación del pipeline, o la capa de instalación de la imagen, y la siguiente tarea se ejecuta sin él. Borra la clave con la que se inscribieron las tareas cuando ya ninguna tarea la use.
Nada que retirar en la máquina para el certificado de relé. Borra el secreto del certificado de relé del pipeline cuando ya ninguna tarea lo use.
Revocar y limpiar en la consola
Sección titulada «Revocar y limpiar en la consola»Hazlo cuando las máquinas estén desinstaladas, en este orden:
| Paso | Qué hacer | Por qué |
|---|---|---|
| 1. Cortar los hosts | Selecciona los hosts en la tabla de hosts con licencia, elige Remove hosts, después Cut it off, y confirma con Cut off host. Consultar licencias y uso cubre la elección | Sus credenciales dejan de funcionar en su próxima llamada, también en una máquina que estaba sin conexión en el momento de la eliminación, y dejan de contar como hosts con licencia. Un host que cortas solo vuelve si alguien lo inscribe de nuevo |
| 2. Borrar la clave de la oleada | Elige Delete en la clave cuando su oleada ya no necesite más inscripciones. Gestionar las claves de API cubre el borrado | La clave solo puede inscribir hosts. Una máquina con el cliente actual tiene su propia credencial de host, así que borrar la clave no desconecta ninguna máquina |
| 3. Eliminar los agentes, si necesitas que desaparezcan | Delete agent, en el menú de acciones del agente. Encontrar y leer un agente cubre la eliminación | La eliminación borra el agente con cada sesión y cada evento registrados para él. Exporta primero si necesitas la ficha |
Para conservar el historial de una máquina y dejar que vuelva más tarde, elige Let it come back on its own en lugar de Cut it off: el host deja de contar ahora y vuelve a contar la próxima vez que informe. Desinstala antes de eliminar un agente: un agente eliminado mientras su cliente sigue ejecutándose vuelve con el siguiente evento.
En resumen
Sección titulada «En resumen»- Retira el cliente por la ruta que lo instaló, como el usuario para el que se instaló. Una eliminación ejecutada como root o SYSTEM no encuentra nada que retirar.
- Una eliminación completa es
openlatch uninstall --purgey después los dos archivos instalados. Guarda antes un archivoopenlatch doctor --rescue --yeso una exportación de la consola si necesitas los registros. - Una marcha atrás en una flota detiene la instalación, entrega la purga, informa de su código de salida y conserva el marcador de inscripción para que la máquina no se vuelva a inscribir.
- Revoca desde la consola: corta los hosts en una sola acción en bloque, borra la clave de la oleada y elimina los agentes al final.
- Un
openlatch uninstallsimple conserva la CA de relé, todavía de confianza;--purgela retira con su entrada de confianza. Un certificado de confianza en toda la máquina sigue ahí hasta que lo retires en tu gestión de dispositivos.