ES
Español
English
Português
    Agente de autodiagnóstico

    Esta funcionalidad permite realizar un diagnóstico de los módulos ADM, requeridos para la operación del agente; incluye pruebas de comunicación hacia el sitio de ADM, puertos de comunicación del sitio y locales, verificación de permisos y estado de los servicios necesarios en el equipo, para el funcionamiento de los módulos. Para realizar el proceso de autodiagnóstico realice los siguientes pasos:

    1. Descargue y guarde el paquete Aranda.Diagnostics.ADM.Agent.9.x.x.x.zip en una ruta específica, descomprímalo. Podrá visualizar los archivos: appsettings.json y Aranda.Diagnostics.ADM.Agent.9.x.x.x.exe.



    2. A continuación conozca el alcance de cada sección del archivo appsettings.json para un mejor funcionamiento del agente de autodiagnóstico:


    1. UseInstalledAgentConfiguration: Si se cambia este parámetro a true, el agente de autodiagnóstico tomará los módulos que tenga activos el perfil configurado en el agente de ADM, en caso de que se encuentre instalado previamente. Si se tiene el valor en true y no se tiene el agente instalado, se tomará los módulos activos en la sección Modules.

    2. URI: En este parámetro ingrese la URL o IP del servidor y el nodo hacía donde quiere realizar la prueba de autodiagnóstico.

    3. OutPath: Este parámetro indica la ruta del archivo con los resultados de las pruebas realizadas por el agente de autodiagnóstico. Si lo require, puede cambiarlo a una ruta distinta a la que viene por defecto.

    4. OverwriteOutputFile: Este parámetro controla si el archivo resultante de cada ejecución realizada por el agente de autodiagnóstico, se sobreescribirá. Por defecto, viene en true, si se cambia a false se genera un archivo por cada ejecución del agente de autodiagnóstico con la fecha de ejecución en el nombre del archivo.

    5. TimeoutMs: Este parámetro controla el tiempo en milisegundos que espera el agente de autodiagnóstico antes de generar un error por tiempo de espera en las peticiones que se realizan al servidor.

    6. Modules: Este parámetro controla la cantidad de pruebas a realizar a los diferentes módulos que tiene ADM por parte del agente de autodiagnóstico. El módulo de Inventory por defecto viene en true.

    7. RemoteControlConnection: En esta sección se definen los parámetros relacionados a la configuración del Turn Server del control remoto por ARC:

    • Ip: IP o DNS configurada en el servicio del Turn Server.
    • Port: Puerto configurado el servicio del Turn Server.
    • UseSsl: Si el servicio del Turn Server usa SSL se debe cambiar a true.

    Nota: Los módulos de Delivery y Policies no están disponibles para la versión 9.25.0 del agente de autodiagnóstico.

    Nota: En la versión 9.25.0 solo se realizan pruebas correspondientes al control remoto mediante ARC, no se ejecutan pruebas para la funcionalidad de trasferencia de archivos ni control remoto mediante Gateway o el antiguo control remoto por red LAN.


    3. Ejecute como administrador el archivo Aranda.Diagnostics.ADM.Agent.Cli.exe; una vez ejecutado, el utilitario realiza las pruebas de arquitectura, servicios, accesos, permisos y puertos de comunicación.


    4. Una vez finalice el proceso de autodiagnóstico, cierre la ventana presionando cualquier tecla o cerrando manualmente la ventana. El resultado de las pruebas se almacenará en la ruta donde se encuentre el utilitario, en la carpeta reports, se guarda el archivo diagnostics.json y podrá visualizarlo en un editor de texto disponible.

    Archivo resultante


    Explicación de cada prueba realizada por el agente de autodiagnóstico y posibles errores

    A continuación se da el contexto y explicación de cada prueba realizada por la herramienta de autodiagnóstico. Adicionalmente, se explican los posibles errores que se pueden presentar en cada prueba debido a alguna restricción local en firewall, antivirus o problemas de red o falta de alguna configuración en consola:

    1. Verificación de arquitectura del equipo.

    Verificación de arquitectura del sistema operativo y las carpetas de Archivos de programa

    {
      "TestId": "ENV",
      "Group": "Environment",
      "Name": "Environment / Architecture / Admin",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "OSArchitecture": "X64",
        "ProcessArchitecture": "X64",
        "ProgramFiles": "C:\\Program Files",
        "ProgramFilesX86": "C:\\Program Files (x86)",
        "IsElevated": "True"
      }
    }
    

    2. Consulta utilizando el servicio WMI.

    Se realiza una consulta al servicio Instrumental de administración de Windows (Winmgmt) verificando si está habilitado y ejecutándose.

    {
      "TestId": "WMI_WINMGMT",
      "Group": "Environment",
      "Name": "WMI Winmgmt service status",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "ServiceName": "Winmgmt",
        "DisplayName": "Instrumental de administración de Windows",
        "Status": "Running"
      }
    }
    

    Ejemplo de error:

    Este error se presenta por una falla en el servicio Instrumental de administración de Windows (Winmgmt); revise si el servicio se encuentra habilitado e iniciado y no esté bloqueado por una política de dominio.

    3. Consulta utilizando el servicio WMI

    Se realiza una consulta básica solicitando la edición del sistema operativo, la versión y la arquitectura.

    {
      "TestId": "WMI",
      "Group": "Environment",
      "Name": "WMI availability (Win32_OperatingSystem)",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "TimeoutMs": "30000",
        "Query": "SELECT Caption, Version, OSArchitecture FROM Win32_OperatingSystem",
        "OS.Caption": "Microsoft Windows 11 Enterprise",
        "OS.Version": "10.0.26200",
        "OS.OSArchitecture": "64 bits"
      }
    }
    

    Ejemplo de error:

    Las causas más comunes para este error pueden ser:

    • El servicio Instrumental de administración de Windows (Winmgmt) se encuentra habilitado, pero no se tienen permisos sobre el componente de Control WMI, comuníquese con su administrador para asignar los permisos al usuario.

    • Bloqueo a nivel de Firewall para el puerto usado por WMI.

    • Namespace corrupto o inexistente desde el módulo de Control WMI

    • DCOM deshabilitado para el equipo desde el módulo de Servicios de componentes

    Nota: Aunque se recomienda ejecutar el utilitario como administrador, para las pruebas relacionadas con WMI se recomienda validar también la ejecución del utilitario con el usuario final que no sea administrador, especialmente en entornos donde se utilice UAC. Los errores más comunes con el servicio WMI se presentan con usuarios que no pertenecen a un grupo administrador y no tienen los permisos de ejecución.

    4. Verificación de ejecución como administrador.

    Valida si el usuario que ejecuta la herramienta de autodiagnóstico pertenece o no al grupo administrador y si la herramienta se está ejecutando como administrador.

    {
      "TestNumber": 4,
      "TestId": "ENV.ADMIN",
      "Group": "Environment",
      "Name": "Admin permissions (current user)",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "User": "DESKTOP-7SSBSN9\\Administrador",
        "IsInAdministratorsGroup": "True",
        "IsElevated": "True"
      }
    }
    

    Ejemplo de alerta:

    5. Verificación del recurso compartido ADMIN$.

    Se valida en una consulta, si en los recursos compartidos, existe el recurso ADMIN$ que tiene acceso a la ruta C:\Windows o si hay una política de dominio que bloquee el acceso a este recurso.

    {
      "TestId": "Admin$",
      "Group": "Environment",
      "Name": "Share access",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "TargetHost": "DEVICENAME",
        "AdminSharePath": "\\\\DEVICENAME\\Admin$",
        "FileCount": "40"
      }
    }
    

    Ejemplo de error:

    Las causas más comunes para este error pueden ser:

    • El recurso tiene restricciones de acceso mediante la siguiente llave de registro AutoShareWks = 0:
    • Equipo\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
    • El recurso no está compartido desde el módulo de Administrador de equipos > Carpetas compartidas > Recursos compartidos

    6. Verificación de exclusiones de antivirus en Microsoft Windows Defender.

    Se realiza una prueba de verificación validando si existen exclusiones en el antivirus del sistema operativo Microsoft Windows Defender que afecten el funcionamiento del agente.

    {
      "TestNumber": 6,
      "TestId": "ENV.AntivirusExclusions",
      "Group": "Environment",
      "Name": "Exclusiones de antivirus (Microsoft Defender)",
      "Status": "Ok",
      "Findings": [
        {
          "Code": "AV.NO_EXCLUSIONS",
          "Details": null,
          "Message": "No se encontraron exclusiones configuradas en Microsoft Defender.",
          "Severity": "Info"
        }
      ],
      "Evidence": {
        "AntivirusExclusions.Paths": "0",
        "AntivirusExclusions.Processes": "0",
        "AntivirusExclusions.Extensions": "0",
        "AntivirusExclusions.IpAddresses": "0",
        "AntivirusExclusions.Total": "0"
      }
    }
    

    Ejemplo de error:

    Las causas más comunes para este error pueden ser:

    • No se tiene permisos suficientes. Para esta prueba se recomienda ejecutar el agente de autodiagnóstico como administrador si el usuario tiene restricciones de UAC.

    7. Verificación del servicio de geolocalización y permisos de ubicación.

    Se realiza una consulta al Servicio de geolocalización (lfsvc) verificando si está habilitado y ejecutándose. También se verifica si hay una política de dominio que bloquee los servicios de ubicación.

    {
      "TestId": "ENV.LocationPermissions",
      "Group": "Environment",
      "Name": "Permisos de ubicación (Windows)",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "Location.Service": "Running",
        "Location.PolicyBlocked": "False",
        "Consent.Result": "Allow",
        "Consent.Source": "None",
        "Location.BlockReason": "None"
      }
    }
    

    Ejemplo de error:

    Las causas más comunes para este error pueden ser:

    • El Servicio de geolocalización (lfsvc) no está habilitado o tiene restricciones de acceso por política de dominio.

    • Se tiene configuradas políticas de dominio con restricción de acceso a la ubicación. Si alguna de estas llaves de registro está creada con DWORD = 1, se deben eliminar:

    • Llave de registro: Software\Policies\Microsoft\Windows\LocationAndSensors\DisableLocation
    • Llave de registro: Software\Policies\Microsoft\Windows\LocationAndSensors\DisableSensors
    • Llave de registro: Software\Policies\Microsoft\Windows\LocationAndSensors\DisableWindowsLocationProvider

    8. Verificación DNS/TCP.

    Se realiza una prueba de conectividad TCP al host y puerto configurado en el archivo appsettings.json verificando si realiza una resolución DNS y capturando los tiempos de respuesta.

    {
      "TestId": "DNS/TCP",
      "Group": "Prerequisites",
      "Name": "DNS/TCP connectivity",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "Url": "https://DNS-NAME/Repserver",
        "Scheme": "https",
        "Host": "DNS-NAME",
        "Port": "443",
        "ResolvedIPs": "IP-DETECTED",
        "TimeoutMs": "30000",
        "ConnectedIP": "IP-DETECTED"
      }
    }
    

    9. Verificación HTTP a la URL base suministrada.

    Se realiza verificación de respuesta HTTP a la URL base suministrada para confirmar si responde correctamente, capturando los tiempos de respuesta.

    {
      "TestId": "HTTP Repserver",
      "Group": "Prerequisites",
      "Name": "URI HTTP Response",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "Url": "https://DNS-NAME/Repserver",
        "Method": "HEAD",
        "StatusCode": "200",
        "ElapsedMs": "380"
      }
    }
    

    Ejemplo de error:

    Para este caso, el item 8 y 9 comparten el mismo escenario, por una posible restricción de comunicación hacía la URL a la que se le está realizando la prueba. Valide si tiene salida a Internet, revise las restricciones de red configuradas a nivel de firewall y realice la excepción a la URL del nodo.

    10. Verificación descarga perfil de agente por defecto.

    Se realiza una consulta a la URL donde se almacena el perfil del agente, retornando la información en formato JSON con las configuraciones que se tienen para el perfil por defecto y captura los tiempos de respuesta.

    {
      "TestId": "Agent Profile Download",
      "Group": "Inventory.AgentProfileDownload",
      "Name": "CommunicationNodeV2/AgentProfile/1",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "Url": "https://DNS-NAME/Repserver/CommunicationNodeV2/AgentProfile/1",
        "HeadStatusCode": "200",
        "HeadElapsedMs": "368",
        "HeadContentType": "",
        "HeadContentLength": "867",
        "Head": "Ok",
        "Method": "GET",
        "StatusCode": "200",
        "ElapsedMs": "245",
        "ContentType": "application/octet-stream",
        "BodyPreview": "{\"aam\":{\"aamInventory\":{\"period\":86400,\"startTime\":1772799960},\"aamInventoryLogon\":false,\"aflIncremental\":null,\"aflInventory\":null,\"excludedFiles\":[],\"excludedPaths\":[\"C:\\\\Program Files\",\"C:\\\\Program Files (x86)\",\"C:\\\\Windows\"],\"executablesToScan\":[\"EXE\",\"CPL\",\"RUN\",\"BIN\",\"PY\",\"SH\",\"BASH\"],\"extensionToScan\":null,\"synchronization\":{\"period\":600,\"startTime\":1774366188}},\"additionalSurveyFields\":null,\"apm\":{\"apmInventoryLogon\":false,\"inventory\":{\"period\":86400,\"startTime\":1772820000},\"synchronization\":{\"period\":86400,\"startTime\":1774366188}},\"apwm\":null,\"ars\":null,\"asd\":{\"synchronization\":{\"period\":600,\"startTime\":1774366188}},\"asm\":null,\"communication\":{\"fileSharing\":{\"download\":1024,\"port\":0,\"retention\":1,\"type\":4,\"upload\":1024},\"port\":9025,\"registerPeriod\":5,\"serverAddress\":[\"https:\\/\\/DNS-NAME\\/repserver\"]},\"profile\":1,\"showIcon\":true}"
      }
    }
    

    Ejemplo de error:

    Estos errores pueden presentarse al apuntar a un Conserver debido a la ausencia del recurso en la ruta de almacenamiento de archivos del Conserver. Puede correr de nuevo la prueba de autodiagnóstico para que se ejecute de manera correcta. En la primera ejecución que genera error, el Conserver procesa la tarea que solicita el recurso y lo almacena.

    11. Verificación a la versión disponible del agente de ADM.

    Se realiza una consulta para verificar la ultima versión disponible del agente de ADM y muestra como resultado el nombre del archivo disponible, el identificador, la fecha de descarga y captura el tiempo de respuesta.

    {
      "TestId": "Agent Update Version",
      "Group": "Inventory.AgentUpdate",
      "Name": "Version (agentupdate/.../version)",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "BaseUrl": "https://DNS-NAME/Repserver",
        "Url": "https://DNS-NAME/Repserver/api/agentupdate/com.arandasoft.adm.agent.windows/version",
        "Method": "GET",
        "StatusCode": "200",
        "ElapsedMs": "2450",
        "ContentLength": "184",
        "BodyPreview": "{\"fileName\":\"Aranda.Agent.Windows.x86_x64.9.24.1.4.exe\",\"installerIdentifier\":\"com.arandasoft.adm.agent.windows\",\"modificationDate\":\"2026-03-19T00:00:32.32+00:00\",\"version\":\"9.24.1.4\"}"
      }
    }
    

    Ejemplo de error:

    No existen datos de versiones disponibles debido a que la tarea que se encarga de descargar esta información, no se ha ejecutado. Para mayor información consulte Despliegue de agentes.

    12. Verificación del instalador del agente.

    Se realiza una consulta para verificar que exista el recurso .EXE del agente de ADM en la ruta de almacenamiento configurada para el nodo que se está consultando.

    {
      "TestId": "Agent Download",
      "Group": "Inventory.AgentUpdate",
      "Name": "Agent EXE download (agentupdate/...windows)",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "Url": "https://DNS-NAME/Repserver/api/agentupdate/com.arandasoft.adm.agent.windows",
        "Method": "GET(Range 0-0)",
        "StatusCode": "206",
        "ElapsedMs": "244",
        "ContentType": "application/octet-stream",
        "ContentLength": "1"
      }
    }
    

    Ejemplo de error:

    Se debe a la ausencia del recurso en el contenedor de archivos para el caso del Repserver o en la ruta de almacenamiento de archivos para el caso del Conserver.

    13. Test de conectividad al nodo.

    Se realiza prueba de conectividad al nodo que se configuró en el archivo appsettings.json y se verifica que el nodo si esté respondiendo de manera adecuada.

    {
      "TestId": "Communication Node Test Connection",
      "Group": "Inventory.CommunicationNodeCnx",
      "Name": "/communicationNodev2/test",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "BaseUrl": "https://DNS-NAME/Repserver",
        "Url": "https://DNS-NAME/Repserver/communicationNodev2/test",
        "Method": "GET",
        "StatusCode": "200",
        "ElapsedMs": "227"
      }
    }
    

    Ejemplo de error:

    Se puede presentar debido a una falla de comunicación con el nodo al cual se le está realizando la prueba de diagnóstico, se recomienda revisar que el servicio esté operativo o verificar las reglas de firewall.

    14. Registro de dispositivo.

    Se realiza una petición a la consola para realizar un registro de prueba con datos aleatorios y verificar que se puedan registrar los dispositivos de forma correcta en consola.

    {
      "TestId": "RegisterDevice",
      "Group": "Inventory.CommunicationNode",
      "Name": "CommunicationNodeV2 Register",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "PayloadResource": "Aranda.Diagnostics.ADM.Agent.Core.Assets.register-body.json",
        "RunGuid": "c164570f229b4858ba240895c092b107",
        "DeviceName.Original": "TestArandaDiagnosticsAgent",
        "DeviceName.Final": "TestArandaDiagnosticsAgent-c164570f229b4858ba240895c092b107",
        "HwHash.Final": "c164570f229b4858ba240895c092b107",
        "Url": "https://DNS-NAME/Repserver/communicationNodeV2/register",
        "TimeoutMs": "30000",
        "StatusCode": "200",
        "ElapsedMs": "1322",
        "Response.Token": "{E79387D5-CA80-4FA7-A404-3ADD4D4B7D42}",
        "Response.Topic": "device/{FF2D3566-1474-4714-9DC3-6BC9F2F87266}",
        "Response.BrokerPort": "1884",
        "Response.BrokerIp": "IP-DETECTED",
        "Response.Guid": "{FF2D3566-1474-4714-9DC3-6BC9F2F87266}",
        "IsEnableServerNotification": "False"
      }
    }
    

    Nota: Terminadas las pruebas de autodiagnóstico se recomienda eliminar el/los registro(s) de prueba creado(s) en consola. Si son varios registros, podrá eliminarlos filtrando por estado Sin inventario y agente 9.12.2110.106 y posteriormente seleccione Más opciones > Todos y luego Eliminar dispositivos.

    15. Verificación de funcionamiento Administración remota.

    Para este caso, existen dos caminos:

    1. Administración remota LAN: Si el parámetro EnableServerNotification se establece en false, se realiza una prueba de conectividad en la estación verificando si el puerto 9025 está disponible para ser usado y que otro programa o servicio no lo esté usando; si ya se tiene instalado el agente, verifica que el puerto esté asociado al proceso del agente y que esté en modo escucha.

       {
       "TestId": "LOCAL.9025",
       "Group": "Inventory.RemoteAdmin",
       "Name": "Local port 9025 listening",
       "Status": "Ok",
       "Findings": [],
       "Evidence": {
           "Port": "9025",
           "Target": "localhost",
           "AgentService.Name": "ArandaAgent9",
           "AgentService.Exists": "True",
           "AgentService.Status": "Running",
           "AgentService.StartType": "Automatic",
           "AgentProcessPid": "6552",
           "AgentProcessName": "Aranda.Agent.ACOREService",
           "Port.ListenerCount": "2",
           "Port.Bindings": "0.0.0.0, ::",
           "Port.Listening": "True",
           "PortOwnerPid": "6552",
           "PortOwnerProcessName": "Aranda.Agent.ACOREService",
           "Port.OwnerMatch": "True (PID 6552)",
           "ConnectedIP": "127.0.0.1"
       }
       }
      

    Ejemplo de error:

    Si tiene el agente instalado, verifique desde el Monitor de recursos > Red > Puertos de escucha que el proceso de Aranda.Agent.ACOREService.exe esté ejecutandose con el puerto 9025. Valide que en la columna Estado de firewall diga Permitido, no restringido; en caso contrario verifique las reglas de firewall.

    1. Administración remota conexión saliente: Si el parámetro EnableServerNotification se establece en true, se realiza una petición utilizando el protocolo WebSocket al sitio identificado en el procedimiento de registro (Paso 14). El utilitario verifica que el complemento esté instalado y que el sitio esté securizado por HTTPS.

       {
       "TestId": "Notifications WebSocket",
       "Group": "Inventory.RemoteAdmin",
       "Name": "Repserver notifications WebSocket(webhub)",
       "Status": "Ok",
       "Findings": [],
       "Evidence": {
           "BaseUrl": "https://DNS-NAME/repserver/notificationmessage",
           "Host": "DNS-NAME",
           "Scheme": "https",
           "WsUrl": "wss://DNS-NAME/repserver/notificationmessage/webhub",
           "ElapsedMs": "7903",
           "State": "Open"
       }
       }
      

    Ejemplo de error:

    Las causas más comunes para este error pueden ser:

    • La falta de configuración de HTTPS sobre el nodo que se esté realizando el diagnóstico. Para mayor información consulte los siguientes enlaces de acuerdo a su infraestructura:
    • La falta del componente de WebSocket en los roles y características.

    16. Verificación sitio de notificaciones.

    Se realiza una verificación al sitio Repserver/notificationmessage verificando que esté disponible y capturando los tiempos de respuesta.

    {
      "TestId": "RemoteAdmin NotificationMessage",
      "Group": "Inventory.RemoteAdmin",
      "Name": "Notificationmessage HTTP",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "BaseUrl": "https://DNS-NAME/repserver/notificationmessage",
        "Method": "GET",
        "StatusCode": "200",
        "ElapsedMs": "684",
        "ContentType": "text/html"
      }
    }
    

    Ejemplo de error:

    Este error puede presentarse porque el servidor se encuentra saturado en recursos y en consecuencia genera un timeout o por una incorrecta configuración en la cadena de conexión del sitio.

    17. Verificación del TLS mínimo.

    Se realiza una verificación del protocolo criptográfico TLS que maneja el sitio al que se está apuntando para realizar la prueba de diagnóstico.

    {
      "TestId": "TLS Min 1.2",
      "Group": "Inventory.RemoteAdmin",
      "Name": "TLS >= 1.2 (HTTPS)",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "RepserverUrl": "https://DNS-NAME/Repserver",
        "Scheme": "https",
        "Host": "DNS-NAME",
        "Port": "443",
        "ElapsedMs": "161",
        "NegotiatedProtocol": "Tls13",
        "CipherAlgorithm": "Aes256",
        "CipherStrength": "256",
        "HashAlgorithm": "Sha384",
        "HashStrength": "0",
        "KeyExchangeAlgorithm": "None",
        "KeyExchangeStrength": "255"
      }
    }
    

    Ejemplo de error:

    Verifique que el servidor cumpla con los requisitos mínimos, como la versión mínima soportada de TLS (1.2) . Para mayor información consulte la nota A tener en cuenta Requisitos.

    18. Verificación componente de envío de acciones MQTT/IoT.

    Primero se realiza una prueba de verificación validando si existe configurado el parámetro DeviceMessageConfiguration, si existe esta configuración, se realiza una prueba de conectividad al MQTT usando el/la IP/DNS y puerto configurado en ese componente.

    {
      "TestId": "ENROLLMENT",
      "Group": "Inventory.CommunicationNode",
      "Name": "Device enrollment (POST /api/device/enrollment)",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "Url": "https://DNS-NAME/Repserver/api/device/enrollment",
        "RequestBody": "{\"guid\":\"{4BE52D7A-5B13-4B59-8621-C39D92A9FA36}\",\"version\":\"9.24.1.3\",\"sufix\":\"ADM\"}",
        "StatusCode": "200",
        "ResponseBody": "{\"metaData\":\"{\\\"broker\\\":\\\"IP-DETECTED\\\",\\\"password\\\":\\\"\\\",\\\"port\\\":1884,\\\"secure\\\":false,\\\"sslProtocols\\\":0,\\\"topic\\\":\\\"ADM_4BE52D7A-5B13-4B59-8621-C39D92A9FA36\\\",\\\"username\\\":\\\"\\\"}\",\"type\":1}",
        "Response.TypeValue": "1",
        "Response.MetaData": "{\"broker\":\"IP-DETECTED\",\"password\":\"\",\"port\":1884,\"secure\":false,\"sslProtocols\":0,\"topic\":\"ADM_4BE52D7A-5B13-4B59-8621-C39D92A9FA36\",\"username\":\"\"}",
        "Response.TypeName": "MQTT",
        "Source": "Enrollment",
        "Enrollment.Broker": "IP-DETECTED",
        "Enrollment.Port": "1884",
        "Enrollment.Topic": "ADM_4BE52D7A-5B13-4B59-8621-C39D92A9FA36",
        "Probe.Broker": "IP-DETECTED",
        "Probe.Port": "1884",
        "Probe.Topic": "ADM_4BE52D7A-5B13-4B59-8621-C39D92A9FA36",
        "Probe.MQTT.TcpConnect": "Ok"
      }
    }
    

    Nota: En la versión actual no es posible realizar una prueba de conectividad al componente IoT que se configure para DeviceMessageConfiguration.

    Si no existe el parámetro DeviceMessageConfiguration, valida si existe MQTT configurado en el Web.config para el caso del Repserver o en Aranda.Conserver.Windows.Service.exe.config/appsettings.json del Conserver y realiza una prueba de conectividad usando la/el IP/DNS y puerto configurado en ese componente.

    {
      "TestId": "ENROLLMENT",
      "Group": "Inventory.CommunicationNode",
      "Name": "Device enrollment (POST /api/device/enrollment)",
      "Status": "Ok",
      "Findings": [
        {
          "Code": "ENROLL.BAD_STATUS",
          "Message": "Respuesta no exitosa en enrollment.",
          "Severity": "High",
          "Details": "\"DeviceMessageConfiguration_NotFound\""
        },
        {
          "Code": "ENROLL.FALLBACK.BAD_STATUS",
          "Message": "Enrollment falló. Se intenta MQTT usando la configuración registrada.",
          "Severity": "Low",
          "Details": null
        },
        {
          "Code": "ENROLL.FALLBACK_MQTT_OK",
          "Message": "Falló enrollment, pero la prueba MQTT con la configuración registrada fue exitosa.",
          "Severity": "Low",
          "Details": null
        }
      ],
      "Evidence": {
        "Url": "https://DNS-NAME/Repserver/api/device/enrollment",
        "RequestBody": "{\"guid\":\"{0DCFB561-7A61-48DF-A7F1-BD5102A16362}\",\"version\":\"9.24.1.3\",\"sufix\":\"ADM\"}",
        "StatusCode": "409",
        "ResponseBody": "\"DeviceMessageConfiguration_NotFound\"",
        "Fallback.Source": "RegisterCommunicationNode",
        "Fallback.Broker": "IP-DETECTED",
        "Fallback.Port": "1884",
        "Fallback.Topic": "device/{0DCFB561-7A61-48DF-A7F1-BD5102A16362}",
        "FallbackProbe.Broker": "IP-DETECTED",
        "FallbackProbe.Port": "1884",
        "FallbackProbe.Topic": "device/{0DCFB561-7A61-48DF-A7F1-BD5102A16362}",
        "FallbackProbe.MQTT.TcpConnect": "Ok"
      }
    }
    

    Ejemplo de error:

    Verifique en las reglas de firewall alguna restricción en la IP o DNS configurado para el componente de MQTT por el puerto 1884 o valide que el servicio del MQTT en el servidor, esté operativo.

    19. Verificación de envió de inventarios.

    Se realiza una prueba de carga de un archivo de prueba a la ruta de almacenamiento configurada para el nodo al que se está realizando el diagnóstico.

    {
      "TestId": "UploadFileV2",
      "Group": "Inventory.CommunicationNode",
      "Name": "CommunicationNodeV2 UploadFileV2",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "PayloadFileName": "test_Aranda_diagnostics_agent.txt",
        "Url": "https://DNS-NAME/Repserver/communicationNodeV2/uploadfilev2",
        "Method": "POST",
        "MultipartField": "inputStream",
        "FileName": "test_Aranda_diagnostics_agent.txt",
        "FileBytes": "75",
        "TimeoutMs": "30000",
        "StatusCode": "200",
        "ElapsedMs": "395",
        "ResponseLength": "2"
      }
    }
    

    Nota: Terminadas las pruebas de autodiagnóstico se recomienda eliminar el/los archivo(s) de prueba creado(s) en la ruta de almacenamiento que se tiene configurada para el nodo que se realizó el diagnóstico, estos archivos quedan almacenados en la carpeta Exception

    Ejemplo de error:


    Las causas más comunes para este error pueden ser:

    • No se tiene configurada una ruta de almacenamiento de archivos local o almacenamiento de blobs válida para el nodo al que está apuntando. Para mayor información consulte Comunicaciones.

    • No se tienen permisos de lectura y escritura sobre la ruta de almacenamiento de archivos local o almacenamiento de blobs que tenga configurada para el nodo al que está apuntando.

    20. Verificación de archivos vncSettings.json o rfbSettings.json.

    Se realiza la verificación de los archivos vncSettings.json o rfbSettings.json y se modifica el parámetro AcceptRfbConnections de false a true para realizar las siguientes pruebas de control remoto e inicia el servicio de Aranda Remote Control VNC.

    {
      "TestNumber": 25,
      "TestId": "REMOTE_CONTROL.CONFIGURE_AND_START_SERVICE",
      "Group": "Inventory.RemoteAdmin",
      "Name": "Configure Remote Control settings and start service",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "VncSettingsPath": "C:\\Program Files\\Aranda\\Aranda Remote Control\\Workstation\\vncSettings.json",
        "RfbSettingsPath": "C:\\Program Files\\Aranda\\Aranda Remote Control\\Workstation\\rfbSettings.json",
        "VncSettings.Exists": "False",
        "RfbSettings.Exists": "True",
        "SettingsFile.Used": "rfbSettings.json",
        "SettingsFile.Modified": "True",
        "AcceptRfbConnections.ConfiguredValue": "true",
        "WorkstationService.TargetName": "Aranda Remote Control Workstation",
        "WorkstationService.StartAttempted": "False",
        "WorkstationService.StartResult": "AlreadyRunning"
      }
    }
    

    Ejemplo de error:


    Las causas más comunes para este error pueden ser:

    • No existe el/los archivo(s) en la ruta C:\Program Files\Aranda\Aranda Remote Control\Workstation.

    • No se tiene permisos para modificar el archivo. Para esta prueba se recomienda ejecutar el agente de autodiagnóstico como administrador si el usuario tiene restricciones de UAC.

    • El agente de Aranda Remote Control Workstation no está instalado.

    21. Verificación del servicio Aranda Remote Control Workstation.

    Se realiza una consulta al servicio Aranda Remote Control Workstation verificando si está habilitado y ejecutándose.

    {
      "TestNumber": 26,
      "TestId": "REMOTE_CONTROL.WORKSTATION_SERVICE",
      "Group": "Inventory.RemoteAdmin",
      "Name": "Aranda Remote Control Workstation service status",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "WorkstationService.Name": "Aranda Remote Control Workstation",
        "WorkstationService.Exists": "True",
        "WorkstationService.Status": "Running",
        "WorkstationService.StartType": "Automatic"
      }
    }
    

    Ejemplo de error:


    Las causas más comunes para este error pueden ser:

    • El servicio Aranda Remote Control Workstation está deshabilitado.

    • El agente de Aranda Remote Control Workstation no está instalado.

    22. Verificación de archivos Aranda.ARC.Workstation.exe y Aranda.AVS.VNC.Application.exe

    Se realiza la verificación de los archivos Aranda.ARC.Workstation.exe y Aranda.AVS.VNC.Application.exe.

    {
      "TestNumber": 27,
      "TestId": "REMOTE_CONTROL.WORKSTATION_FILES",
      "Group": "Inventory.RemoteAdmin",
      "Name": "Aranda Remote Control workstation files",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "InstallDir": "C:\\Program Files\\Aranda\\Aranda Remote Control\\Workstation",
        "ExpectedDirectory": "C:\\Program Files\\Aranda\\Aranda Remote Control\\Workstation",
        "Directory.Exists": "True",
        "WorkstationExe.Path": "C:\\Program Files\\Aranda\\Aranda Remote Control\\Workstation\\Aranda.ARC.Workstation.exe",
        "WorkstationExe.Exists": "True",
        "VncApplicationExe.Path": "C:\\Program Files\\Aranda\\Aranda Remote Control\\Workstation\\Aranda.AVS.VNC.Application.exe",
        "VncApplicationExe.Exists": "True"
      }
    }
    

    Ejemplo de error:


    Las causas más comunes para este error pueden ser:

    • No existe el/los archivo(s) en la ruta C:\Program Files\Aranda\Aranda Remote Control\Workstation.

    • El agente de Aranda Remote Control Workstation no está instalado.

    23. Verificación del servicio Aranda Remote Control VNC.

    Se realiza una prueba de verificación del estado del servicio Aranda Remote Control VNC

    {
      "TestNumber": 28,
      "TestId": "REMOTE_CONTROL.VNC_SERVICE",
      "Group": "Inventory.RemoteAdmin",
      "Name": "Aranda Remote Control VNC service exists",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "VncService.Name": "Aranda Remote Control VNC",
        "VncService.Exists": "True",
        "VncService.Status": "Stopped",
        "VncService.StartType": "Manual",
        "VncService.RequiredRunning": "False"
      }
    }
    

    Ejemplo de error:


    Las causas más comunes para este error pueden ser:

    • El servicio Aranda Remote Control VNC está deshabilitado.

    • El agente Aranda Remote Control Workstation no está instalado.

    24. Prueba de conectividad TCP para la IP/DNS del Servidor TURN.

    Se realiza una prueba de conectividad TCP a la IP/DNS suministrada en la sección de control remoto del archivo appsettings.json.

    {
      "TestNumber": 29,
      "TestId": "REMOTE_CONTROL.TCP",
      "Group": "Inventory.RemoteAdmin",
      "Name": "Remote Control TCP connectivity",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "TimeoutMs": "30000",
        "URI": "https://DNS-NAME/Repserver",
        "RemoteControl.Config.Ip": "IP-ADDRESS",
        "RemoteControl.Config.Port": "8081",
        "RemoteControl.Config.UseSsl": "False",
        "RemoteControl.Target.Host": "IP-ADDRESS",
        "RemoteControl.Target.Port": "8081",
        "RemoteControl.Target.UseSsl": "False",
        "RemoteControl.Target.ResolvedIps": "IP-ADDRESS",
        "RemoteControl.Target.TcpReachable": "True",
        "RemoteControl.Target.ConnectedIp": "IP-ADDRESS"
      }
    }
    

    Ejemplo de error:


    La causa más común de este error puede ser una restricción en el firewall para la salida a Internet. De ser así, agregue la excepción a la IP/DNS configurada para el control remoto.

    25. Prueba de conectividad al puerto del servidor TURN.

    Se realiza una prueba de conectividad TCP al puerto suministrado en la sección de control remoto del archivo appsettings.json.

    {
      "TestNumber": 30,
      "TestId": "REMOTE_CONTROL.TURN_PORTS",
      "Group": "Inventory.RemoteAdmin",
      "Name": "Remote Control TURN Ports connectivity",
      "Status": "Ok",
      "Findings": [
        {
          "Code": "REMOTE_CONTROL.CONFIGUREDPORT_OK",
          "Details": null,
          "Message": "Conectividad exitosa al puerto 8081 del servidor TURN.",
          "Severity": "Info"
        },
        {
          "Code": "REMOTE_CONTROL.CONFIGURED_PORT_OK",
          "Details": null,
          "Message": "Puerto configurado 8081 es accesible.",
          "Severity": "Info"
        }
      ],
      "Evidence": {
        "TurnHost": "IP-ADDRESS",
        "TurnUseSsl": "False",
        "ConfiguredPort": "8081",
        "TimeoutMs": "30000",
        "ConfiguredPort.Port": "8081",
        "ConfiguredPort.ResolvedIps": "IP-ADDRESS",
        "ConfiguredPort.TcpReachable": "True",
        "ConfiguredPort.ConnectedIp": "IP-ADDRESS"
      }
    }
    

    Ejemplo de error:


    La causa más común de este error puede ser una restricción en el firewall para la salida a Internet. De ser así, agregue la excepción al puerto configurado para el control remoto.

    26. Prueba de intercambio de mensajes entre servidor y estación.

    Se realiza una prueba utilizando el complemento Exchange para realizar un intercambio de mensajes entre el Turn del servidor y la estación donde se está ejecutando el agente de autodiagnóstico.

    {
      "TestNumber": 31,
      "TestId": "REMOTE_CONTROL.EXCHANGE",
      "Group": "Inventory.RemoteAdmin",
      "Name": "Remote Control Exchange Test",
      "Status": "Ok",
      "Findings": [
        {
          "Code": "REMOTE_CONTROL.EXCHANGE_SUCCESS",
          "Details": null,
          "Message": "El intercambio de mensajes fue exitoso. 80 enviados, 80 recibidos durante 20s.",
          "Severity": "Info"
        }
      ],
      "Evidence": {
        "TurnHost": "IP-ADDRESS",
        "TurnPort": "8081",
        "TurnUseSsl": "False",
        "TimeoutMs": "30000",
        "SessionCode": "358E3DDCAB-893211763EE8DE08",
        "ReceiverCode": "1D02AB-DA3211763EE8DE08",
        "TransmitterCode": "9C264295-AE3211763EE8DE08",
        "GenerationElapsedMs": "196",
        "ConnectionElapsedMs": "323",
        "TotalElapsedMs": "20536",
        "ExchangeDurationSeconds": "20",
        "ExchangeElapsedMs": "20012",
        "MessagesSentClient": "40",
        "MessagesReceivedClient": "40",
        "MessagesSentServer": "40",
        "MessagesReceivedServer": "40",
        "TotalMessagesSent": "80",
        "TotalMessagesReceived": "80",
        "MessagesFailed": "0",
        "MessagesPerSecond": "4.00"
      }
    }
    

    Ejemplo de error:


    Las causas más comunes para este error pueden ser:

    • Existe una restricción en el firewall para salida a Internet, de ser así, se debe agregar la excepción a la IP/DNS y puerto configurados para el control remoto.

    • El agente Aranda Remote Control Workstation no se encuentra instalado.

    27. Prueba de control remoto usando RFB/VNC.

    Se utiliza el protocolo RFB y el servicio Aranda Remote Control VNC para realizar una prueba de simulación de control remoto desde y hacía la misma estación desde donde se ejecuta el agente de autodiagnóstico

    {
      "TestNumber": 32,
      "TestId": "REMOTE_CONTROL.RFB_PROTOCOL",
      "Group": "Inventory.RemoteAdmin",
      "Name": "Remote Control RFB/VNC protocol connectivity",
      "Status": "Ok",
      "Findings": [
        {
          "Code": "REMOTE_CONTROL.VNC_SERVICE_NOT_RUNNING",
          "Details": null,
          "Message": "El servicio Aranda Remote Control VNC no está en ejecución. Se intentará iniciar el servicio automáticamente.",
          "Severity": "Medium"
        }
      ],
      "Evidence": {
        "VncService.Name": "Aranda Remote Control VNC",
        "VncService.Exists": "True",
        "VncService.Status": "Stopped",
        "VncService.StartType": "Manual",
        "VncService.Started": "True",
        "VncService.CurrentStatus": "Running",
        "RFB.Host": "127.0.0.1",
        "RFB.Port": "5903",
        "RFB.Connected": "True",
        "RFB.ClientInit.Shared": "True",
        "RFB.DesktopName": "bg-dev-jnieves0",
        "RFB.RequestCount": "14"
      }
    }
    

    Ejemplo de error:


    Las causas más comunes para este error pueden ser:

    • El servicio Aranda Remote Control VNC está deshabilitado.

    • El agente Aranda Remote Control Workstation no está instalado.

    28. Verificación de cantidad de procesos ejecutándose del servicio Aranda Remote Control VNC.

    Se verifica que durante la prueba número 28 estén corriendo dos procesos del servicio Aranda Remote Control VNC, uno como SYSTEM y otro como el usuario que está ejecutando el agente de autodiagnóstico.

    {
      "TestNumber": 33,
      "TestId": "REMOTE_CONTROL.VNC_PROCESS_VALIDATION",
      "Group": "Inventory.RemoteAdmin",
      "Name": "Remote Control VNC Process Validation",
      "Status": "Ok",
      "Findings": [
        {
          "Code": "REMOTE_CONTROL.VNC_PROCESSES_OK",
          "Details": null,
          "Message": "Se encontraron 2 procesos VNC en ejecución correctamente.",
          "Severity": "Info"
        }
      ],
      "Evidence": {
        "VNC.Process.Count": "2",
        "VNC.Process.Expected": "2",
        "VNC.Process.1.Id": "31104",
        "VNC.Process.1.Name": "Aranda.AVS.VNC.Application",
        "VNC.Process.2.Id": "30996",
        "VNC.Process.2.Name": "Aranda.AVS.VNC.Application",
        "VNC.Process.ValidationResult": "Success"
      }
    }
    

    Ejemplo de error:


    Las causas más comunes para este error pueden ser:

    • El servicio Aranda Remote Control VNC está deshabilitado.

    • El agente Aranda Remote Control Workstation no está instalado.

    • No se tiene permisos suficientes. Para esta prueba se recomienda ejecutar el agente de autodiagnóstico como administrador si el usuario tiene restricciones de UAC.

    29. Restauración de archivos y servicios modificados.

    La última parte de la prueba es modificar nuevamente los archivos vncSettings.json o rfbSettings.json y dejarlos como se encontraban en un inicio, con el parámetro de AcceptRfbConnections = true a AcceptRfbConnections = false, detener el servicio de Aranda Remote Control VNC y los procesos que haya iniciado con ese servicio el agente de autodiagnóstico.

    {
      "TestNumber": 34,
      "TestId": "REMOTE_CONTROL.RESTORE_SETTINGS",
      "Group": "Inventory.RemoteAdmin",
      "Name": "Restore Remote Control original settings",
      "Status": "Ok",
      "Findings": [],
      "Evidence": {
        "AcceptRfbConnections.OriginalValue": "True",
        "WorkstationService.OriginalStatus": "Running",
        "VncService.OriginalStatus": "Stopped",
        "SettingsFile.Path": "C:\\Program Files\\Aranda\\Aranda Remote Control\\Workstation\\rfbSettings.json",
        "AcceptRfbConnections.BeforeRestore": "True",
        "AcceptRfbConnections.WasChanged": "False",
        "WorkstationService.BeforeRestore": "Running",
        "WorkstationService.WasChanged": "False",
        "VncService.BeforeRestore": "Running",
        "VncService.WasChanged": "True",
        "AcceptRfbConnections.Restored": "True",
        "AcceptRfbConnections.RestoredValue": "True",
        "WorkstationService.Restored": "False (unchanged)",
        "WorkstationService.FinalStatus": "Running",
        "VncService.Restored": "True (stopped)",
        "VncService.FinalStatus": "Stopped"
      }
    }
    

    30. Prueba al módulo de actualizaciones.

    Para este caso, existen dos caminos:

    1. Módulo de actualizaciones Full: Si el parámetro en el archivo appsettings.json, en la línea 11, se marcó como true, el agente de autodiagnóstico realizará una prueba a la URL utilizada por el agente de ADM para descargar el catálogo de actualizaciones y verificar que el recurso exista y esté disponible.

       {
         "TestNumber": 19,
         "TestId": "CommunicationNode.CatalogDownload",
         "Group": "Inventory.CommunicationNode",
         "Name": "(/api/CommunicationNodeV2/catalog/0)",
         "Status": "Ok",
         "Findings": [],
         "Evidence": {
           "Url": "https://DNS-NAME/Repserver/api/CommunicationNodeV2/catalog/0",
           "ContentType": "application/octet-stream",
           "ContentDisposition": "attachment; filename=WindowsPatchData.zip; modification-date=\"Mon, 27 Jul 2026 15:36:28 GMT\"; size=34346605",
           "HEAD.StatusCode": "200",
           "GET.StatusCode": "200"
         }
       }
      

    Ejemplo de error:


    Las causas más comunes para este error pueden ser:

    • No se ha descargado el catálogo de actualizaciones. Para mayor información consulte Descarga del catálogo.

    • Peden presentarse al apuntar a un Conserver debido a la ausencia del recurso en la ruta de almacenamiento de archivos. Puede ejecutar nuevamente la prueba de autodiagnóstico para que se complete correctamente. Durante la primera ejecución que genera el error, el Conserver procesa la tarea que solicita el recurso y lo almacena.

    1. Módulo de actualizaciones Lite: Si el parámetro en el archivo appsettings.json, en la línea 12, se marcó como true, el agente de autodiagnóstico realizará dos pruebas: la primera corresponde a la validación del acceso a la URL del catálogo de Microsoft y la segunda a la validación del estado del servicio Windows Update (wuauserv).

       {
         "TestNumber": 6,
         "TestId": "ENV.InternetAccess",
         "Group": "Environment",
         "Name": "Salida a Internet - Microsoft Update Catalog",
         "Status": "Ok",
         "Findings": [],
         "Evidence": {
           "Url": "https://catalog.update.microsoft.com/Search.aspx",
           "Method": "GET",
           "TimeoutMs": "15000",
           "ElapsedMs": "3563",
           "StatusCode": "200"
         }
       }
      
       {
         "TestNumber": 9,
         "TestId": "ENV.WindowsUpdateService",
         "Group": "Environment",
         "Name": "Servicio Windows Update (wuauserv)",
         "Status": "Warning",
         "Findings": [
           {
             "Code": "WU.SERVICE_NOT_RUNNING",
             "Details": null,
             "Message": "El servicio Windows Update (wuauserv) no está en ejecución.",
             "Severity": "Medium"
           }
         ],
         "Evidence": {
           "Service.Name": "wuauserv",
           "Service.DisplayName": "Windows Update",
           "Service.Status": "Stopped",
           "Service.StartType": "Manual"
         }
       }
      

    Ejemplo de error:


    Las causas más comunes para este error pueden ser:

    • Restricciones de red configuradas a nivel de firewall, realice la excepción a la URL catalog.update.microsoft.com.

    • El servicio Windows Update (wuauserv) se encuentra deshabilitado. Verifique que el servicio esté habilitado; no es necesario que el servicio esté iniciado; el servicio inicia o se detiene de forma automática al buscar actualizaciones manualmente o cuando el agente de ADM realiza el inventario de actualizaciones.


    En el siguiente enlace podrá encontrar el ejecutable del agente de autodiagnóstico Agente Autodiagnóstico