ES
Español
English
Português
    Proyecto Distribución/Software

    Creación de Proyectos / Software

    1. Para crear un proyecto de distribución, ingrese a la vista de Inicio de la consola de administración de ADM y seleccione el módulo Software del menú Encabezado. En la vista de información despliegue la lista Más opciones, Nuevo Proyecto y haga clic en Software.


    Datos Básicos

    2. En la ventana que se habilita en la pestaña General, configure en la sección datos básicos Información como: Nombre y descripción.


    Distribución Paquetes

    3. En la sección Distribución de Paquetes, defina el tipo de sistema operativo sobre el que va a realizar la distribución (Windows, Linux o Mac), seleccione el paquete, o cree un nuevo paquete haciendo clic en Crear paquetes (ver Creación de paquetes de software).


    En las distribuciones de software se pueden seleccionar paquetes creados de tres diferentes acciones:

    • Ejecución: Este tipo de acción consiste en ejecutar un software en los dispositivos. Configuración del comando de instalación silencioso

    • Copia: Este tipo de acción consiste en copiar cualquier tipo de archivo o ejecutable en los dispositivos. Al seleccionar un paquete tipo copia en la configuración del proyecto de distribución indique la ruta en la que se desea guardar.

    ⚐ Nota: Para los sistemas operativos Linux y Mac no es posible usar variables de entorno como en Windows (%TEMP%, %USERPROFILE%); se debe ingresar la ruta exacta en la cual quiere copiar el archivo.

    • Llaves de registro: Este tipo de acción consiste en crear, actualizar o eliminar llaves de registro en los dispositivos. Al distribuir la llave de registro el agente abre el archivo y realiza la acción correspondiente.


    El agente de ADM para sistemas Windows está compilado en formato x86 (32 bits) para garantizar la compatibilidad en equipos de 64 o 32 bits. Por ello, algunas distribuciones de llaves de registro o ejecución de archivos con extensión (.BAT), por defecto, se podrán comportar de manera diferente en entornos de 64 bits.

    Para asegurar un comportamiento consistente, si el script (.bat) debe realizar modificaciones específicas en el registro o ejecutar comandos que dependen del contexto de arquitectura (32 bits vs 64 bits), puede ampliar el .bat con secciones que contemplen la ruta y el registro adecuados.

    Vista de registro de 64 bits (HKLM\SOFTWARE) o la vista de 32 bits (HKLM\SOFTWARE\Wow6432Node) ayuda a evitar errores de redirección, para esto debe considerar el manejo adicional de %SystemRoot% y Sysnative en sus scripts.

    1) %SystemRoot%

    Permite que el resto de la ruta sea independiente de la letra de unidad o la configuración específica de cada máquina. Al usar %SystemRoot, se garantiza que se haga referencia al registro de Windows desde la ubicación correcta del sistema.

    2) Sysnative

    Garantiza que las modificaciones se apliquen en la vista de registro correspondiente (de 64 bits)

    Ejemplo:

    • Cambio de registro 64 Bits
    @echo off
    %SystemRoot%\Sysnative\reg.exe ADD "HKLM\SOFTWARE\Example\v1.0" /v ExampleValue /t REG_DWORD /d 1 /f
    echo.
    echo Las claves de registro (vista de 64 bits) se agregaron correctamente.
    


    • Cambio de registro 32 Bits
    @echo off
    %SystemRoot%\reg.exe ADD "HKLM\SOFTWARE\Wow6432Node\Example\v1.0" /v ExampleValue /t REG_DWORD /d 1 /f
    echo.
    echo Las claves de registro (vista de 32 bits) se agregaron correctamente.
    



    Distribución de paquetes PowerShell (.PS1)

    Al distribuir un paquete de tipo Ejecución con extensión .PS1, el agente de ADM ejecuta el script con la siguiente estructura, donde la Línea de comandos de instalación configurada en el paquete se envía como los parámetros del script (ver Comando para paquetes PowerShell):

    powershell.exe -Noprofile -NonInteractive -ExecutionPolicy Bypass -File "<ruta del script>" <parámetros configurados en el paquete>
    

    Diferencias entre la ejecución local y la ejecución mediante ADM

    Es común que un script .ps1 funcione correctamente al probarlo de forma manual en el equipo, pero presente fallas o un comportamiento distinto al ejecutarse a través de ADM, por los parámetros con los que el agente invoca PowerShell:

    • -Noprofile: no se carga el perfil de PowerShell del usuario. Si el script depende de variables, módulos o alias definidos en el perfil, que sí están disponibles al abrir una consola de PowerShell normal, fallará solo durante la distribución.
    • -NonInteractive: cualquier instrucción que requiera una respuesta del usuario bloqueará o detendrá la ejecución (ver tabla de cmdlets en Configuración del comando de instalación silencioso).
    • -ExecutionPolicy Bypass: la política de ejecución de PowerShell configurada localmente en el equipo no es la causa de una falla al distribuir mediante ADM, ya que el agente siempre la omite de forma explícita.
    • Arquitectura de 32 bits: el agente de ADM para Windows es un proceso de 32 bits y ejecuta la versión de 32 bits de PowerShell (%SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe), incluso en equipos de 64 bits. Si el script requiere módulos, rutas del registro o componentes disponibles únicamente en la versión de 64 bits de PowerShell, el comportamiento será distinto al de una consola de PowerShell de 64 bits abierta manualmente.

    ⚐ Nota: Para validar un script antes de distribuirlo, ejecútelo localmente con la misma versión de PowerShell (32 bits) que usa el agente: %SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -Noprofile -NonInteractive -ExecutionPolicy Bypass -File "<ruta del script>" <parámetros>. Esto reproduce de forma fiel el comportamiento de la distribución por ADM.

    ⚐ Nota: Si el script requiere componentes disponibles únicamente en la versión de 64 bits de PowerShell, puede relanzarse a sí mismo bajo la ruta Sysnative para evitar la redirección de WOW64, de forma análoga a la usada en los ejemplos de .bat de esta misma sección:

    if ($env:PROCESSOR_ARCHITEW6432 -and [IntPtr]::Size -eq 4) {
        & "$env:WINDIR\Sysnative\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -NonInteractive -ExecutionPolicy Bypass -File "$PSCommandPath" @args
        exit $LASTEXITCODE
    }
    # A partir de aquí el script continúa ejecutándose en PowerShell de 64 bits
    

    Si lo único que necesita el script es leer el registro de 64 bits (sin requerir módulos de 64 bits), puede evitar el relanzamiento accediendo directamente a esa vista: [Microsoft.Win32.RegistryKey]::OpenBaseKey('LocalMachine', [Microsoft.Win32.RegistryView]::Registry64).

    Prerrequisitos y consideraciones

    • El comando se ejecuta en el contexto de las credenciales configuradas en el proyecto de distribución (ver sección Credenciales de este artículo).
    • Los parámetros del script se configuran en el mismo campo de Línea de comandos de instalación usado para los demás tipos de paquete de acción Ejecución (ver Líneas de Comando).

    Ejemplo práctico

    Script de ejemplo (instalar_configuracion.ps1):

    param(
        [string]$NombreUsuario,
        [string]$Modo = "Instalacion"
    )
    
    Write-Output "Ejecutando en modo: $Modo para el usuario: $NombreUsuario"
    # Lógica del script
    

    Línea de comandos de instalación configurada en el paquete:

    -NombreUsuario "svc_adm" -Modo "Silencioso"
    

    Comando final que ejecuta el agente en el dispositivo:

    powershell.exe -Noprofile -NonInteractive -ExecutionPolicy Bypass -File "C:\ruta\instalar_configuracion.ps1" -NombreUsuario "svc_adm" -Modo "Silencioso"
    



    Credenciales

    4. En la sección Credenciales, puede buscar credenciales ya creadas (Credenciales), o bien puede agregar una nueva haciendo clic en Crear credencial.


    ⚐ Nota: Las credenciales deben crearse con la siguiente estructura: Dominio\Usuario. Si las credenciales no incluyen un dominio, ingrese únicamente el usuario y se utilizará internamente el hostname de la máquina. Los comandos se ejecutan en el contexto de seguridad del usuario y con la carga del perfil correspondiente. Si el usuario no tiene permisos para realizar alguna acción requerida por el comando, este fallará.

    Para los sistemas operativos Linux y Mac la sección está bloqueada, las distribuciones de tipo software siempre se ejecutarán con los privilegios más altos.


    Notificaciones

    5. En la sección Notificaciones, programe las notificaciones a los usuarios que requiera.


    Grupos Dispositivos

    6. Al terminar de configurar la sección de General, haga clic en Guardar para confirmar los cambios realizados; en la Vista de información del proyecto, se habilitan Grupo Dispositivos y Ejecuciones.

    7. En la vista del proyecto seleccione la pestaña Grupos y Dispositivos y en la lista Más opciones seleccione Agregar dispositivos.


    8. Seleccione los dispositivos donde desea hacer la distribución y haga clic en Aplicar.


    Ejecuciones

    9. En la vista del proyecto seleccione la pestaña Ejecuciones donde podrá visualizar y generar la distribución de agente o de software. Para ello haga clic en el botón Nueva ejecución.


    10. Se habilita la ventana respectiva donde podrá agregar un nombre y programar la nueva ejecución.


    11. Al guardar, la ejecución nueva se genera en estado programada. En la pestaña Información visualizará un resumen del estado del paquete de ejecución.


    12. En la pestaña Actividad se visualizará la información general de la distribución y el progreso de la ejecución de acuerdo a su estado (programada, en ejecución o completada).

    En la vista detalle de proyectos de distribución podrá visualizar el resumen del proceso con el total de ejecuciones, ejecuciones recurrentes y dispositivos alcanzados.

    La siguiente tabla describe los posibles estados de ejecución por dispositivo dentro del proyecto de distribución.

    Estado Explicación
    ⬜ Sin notificación Aún no se ha notificado al dispositivo sobre la ejecución. El tiempo de espera depende de la frecuencia de sincronización configurada en el perfil del agente.
    🟨 Pendiente de ejecutar El dispositivo está pendiente por ejecutar la instalación.
    🟧 En ejecución La ejecución en el dispositivo se encuentra en curso.
    🟩 Ejecutado La ejecución en el dispositivo ha finalizado correctamente.
    🟥 Ejecutado con errores La ejecución en el dispositivo finalizó con errores. Es necesario consultar el registro detallado de la ejecución para identificar la falla.
    🟪 Interrumpido La ejecución en el dispositivo fue interrumpida por el sistema.
    🟩 Ejecutado La ejecución en el dispositivo ha finalizado correctamente.
    ⬛ Cancelado La ejecución en el dispositivo fue cancelada, es posible que sea por intervención del usuario o expiración del tiempo de espera al entrar en estado “sin notificar”.

    Para ver el historial de la ejecución, haga clic en el ícono   .   Se abrirá una ventana que muestra la hora y etapa de la ejecución y los posibles mensajes de salida.

    La siguiente tabla describe los posibles estados por paquete en la ejecución del dispositivo dentro del proyecto de distribución.

    Estado Explicación
    En espera de descarga El paquete está en espera para ser descargado.
    Descargando El paquete se está descargando.
    Descargado El paquete fue descargado correctamente.
    Error de descarga Ocurrió un error durante la descarga del paquete.
    Máximo de errores de descarga El paquete alcanzó el máximo de intentos fallidos de descarga.
    En espera de ejecución El paquete está en espera para su ejecución.
    Ejecutando El paquete se encuentra en ejecución.
    Ejecutado El paquete fue ejecutado.
    Ejecutado con errores El paquete fue ejecutado con errores. Esto puede ocurrir por varios motivos, por ejemplo, falta de permisos, archivos bloqueados por estar en uso, conflictos con versiones previas del software o si el software ya estaba presente pero el instalador no pudo procesarlo correctamente.
    Interrumpido La instalación del paquete fue interrumpida.
    Cancelado La instalación del paquete fue cancelada.
    Omitido El paquete se descargó pero no fue ejecutado porque el sistema confirmó que el software ya existe en el equipo y no fue necesario realizar ninguna acción.

    El menú desplegable Más opciones presenta dos acciones disponibles:

    • Detener Ejecución: si la ejecución está vigente, interrumpe el proceso de distribución.
    • Eliminar Ejecución: remueve del listado la ejecución seleccionada.


    ⚐ Nota: Las ejecuciones en curso pueden presentar los estados de “en ejecución”, “programada” o “completada”, estos estados pueden ser monitoreados en la solución y de esta manera, ver cuántos dispositivos ya fueron alcanzados en el proyecto de distribución.