# Sincronizar nombre del dispositivo

> Script macOS que lee el ComputerName local y actualiza el nombre de visualización del dispositivo en el panel de Applivery mediante la API, manteniendo sincronizados todos los nombres de dispositivos.

Source: https://docs.applivery.com/es/device-management/apple/macos/scripts/sync-device-name/  •  Last updated: 2026-04-18

**Answers:** ¿Qué hace este script? · ¿Por qué debería sincronizar el nombre del ordenador macOS con Applivery? · ¿Cuáles son los requisitos para ejecutar este script? · ¿Cómo obtengo el ID de organización de Applivery? · ¿Cómo obtengo un token Bearer para la API de Applivery? · ¿Cómo configuro el script después de crearlo en Applivery? · ¿Con qué frecuencia debería ejecutar este script? · ¿Dónde puedo encontrar el código fuente completo de este script?

**Key topics:** gestión de dispositivos, automatización, scripting, Applivery, MDM, Administradores TI

---

**TL;DR:** Automatiza tareas repetitivas en dispositivos gestionados usando scripts en Applivery para una gestión de dispositivos eficiente.

Cada Mac tiene un nombre de ordenador local — el que el usuario estableció durante la configuración inicial, o que cambió más tarde por algo personal como "MacBook de Juan". En el panel de Applivery, sin embargo, los dispositivos suelen mostrar el nombre genérico asignado en el momento de la inscripción. A escala, esto hace que identificar máquinas específicas por nombre sea casi imposible: acabas con una lista de entradas `MacBook-Pro-7` sin forma fácil de saber a quién pertenece cada una.

Este script cierra esa brecha. Lee el `ComputerName` local de cada Mac y lo actualiza en el panel de Applivery mediante la API, manteniendo ambos sincronizados. Ejecútalo periódicamente y podrás identificar siempre cualquier dispositivo de un vistazo.

:::warning
El agente de Applivery para macOS debe estar instalado y activo en el dispositivo. Obtén más información sobre el [agente macOS](https://docs.applivery.com/es/device-management/apple/apple-policies/agent/#agent-app-for-macos-devices).
:::

## Requisitos

| Requisito | Detalle |
| --- | --- |
| Plataforma | macOS |
| Privilegios de ejecución | Root (predeterminado en Applivery) |
| Acceso a internet | El dispositivo debe poder acceder a `api.applivery.io` |
| Token Bearer | Un token válido de una cuenta de servicio con rol de Editor o superior |
| ID de organización | El slug/ID de tu organización de Applivery |

* * *

## Antes de empezar — Obtén tu token Bearer y tu ID de organización

**ID de organización** — Tu ID de organización es el slug visible en la URL del panel de Applivery (por ejemplo, `mi-empresa`).

**Token Bearer (mediante cuenta de servicio)** — Applivery usa [cuentas de servicio](https://docs.applivery.com/es/platform/api/service-accounts/) para representar usuarios no humanos que pueden acceder a la API de administración de Applivery. Cada cuenta de servicio tiene un token Bearer asociado que se usa como cabecera `Authorization` en las llamadas a la API.

* * *

## Configuración

**Crear el script**

Una vez en el [**panel de Applivery**](https://dashboard.applivery.io/), sigue los pasos descritos [aquí](https://docs.applivery.com/es/device-management/apple/macos/scripts/index) para crear un script. Pega el siguiente script en el editor, reemplazando los valores de marcador de posición que se muestran en la tabla a continuación.

| Variable | Descripción | Ejemplo |
| --- | --- | --- |
| `ID_ORG` | Tu slug/ID de organización de Applivery | `mi-empresa` |
| `API_TOKEN` | Token Bearer de una cuenta de servicio con rol de Editor o superior | `wfkj2Gi...` |

Selecciona **Bash** como lenguaje, dale un nombre descriptivo (por ejemplo, `Sincronizar nombre del dispositivo`) y haz clic en **Crear**.

```bash
#!/bin/bash

# ---
# Title: Sync Device Name with Applivery API
# Description: Automatically updates the Device Display Name in Applivery Dashboard to match the local macOS ComputerName.
# Author: Applivery
# Version: 1.0.0
# ---

# ==========================================
# CONFIGURATION
# ==========================================
ID_ORG="your-org-id"
API_TOKEN="your-api-token"
BASE_URL="https://api.applivery.io/v1/organizations/$ID_ORG/mdm/apple/enterprise/devices"

# ==========================================
# 1. LOCAL DATA GATHERING
# ==========================================
SERIAL_NUMBER=$(system_profiler SPHardwareDataType | grep "Serial Number" | awk '{print $4}')
NEW_DEVICE_NAME=$(scutil --get ComputerName)

if [ -z "$NEW_DEVICE_NAME" ]; then
  echo "Error: Local ComputerName is empty. Please set a hostname on the Mac."
  exit 1
fi

echo "Syncing Device Name for Serial: $SERIAL_NUMBER"
echo "Target Name: $NEW_DEVICE_NAME"

# ==========================================
# 2. API INTERACTION
# ==========================================

# GET Device Info to find the internal Device ID
response=$(curl -s -X GET "$BASE_URL/$SERIAL_NUMBER" \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Content-Type: application/json")

if echo "$response" | grep -q '"admDevice"'; then
  DEVICE_ID=$(echo "$response" | grep -o '"admDevice":"[^"]*"' | sed 's/"admDevice":"\([^"]*\)"/\1/')

  if [ -n "$DEVICE_ID" ]; then
    echo "Found internal DeviceID: $DEVICE_ID"

    update_response=$(curl -s -X PUT "$BASE_URL/$DEVICE_ID" \
      -H "Authorization: Bearer $API_TOKEN" \
      -H "Content-Type: application/json" \
      -d "{\"displayName\": \"$NEW_DEVICE_NAME\"}")

    if echo "$update_response" | grep -q '"status":200' || echo "$update_response" | grep -q '"displayName"'; then
      echo "SUCCESS: Display name updated to: $NEW_DEVICE_NAME"
    else
      echo "FAILURE: Error updating name: $update_response"
    fi
  else
    echo "ERROR: Could not find DeviceID for Serial Number $SERIAL_NUMBER"
  fi
else
  echo "ERROR: Could not fetch device info from API. Check Token and Org ID."
  echo "Response: $response"
fi

exit 0
```

**Asignar el script a un dispositivo**

Ahora, navega a cualquiera de tus **Dispositivos**, selecciona la pestaña **Scripts**, haz clic en el botón **\+ Asignar Script** y selecciona el que acabas de crear.

:::info
También puedes asignar scripts a Políticas. Para ello, navega a la sección **Políticas**, selecciona la política deseada y haz clic en la pestaña **Scripts**. El proceso será el mismo que al asignarlo directamente a un dispositivo individual.
:::

**Elegir el método de ejecución**

| Método | Comportamiento | ¿Recomendado? |
| --- | --- | --- |
| **Once** | Se ejecuta una vez por dispositivo. | ✅ Útil para establecer el nombre de visualización desde el primer día de inscripción. |
| **Loop** | Se ejecuta repetidamente en el intervalo configurado (15m, 1h, 6h, 1d, 7d). | ✅ Recomendado para sincronización continua — mantiene el panel actualizado a medida que los usuarios renombran sus equipos. |
| **On demand** | Solo se ejecuta cuando se activa manualmente. | ✅ Útil para una actualización puntual activada por TI. |

La configuración recomendada es usar **Loop** con un intervalo semanal (`7d`) para mantener el panel sincronizado sin generar tráfico API innecesario, combinado con **Once** durante la inscripción para establecer el nombre desde el primer día.

Este script no requiere ningún argumento. El nombre del dispositivo y el número de serie se obtienen automáticamente del sistema local. Haz clic en **Añadir** para guardar la asignación.

* * *

## Disponible en GitHub

Este script es parte del [Repositorio público de scripts de Applivery](https://github.com/applivery/applivery-mdm-scripts/tree/main/Apple/Sync%20Device%20Name%20%28API%29). El código fuente completo está disponible allí para revisión, adaptación y contribución.
