Favicon

You are here: Home > Gestión de Dispositivos > Apple > macOS > Políticas > Automatizar la creación de la cuenta de administrador

Automatiza la creación y gestión de cuentas de administrador macOS con Applivery

Automatiza la creación y gestión de cuentas de administrador locales en dispositivos macOS usando scripts y políticas de Applivery.

5 min read

TL;DR

Automatiza la creación y gestión de cuentas de administrador macOS usando scripts de Applivery para un aprovisionamiento de dispositivos ágil y una mayor seguridad.

Gestionar las cuentas de usuario en dispositivos macOS es una parte esencial de la administración de dispositivos empresariales. Con Applivery, los equipos TI pueden automatizar la creación de cuentas de administrador locales, actualizar credenciales y opcionalmente ocultar perfiles de usuario — garantizando una configuración consistente, una mayor seguridad y un esfuerzo manual reducido en toda la flota macOS.

Note

La app del agente de Applivery para macOS debe estar activada en el dispositivo. Puedes obtener más información sobre ella aquí.

1
Crea tu script

Para empezar, aprende a crear scripts siguiendo este enlace.

Asigna un nombre descriptivo al script y copia y pega el siguiente script en el editor, luego ajusta los parámetros necesarios:

  • USERNAME (username): El nombre corto de la cuenta a crear.

  • FULLNAME (Full Name): El nombre completo de visualización del usuario.

  • PASSWORD (password): La contraseña que se asignará al usuario.

  • HIDDEN (no): Cambia a yes si quieres que la cuenta de usuario quede oculta en la ventana de inicio de sesión.

#!/bin/sh
export PATH=/usr/bin:/bin:/usr/sbin:/sbin

# User details
USERNAME="username"
FULLNAME="Full Name"
PASSWORD="password"
HIDDEN="no" # Change to "yes" if you want the user to be hidden

# Function to check if user exists
check_user_exists() {
dscl . -list /Users | grep -q "^$USERNAME
#!/bin/sh
export PATH=/usr/bin:/bin:/usr/sbin:/sbin

# User details
USERNAME="username"
FULLNAME="Full Name"
PASSWORD="password"
HIDDEN="no" # Change to "yes" if you want the user to be hidden

# Function to check if user exists
check_user_exists() {
dscl . -list /Users | grep -q "^$USERNAME
#!/bin/sh
export PATH=/usr/bin:/bin:/usr/sbin:/sbin

# User details
USERNAME="username"
FULLNAME="Full Name"
PASSWORD="password"
HIDDEN="no" # Change to "yes" if you want the user to be hidden

# Function to check if user exists
check_user_exists() {
dscl . -list /Users | grep -q "^$USERNAME
#!/bin/sh
export PATH=/usr/bin:/bin:/usr/sbin:/sbin

# User details
USERNAME="username"
FULLNAME="Full Name"
PASSWORD="password"
HIDDEN="no" # Change to "yes" if you want the user to be hidden

# Function to check if user exists
check_user_exists() {
dscl . -list /Users | grep -q "^$USERNAME
#!/bin/sh
export PATH=/usr/bin:/bin:/usr/sbin:/sbin

# User details
USERNAME="username"
FULLNAME="Full Name"
PASSWORD="password"
HIDDEN="no" # Change to "yes" if you want the user to be hidden

# Function to check if user exists
check_user_exists() {
dscl . -list /Users | grep -q "^$USERNAME
#!/bin/sh
export PATH=/usr/bin:/bin:/usr/sbin:/sbin

# User details
USERNAME="username"
FULLNAME="Full Name"
PASSWORD="password"
HIDDEN="no" # Change to "yes" if you want the user to be hidden

# Function to check if user exists
check_user_exists() {
dscl . -list /Users | grep -q "^$USERNAME
#!/bin/sh
export PATH=/usr/bin:/bin:/usr/sbin:/sbin

# User details
USERNAME="username"
FULLNAME="Full Name"
PASSWORD="password"
HIDDEN="no" # Change to "yes" if you want the user to be hidden

# Function to check if user exists
check_user_exists() {
dscl . -list /Users | grep -q "^$USERNAME
#!/bin/sh
export PATH=/usr/bin:/bin:/usr/sbin:/sbin

# User details
USERNAME="username"
FULLNAME="Full Name"
PASSWORD="password"
HIDDEN="no" # Change to "yes" if you want the user to be hidden

# Function to check if user exists
check_user_exists() {
dscl . -list /Users | grep -q "^$USERNAME
#!/bin/sh
export PATH=/usr/bin:/bin:/usr/sbin:/sbin

# User details
USERNAME="username"
FULLNAME="Full Name"
PASSWORD="password"
HIDDEN="no" # Change to "yes" if you want the user to be hidden

# Function to check if user exists
check_user_exists() {
dscl . -list /Users | grep -q "^$USERNAMEquot;
return $?
}

# Function to check if user is hidden
is_user_hidden() {
dscl . -read /Users/$USERNAME IsHidden 2>/dev/null | grep -q "1"
return $?
}

# Function to hide user
hide_user() {
sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add $USERNAME
sudo chown root:wheel /Library/Preferences/com.apple.loginwindow.plist
}

# Function to unhide user
unhide_user() {
sudo defaults delete /Library/Preferences/com.apple.loginwindow HiddenUsersList
}

# Function to update password
update_password() {
sudo dscl . -passwd /Users/$USERNAME "$PASSWORD"
}

# Check if user exists
if check_user_exists; then
echo "Usuario $USERNAME ya existe."

# Update password automatically
update_password
echo "Contraseña actualizada para $USERNAME"

# Check and update hidden status if needed
current_hidden=$(is_user_hidden && echo "yes" || echo "no")
if [ "$current_hidden" != "$HIDDEN" ]; then
if [ "$HIDDEN" = "yes" ]; then
hide_user
echo "Usuario $USERNAME ha sido ocultado"
else
unhide_user
echo "Usuario $USERNAME ha sido des-ocultado"
fi
fi
else
# Create new user
if [ "$HIDDEN" = "yes" ]; then
HIDDEN_FLAG="-hidden"
else
HIDDEN_FLAG=""
fi

# Create the user with or without the hidden option
sysadminctl -addUser "$USERNAME" -fullName "$FULLNAME" -password "$PASSWORD" -admin $HIDDEN_FLAG
echo "Usuario $USERNAME creado exitosamente"
fi
quot; return $? } # Function to check if user is hidden is_user_hidden() { dscl . -read /Users/$USERNAME IsHidden 2>/dev/null | grep -q "1" return $? } # Function to hide user hide_user() { sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add $USERNAME sudo chown root:wheel /Library/Preferences/com.apple.loginwindow.plist } # Function to unhide user unhide_user() { sudo defaults delete /Library/Preferences/com.apple.loginwindow HiddenUsersList } # Function to update password update_password() { sudo dscl . -passwd /Users/$USERNAME "$PASSWORD" } # Check if user exists if check_user_exists; then echo "Usuario $USERNAME ya existe." # Update password automatically update_password echo "Contraseña actualizada para $USERNAME" # Check and update hidden status if needed current_hidden=$(is_user_hidden && echo "yes" || echo "no") if [ "$current_hidden" != "$HIDDEN" ]; then if [ "$HIDDEN" = "yes" ]; then hide_user echo "Usuario $USERNAME ha sido ocultado" else unhide_user echo "Usuario $USERNAME ha sido des-ocultado" fi fi else # Create new user if [ "$HIDDEN" = "yes" ]; then HIDDEN_FLAG="-hidden" else HIDDEN_FLAG="" fi # Create the user with or without the hidden option sysadminctl -addUser "$USERNAME" -fullName "$FULLNAME" -password "$PASSWORD" -admin $HIDDEN_FLAG echo "Usuario $USERNAME creado exitosamente" fi
quot; return $? } # Function to check if user is hidden is_user_hidden() { dscl . -read /Users/$USERNAME IsHidden 2>/dev/null | grep -q "1" return $? } # Function to hide user hide_user() { sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add $USERNAME sudo chown root:wheel /Library/Preferences/com.apple.loginwindow.plist } # Function to unhide user unhide_user() { sudo defaults delete /Library/Preferences/com.apple.loginwindow HiddenUsersList } # Function to update password update_password() { sudo dscl . -passwd /Users/$USERNAME "$PASSWORD" } # Check if user exists if check_user_exists; then echo "Usuario $USERNAME ya existe." # Update password automatically update_password echo "Contraseña actualizada para $USERNAME" # Check and update hidden status if needed current_hidden=$(is_user_hidden && echo "yes" || echo "no") if [ "$current_hidden" != "$HIDDEN" ]; then if [ "$HIDDEN" = "yes" ]; then hide_user echo "Usuario $USERNAME ha sido ocultado" else unhide_user echo "Usuario $USERNAME ha sido des-ocultado" fi fi else # Create new user if [ "$HIDDEN" = "yes" ]; then HIDDEN_FLAG="-hidden" else HIDDEN_FLAG="" fi # Create the user with or without the hidden option sysadminctl -addUser "$USERNAME" -fullName "$FULLNAME" -password "$PASSWORD" -admin $HIDDEN_FLAG echo "Usuario $USERNAME creado exitosamente" fi
quot; return $? } # Function to check if user is hidden is_user_hidden() { dscl . -read /Users/$USERNAME IsHidden 2>/dev/null | grep -q "1" return $? } # Function to hide user hide_user() { sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add $USERNAME sudo chown root:wheel /Library/Preferences/com.apple.loginwindow.plist } # Function to unhide user unhide_user() { sudo defaults delete /Library/Preferences/com.apple.loginwindow HiddenUsersList } # Function to update password update_password() { sudo dscl . -passwd /Users/$USERNAME "$PASSWORD" } # Check if user exists if check_user_exists; then echo "Usuario $USERNAME ya existe." # Update password automatically update_password echo "Contraseña actualizada para $USERNAME" # Check and update hidden status if needed current_hidden=$(is_user_hidden && echo "yes" || echo "no") if [ "$current_hidden" != "$HIDDEN" ]; then if [ "$HIDDEN" = "yes" ]; then hide_user echo "Usuario $USERNAME ha sido ocultado" else unhide_user echo "Usuario $USERNAME ha sido des-ocultado" fi fi else # Create new user if [ "$HIDDEN" = "yes" ]; then HIDDEN_FLAG="-hidden" else HIDDEN_FLAG="" fi # Create the user with or without the hidden option sysadminctl -addUser "$USERNAME" -fullName "$FULLNAME" -password "$PASSWORD" -admin $HIDDEN_FLAG echo "Usuario $USERNAME creado exitosamente" fi
quot; return $? } # Function to check if user is hidden is_user_hidden() { dscl . -read /Users/$USERNAME IsHidden 2>/dev/null | grep -q "1" return $? } # Function to hide user hide_user() { sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add $USERNAME sudo chown root:wheel /Library/Preferences/com.apple.loginwindow.plist } # Function to unhide user unhide_user() { sudo defaults delete /Library/Preferences/com.apple.loginwindow HiddenUsersList } # Function to update password update_password() { sudo dscl . -passwd /Users/$USERNAME "$PASSWORD" } # Check if user exists if check_user_exists; then echo "Usuario $USERNAME ya existe." # Update password automatically update_password echo "Contraseña actualizada para $USERNAME" # Check and update hidden status if needed current_hidden=$(is_user_hidden && echo "yes" || echo "no") if [ "$current_hidden" != "$HIDDEN" ]; then if [ "$HIDDEN" = "yes" ]; then hide_user echo "Usuario $USERNAME ha sido ocultado" else unhide_user echo "Usuario $USERNAME ha sido des-ocultado" fi fi else # Create new user if [ "$HIDDEN" = "yes" ]; then HIDDEN_FLAG="-hidden" else HIDDEN_FLAG="" fi # Create the user with or without the hidden option sysadminctl -addUser "$USERNAME" -fullName "$FULLNAME" -password "$PASSWORD" -admin $HIDDEN_FLAG echo "Usuario $USERNAME creado exitosamente" fi
quot; return $? } # Function to check if user is hidden is_user_hidden() { dscl . -read /Users/$USERNAME IsHidden 2>/dev/null | grep -q "1" return $? } # Function to hide user hide_user() { sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add $USERNAME sudo chown root:wheel /Library/Preferences/com.apple.loginwindow.plist } # Function to unhide user unhide_user() { sudo defaults delete /Library/Preferences/com.apple.loginwindow HiddenUsersList } # Function to update password update_password() { sudo dscl . -passwd /Users/$USERNAME "$PASSWORD" } # Check if user exists if check_user_exists; then echo "Usuario $USERNAME ya existe." # Update password automatically update_password echo "Contraseña actualizada para $USERNAME" # Check and update hidden status if needed current_hidden=$(is_user_hidden && echo "yes" || echo "no") if [ "$current_hidden" != "$HIDDEN" ]; then if [ "$HIDDEN" = "yes" ]; then hide_user echo "Usuario $USERNAME ha sido ocultado" else unhide_user echo "Usuario $USERNAME ha sido des-ocultado" fi fi else # Create new user if [ "$HIDDEN" = "yes" ]; then HIDDEN_FLAG="-hidden" else HIDDEN_FLAG="" fi # Create the user with or without the hidden option sysadminctl -addUser "$USERNAME" -fullName "$FULLNAME" -password "$PASSWORD" -admin $HIDDEN_FLAG echo "Usuario $USERNAME creado exitosamente" fi
quot; return $? } # Function to check if user is hidden is_user_hidden() { dscl . -read /Users/$USERNAME IsHidden 2>/dev/null | grep -q "1" return $? } # Function to hide user hide_user() { sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add $USERNAME sudo chown root:wheel /Library/Preferences/com.apple.loginwindow.plist } # Function to unhide user unhide_user() { sudo defaults delete /Library/Preferences/com.apple.loginwindow HiddenUsersList } # Function to update password update_password() { sudo dscl . -passwd /Users/$USERNAME "$PASSWORD" } # Check if user exists if check_user_exists; then echo "Usuario $USERNAME ya existe." # Update password automatically update_password echo "Contraseña actualizada para $USERNAME" # Check and update hidden status if needed current_hidden=$(is_user_hidden && echo "yes" || echo "no") if [ "$current_hidden" != "$HIDDEN" ]; then if [ "$HIDDEN" = "yes" ]; then hide_user echo "Usuario $USERNAME ha sido ocultado" else unhide_user echo "Usuario $USERNAME ha sido des-ocultado" fi fi else # Create new user if [ "$HIDDEN" = "yes" ]; then HIDDEN_FLAG="-hidden" else HIDDEN_FLAG="" fi # Create the user with or without the hidden option sysadminctl -addUser "$USERNAME" -fullName "$FULLNAME" -password "$PASSWORD" -admin $HIDDEN_FLAG echo "Usuario $USERNAME creado exitosamente" fi
quot; return $? } # Function to check if user is hidden is_user_hidden() { dscl . -read /Users/$USERNAME IsHidden 2>/dev/null | grep -q "1" return $? } # Function to hide user hide_user() { sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add $USERNAME sudo chown root:wheel /Library/Preferences/com.apple.loginwindow.plist } # Function to unhide user unhide_user() { sudo defaults delete /Library/Preferences/com.apple.loginwindow HiddenUsersList } # Function to update password update_password() { sudo dscl . -passwd /Users/$USERNAME "$PASSWORD" } # Check if user exists if check_user_exists; then echo "Usuario $USERNAME ya existe." # Update password automatically update_password echo "Contraseña actualizada para $USERNAME" # Check and update hidden status if needed current_hidden=$(is_user_hidden && echo "yes" || echo "no") if [ "$current_hidden" != "$HIDDEN" ]; then if [ "$HIDDEN" = "yes" ]; then hide_user echo "Usuario $USERNAME ha sido ocultado" else unhide_user echo "Usuario $USERNAME ha sido des-ocultado" fi fi else # Create new user if [ "$HIDDEN" = "yes" ]; then HIDDEN_FLAG="-hidden" else HIDDEN_FLAG="" fi # Create the user with or without the hidden option sysadminctl -addUser "$USERNAME" -fullName "$FULLNAME" -password "$PASSWORD" -admin $HIDDEN_FLAG echo "Usuario $USERNAME creado exitosamente" fi
quot; return $? } # Function to check if user is hidden is_user_hidden() { dscl . -read /Users/$USERNAME IsHidden 2>/dev/null | grep -q "1" return $? } # Function to hide user hide_user() { sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add $USERNAME sudo chown root:wheel /Library/Preferences/com.apple.loginwindow.plist } # Function to unhide user unhide_user() { sudo defaults delete /Library/Preferences/com.apple.loginwindow HiddenUsersList } # Function to update password update_password() { sudo dscl . -passwd /Users/$USERNAME "$PASSWORD" } # Check if user exists if check_user_exists; then echo "Usuario $USERNAME ya existe." # Update password automatically update_password echo "Contraseña actualizada para $USERNAME" # Check and update hidden status if needed current_hidden=$(is_user_hidden && echo "yes" || echo "no") if [ "$current_hidden" != "$HIDDEN" ]; then if [ "$HIDDEN" = "yes" ]; then hide_user echo "Usuario $USERNAME ha sido ocultado" else unhide_user echo "Usuario $USERNAME ha sido des-ocultado" fi fi else # Create new user if [ "$HIDDEN" = "yes" ]; then HIDDEN_FLAG="-hidden" else HIDDEN_FLAG="" fi # Create the user with or without the hidden option sysadminctl -addUser "$USERNAME" -fullName "$FULLNAME" -password "$PASSWORD" -admin $HIDDEN_FLAG echo "Usuario $USERNAME creado exitosamente" fi
2
Asignar script a la política

A continuación, dirígete a cualquiera de tus Políticas 1 y selecciona la sección Scripts 2 desde el menú lateral izquierdo. Haz clic en el botón + Añadir Script 3.

add script to policy

A continuación, selecciona el script escribiendo su nombre, elige el método de ejecución y añade los argumentos necesarios.

Dependiendo del método de ejecución seleccionado, el script se ejecutará automáticamente en modo Loop o Once, o puede activarse manualmente desde la sección Acciones dentro del agente de Applivery cuando se configure como On-demand.

actions self service

Este método automatizado para crear usuarios administradores en macOS ayuda a estandarizar el aprovisionamiento de dispositivos y garantiza una postura de seguridad unificada en toda la organización. El script gestiona de forma inteligente tanto la creación de nuevas cuentas como la actualización de las existentes, lo que lo convierte en una herramienta flexible y potente para múltiples escenarios de despliegue.

Aprovechando Applivery y la automatización mediante scripts, los equipos TI pueden gestionar cuentas de administrador de forma eficiente a escala, reducir la carga de trabajo repetitivo y mantener una configuración consistente en todos los dispositivos macOS gestionados. Ya sea para desplegar nuevo hardware o actualizar los despliegues actuales, este flujo de trabajo proporciona una forma fiable, segura y repetible de aprovisionar usuarios administradores en entornos macOS.

Key Takeaways

  • Automatiza la creación y gestión de cuentas de administrador macOS.
  • Mejora la seguridad y la consistencia en los dispositivos macOS.
  • Reduce el esfuerzo manual y agiliza el aprovisionamiento de dispositivos.

Applivery permite a los equipos TI automatizar la creación de cuentas de administrador locales, actualizar credenciales y opcionalmente ocultar perfiles de usuario en dispositivos macOS usando scripts.

El script te permite configurar el nombre de usuario, el nombre completo, la contraseña y si la cuenta de usuario debe ocultarse en la ventana de inicio de sesión.

En el script, cambia el parámetro `HIDDEN` de `no` a `yes` para ocultar la cuenta de usuario en la ventana de inicio de sesión.

Si la cuenta de usuario ya existe, el script actualizará la contraseña y el estado de ocultación si es necesario.

Ve a tus Políticas, selecciona la sección Scripts y añade el script. Elige el método de ejecución (Loop, Once u On-demand).

El script puede ejecutarse en modo Loop, Once u On-demand, dependiendo del método de ejecución seleccionado en la política.

La app agente de Applivery para macOS debe estar activada en el dispositivo para ejecutar scripts. Es necesaria para gestionar las cuentas de usuario.

Si se configura como On-demand, el script puede activarse manualmente desde la sección Acciones dentro del agente de Applivery.

Last updated: April 23, 2026