Ir al contenido
Avanet

Automatizar el despliegue de Sophos Endpoint en Windows

Este artículo se limita al despliegue desatendido de SophosSetup.exe mediante distribución de software, RMM o scripts. Los artículos enlazados por separado cubren una instalación interactiva individual y la solución detallada de problemas.

RMM es aquí una vía de ejecución genérica, no una integración de producto certificada por Sophos. La herramienta elegida debe ejecutar el instalador como SYSTEM o administrador local, preparar conjuntamente el paquete y el wrapper, conservar el estado de salida real y gestionar de forma controlada el tiempo de espera y los reintentos.

Definir el alcance y el acuerdo de despliegue

Antes de ejecutar nada, registre los dispositivos objetivo, la ventana de mantenimiento, el producto esperado, el grupo de destino, la ruta de red y el responsable. Empiece con unos pocos pilotos representativos y avance solo en oleadas acotadas. Revise los cambios de versión de Core Agent antes de cada oleada en Sophos Endpoint Updates, Cache y Message Relay; una versión publicada puede no estar disponible aún en todas partes porque la entrega es gradual.

El trabajo no se considera correcto solo por un código de proceso. Debe devolver el estado de salida real y el dispositivo debe alcanzar el estado local y de Sophos Fusion (antes Sophos Central) acordado.

Preparar el instalador y los requisitos previos

Descargue un instalador Windows nuevo del tenant correcto en My Environment > Installers con Download Complete Windows Installer. Pese a esa etiqueta, SophosSetup.exe es un instalador ligero que descarga las funciones disponibles con la licencia. Sophos permite transferirlo y ejecutarlo de forma automatizada, también con SCCM. No use el instalador específico de un usuario procedente de Email Deployment: todos los dispositivos quedarían asociados a la cuenta Sophos Fusion del remitente.

El instalador está vinculado al tenant y es confidencial: un tercero no obtiene acceso al portal, pero sí puede registrar dispositivos. Elimine las copias tras el despliegue y distribúyalo solo mediante almacenamiento con acceso controlado. Si se divulga, Expire Previously Downloaded Installers en My Environment > Installers bloquea todas las descargas anteriores; la acción no se puede deshacer.

Antes del piloto:

  • Confirme que Sophos Fusion admite actualmente la versión de Windows.
  • Asegúrese de que el contexto de despliegue proporcione la elevación necesaria para instalar software de endpoint.
  • Compruebe las licencias. No se instala un producto solicitado sin licencia en el tenant.
  • Aplique los requisitos de red y proxy para Sophos Endpoint, incluidos TCP 443 saliente y DNS 53, en el firewall o proxy. Vuelva a comprobar los requisitos documentados antes de cada despliegue en lugar de conservar una lista estática antigua en el script.
  • Pruebe la decisión de retirar o mantener la protección competidora existente.
  • Prepare SophosSetup.exe y sus argumentos localmente o mediante distribución controlada. El paquete debe pertenecer al tenant donde se espera el dispositivo.

Crear el comando piloto

Este ejemplo de PowerShell instala XDR silenciosamente, coloca el equipo en el subgrupo Pilot de Workstations, aplica dos etiquetas y devuelve el código real al sistema de despliegue:

$ErrorActionPreference = 'Stop'
$agentPaths = @(
    if (${env:ProgramFiles(x86)}) {
        Join-Path ${env:ProgramFiles(x86)} 'Sophos\Management Communications System\Endpoint\McsClient.exe'
    }
    if ($env:ProgramFiles) {
        Join-Path $env:ProgramFiles 'Sophos\Management Communications System\Endpoint\McsClient.exe'
    }
)
$installedAgent = $agentPaths | Where-Object {
    Test-Path -LiteralPath $_ -PathType Leaf
} | Select-Object -First 1
if ($installedAgent) {
    Write-Output "Sophos agent already installed: $installedAgent"
    exit 0
}

$installer = Join-Path $PSScriptRoot 'SophosSetup.exe'
if (-not (Test-Path -LiteralPath $installer -PathType Leaf)) {
    throw "SophosSetup.exe must be staged beside this wrapper: $installer"
}
$arguments = @(
    '--quiet'
    '--products=xdr'
    '--devicegroup=Workstations\Pilot'
    '--tag=Rollout:wave-0'
    '--tag=ManagedBy:RMM'
)
$process = Start-Process -FilePath $installer -ArgumentList $arguments -Wait -PassThru
$exitCode = $process.ExitCode
Write-Output "SophosSetup.exe exit status: $exitCode"
exit $exitCode

Este wrapper está destinado a instalaciones nuevas. Si encuentra McsClient.exe, termina con el código 0 y no cambia el registro del tenant, el alcance de productos, el grupo ni las etiquetas. Compruebe por separado las instalaciones existentes en Sophos Fusion y use el flujo específico de migración o administración cuando deban modificarse.

Las barras invertidas expresan la jerarquía de --devicegroup. Entrecomille toda la ruta si un grupo contiene espacios, por ejemplo --devicegroup="Application Servers\Terminal Servers". Si el grupo o subgrupo no existe, se crea. Por ello, el piloto debe usar una ruta intencionada y comprobarla después en Sophos Fusion.

Las etiquetas usan --tag=<name>:<value>; también se admite solo el nombre, como --tag=Pilot. Repita el argumento para añadir etiquetas.

Elegir el método de despliegue

Los criterios de aceptación son los mismos con cualquier herramienta: ejecute el instalador vinculado al tenant en el contexto del equipo, evalúe su código de proceso y verifique el estado esperado localmente y en Sophos Fusion. Las vías de AD e Intune descritas aquí usan el wrapper para detectar una instalación existente y devolver sin cambios el código del instalador. Con la ejecución MECM directa, una Application controla las repeticiones mediante su Detection Method; para un Package, la asignación y el calendario deben impedir reinstalaciones involuntarias. Sophos documenta scripts de inicio de Active Directory, Microsoft Intune y MECM.

Script de inicio de Active Directory

Guarde el wrapper PowerShell anterior como Deploy-SophosEndpoint.ps1. Puede asignarse como script de inicio del equipo. A diferencia de un script de inicio de sesión, se ejecuta con derechos del equipo antes de que acceda el usuario; un script de inicio de sesión exigiría un usuario administrador local. Guarde el wrapper y SophosSetup.exe en una ubicación que solo los administradores puedan modificar y las cuentas de equipo objetivo puedan leer.

En Group Policy Management Console (gpmc.msc), vincule primero la GPO a una OU piloto. La ruta exacta es Computer Configuration > Policies > Windows Settings > Scripts (Startup/Shutdown) > Startup; use la pestaña PowerShell Scripts para PowerShell. Abra Show Files… y copie en esa carpeta Deploy-SophosEndpoint.ps1 y el SophosSetup.exe del tenant. Deben quedar juntos para que $PSScriptRoot resuelva el instalador. Seleccione después Deploy-SophosEndpoint.ps1 mediante Add… > Browse. Compruebe Links y Security Filtering en Scope; conceda Read y Apply Group Policy solo a los equipos piloto o a un grupo de equipos dedicado. Ejecute gpupdate /force en un piloto y reinícielo. El ejemplo Batch de Sophos detecta Sophos\Management Communications System\Endpoint\McsClient.exe en %ProgramFiles(x86)% para 64 bits y en %ProgramFiles% para x86. Un wrapper propio puede usar una detección interna al menos igual de específica. Compruebe acceso al recurso, contexto del equipo, ausencia de reinstalación y registro del código de salida.

Microsoft Intune

Use una cuenta con permisos para administrar Intune. Cree carpetas específicas para origen, salida y herramientas; los ejemplos documentados usan C:\Temp\IntunePackageSource, C:\Temp\IntunePackageOutput y C:\Temp\Intune-Win32-App-Packaging-Tool-master. Coloque SophosSetup.exe y el wrapper aprobado en la carpeta de origen y ejecute IntuneWinAppUtil.exe de Microsoft. Indique la carpeta de origen, SophosSetup.exe como archivo de instalación y la carpeta de salida, y responda Catalog folder: N. El éxito muestra INFO File 'C:\Temp\IntunePackageOutput\SophosSetup.intunewin' has been generated successfully.

En Microsoft Intune admin center, abra Apps > All Apps > Add, elija Windows app (Win32) y cargue SophosSetup.intunewin mediante Select app package file. En Program, la base publicada usa SophosSetup.exe --quiet; para este despliegue establezca Install command exactamente en powershell.exe -NoProfile -NonInteractive -ExecutionPolicy Bypass -File ".\Deploy-SophosEndpoint.ps1". El paquete debe contener juntos Deploy-SophosEndpoint.ps1 y SophosSetup.exe, para que el wrapper aporte los argumentos piloto y $PSScriptRoot se resuelva correctamente. Para el ámbito actual de Windows y Core Agent admitido por la guía de desinstalación enlazada, establezca Uninstall command exactamente en "C:\Program Files\Sophos\Sophos Endpoint Agent\SophosUninstall.exe" --quiet (invocación SophosUninstall.exe --quiet). Solo en plataformas heredadas, use en su lugar "C:\Program Files\Sophos\Sophos Endpoint Agent\uninstallcli.exe" --quiet (invocación uninstallcli.exe --quiet); siga la guía para los requisitos previos, los productos protegidos y el reinicio. Mantenga sin cambios las asignaciones predeterminadas de Return code y Code type, salvo que el contrato de despliegue probado exija otro tratamiento. Elija arquitectura y Minimum OS en Requirements. En Detection rules, configure Rule type: File, Path: %ProgramFiles%\Sophos\Sophos UI, File or folder: Sophos UI.exe, Detection method: File or folder exists. Pruebe la detección: evita repeticiones, pero no demuestra registro en Sophos Fusion, productos ni grupo. Deje Dependencies y Supersedence sin cambios si no se diseñan. Asigne primero solo el grupo piloto en Assignments > Required. Después de Review + create, observe la instalación automática en los dispositivos inscritos. Windows Autopilot es la vía de inscripción recomendada por Sophos, no un requisito del paquete.

Microsoft Endpoint Configuration Manager (MECM)

Los Packages son el método heredado sencillo; las Applications añaden detección, dependencias, requisitos y versiones. Para un Package, use Software Library > Application Management > Packages > Create Package, dirija This package contains source files al origen protegido de SophosSetup.exe y cree un Standard program con SophosSetup.exe --quiet, Program can run: Whether or not a user is logged on, Run mode: Run with administrative rights y Drive mode: Runs with UNC name. En Deploy, elija Device Collection piloto, Distribution Point, Purpose: Required, calendario y experiencia de usuario.

Para una Application, use Applications > Create Application > Manually specify the application information. El Deployment Type usa el origen UNC y establece Installation program exactamente en SophosSetup.exe --quiet; este comando MECM directo es distinto del comando Intune con wrapper anterior y no incluye automáticamente las opciones de producto, grupo o etiqueta del ejemplo piloto. Añada deliberadamente esas opciones al comando directo o a un wrapper probado para MECM. Una con And tres cláusulas que exijan C:\Program Files\Sophos\Endpoint Defense\SEDService.exe sin asociación de 32 bits, además de C:\Program Files\Sophos\AutoUpdate\SophosUpdate.exe y C:\Program Files\Sophos\Management Communications System\Endpoint\McsClient.exe asociados a aplicaciones de 32 bits en sistemas de 64 bits. En User Experience, elija Installation behavior: Install for system, Logon requirement: Whether or not a user is logged on, Installation program visibility: Normal, sin interacción y la estimación documentada de diez minutos. Después despliegue a una colección piloto y un Distribution Point con Purpose: Required.

En todos los métodos, sustituya el paquete bajo control de cambios. No retire copias, referencias ni asignaciones antiguas hasta validar la nueva oleada piloto. Las opciones siguientes pueden añadirse al comando de instalación directo o a un wrapper según la vía; los comandos MECM directos no heredan automáticamente los parámetros piloto.

Elegir las opciones deliberadamente

La documentación CLI actual para Windows incluye estas opciones compatibles:

  • --quiet, --noproxydetection, --nocompetitorremoval y --language=<ID> controlan la interfaz, detección del proxy, retirada de competidores e idioma.
  • --products=<lista> acepta endpoint, xdr, xdrsensor, deviceEncryption, ztna, all y none; separe varios valores con comas.
  • --devicegroup, --tag, --computernameoverride y --domainnameoverride controlan ubicación e identidad mostrada. Use sustituciones solo con un diseño de nombres inequívoco.
  • --crtcatalogpath=<ruta> apunta a un catálogo personalizado de competidores que retirar.
  • Use --customertoken=<UUID> y --epinstallerserver=<URL> solo cuando el flujo automatizado o de partner requiera esos valores proporcionados por Sophos.
  • --registeronly vuelve a registrar la protección Sophos instalada con otra cuenta. Primero debe desactivar Tamper Protection en el dispositivo y usar el instalador de la cuenta de destino.
  • --goldimage, --notificationmode, --goldimagetimeout=<segundos> y --nonpersistent pertenecen a un flujo VDI de imagen maestra validado aparte, con las versiones mínimas de Sophos, no a un despliegue normal de puestos.

Sophos limita --bypassacscheck a plataformas Windows 10 x86 heredadas. --bypasstaegisidcheck omite una comprobación del ID de tenant Taegis. No añada preventivamente estas excepciones al paquete estándar.

Decidir el producto y el tratamiento de competidores

endpoint instala antimalware sin XDR. xdr incluye XDR y toda la protección de endpoint. xdrsensor aporta XDR pero no antimalware, por lo que exige protección de terceros. none instala solo los agentes principales y puede servir para una validación gradual de compatibilidad. all instala todos los productos con licencia e ignora los demás.

Al instalar Sophos Anti-Virus, el instalador intenta retirar por defecto los competidores detectados. --nocompetitorremoval evita ese intento. No supone una garantía general de coexistencia. Antes de endpoint o xdr, pruebe detección, retirada, reinicios y restauración con el producto tercero concreto. Elija xdrsensor solo si el producto que permanece asume expresamente la protección.

Configurar proxy, Message Relay y origen local

Defina un proxy exclusivo para la instalación con --proxyaddress=<host>:<puerto> o --pacurl=<URL>. En proxys autenticados, Sophos indica que los endpoints Windows solo admiten Digest Authentication; pase las credenciales con --proxyusername y --proxypassword. --noproxydetection desactiva la detección automática.

Indique los Message Relays como lista host:puerto separada por comas. El puerto predeterminado documentado es 8190:

SophosSetup.exe --quiet --products=endpoint `
  --messagerelays=relay01.example.net:8190,10.20.30.40:8190

No hay una opción CLI para asignar un Update Cache. El instalador evalúa automáticamente la conectividad con los caches configurados en la cuenta Sophos Fusion.

--localinstallsource=<ruta> reduce las descargas, pero no elimina la necesidad de Internet: todavía se descargan algunos archivos. Debe existir una carpeta SophosLocalInstallSource en la ubicación indicada. Una carpeta vacía se rellena en la primera instalación; para prerrellenarla, Sophos menciona contenido de %ProgramData%\Sophos\AutoUpdate\data\repo o %ProgramData%\Sophos\UpdateCache\www\v3.

Proteger secretos, estado de salida y registros

No coloque el instalador, Customer Token ni la contraseña del proxy en recursos públicos, control de código, salidas o tickets. Si es posible, inyecte valores durante la ejecución desde el almacén de secretos. Las líneas de comandos pueden ser visibles para administradores locales y herramientas de inventario; un proxy autenticado sin credenciales específicas y limitadas implica riesgo.

Capture hora de inicio, destino, argumentos no secretos y estado de salida sin modificar, como en el ejemplo. La página CLI oficial no publica una correspondencia estable de códigos numéricos, por lo que este artículo no inventa ninguna. El código es una señal técnica; las comprobaciones local y en Sophos Fusion son la autoridad para validar.

Los registros del instalador se guardan en C:\ProgramData\Sophos\CloudInstaller\Logs\ con el patrón con marca de tiempo SophosCloudInstaller_<date>_<time>.log. Use el archivo que corresponda al intento afectado. --traillogging registra contenido de mensajes entre el dispositivo y Sophos Fusion. Úselo solo cuando lo indique Sophos Support; el soporte también debe proporcionar el procedimiento explícito de desactivación del flujo de diagnóstico MCS actual y verificar que el registro queda desactivado. Revise los secretos antes de compartir registros.

Validar el piloto y liberar oleadas

En cada piloto, confirme que la protección Sophos esperada está activa, que no hay una brecha imprevista en la protección de terceros y que se completaron los reinicios necesarios. Tras instalarse el agente, abra My Environment > Computers & Servers en Sophos Fusion y confirme que el dispositivo aparece con el estado, los productos instalados, el valor de última actividad y el grupo esperados. Abra la página de detalles del equipo para obtener más información.

Tras el periodo de observación acordado, libere una oleada pequeña y representativa y luego otras mayores. Compare finalización, registro en Sophos Fusion, salud, reinicios y conflictos en cada oleada. Incluya distintas sedes, rutas de proxy, versiones Windows y productos terceros en el piloto antes del despliegue amplio.

Detener, revertir y escalar

Detenga la siguiente oleada si los dispositivos no aparecen en Sophos Fusion, la protección no se activa, los fallos superan el umbral acordado o se concentran problemas de red, reinicio o competidores. Pause primero la asignación y los reintentos automáticos; no deje dispositivos fallidos en un bucle ciego de reinstalación.

Revertir el trabajo no restaura automáticamente un competidor retirado por el instalador. Si falla la validación, trate los dispositivos afectados de forma aislada: desinstale Sophos correctamente, restaure el producto anterior o conserve el estado funcional de Sophos según el plan aprobado. No altere a ciegas objetos de Sophos Fusion, Tamper Protection ni la validez del instalador. El artículo de desinstalación separado cubre la retirada completa.

Para escalar, recopile tenant/región, hora, dispositivo, versión Windows, argumentos no secretos, estado de salida sin modificar, oleada y el archivo correspondiente SophosCloudInstaller_<date>_<time>.log. Elimine secretos. Envíe estas pruebas a Sophos Support ante fallos inexplicables o reproducibles; ante diferencias de versión, registre también la versión de Core Agent ofrecida realmente.

Artículos relacionados

Para una instalación interactiva, consulte Instalar Sophos Endpoint en Windows. Gestionar el modo del agente y el software de Sophos Endpoint explica los Agent Modes. VDI tiene requisitos diferentes de identidad y clonación; use Preparar Sophos Endpoint en una imagen maestra VDI. Para retirarlo por completo, consulte Desinstalar Sophos Endpoint en Windows. El diagnóstico detallado queda fuera de este flujo.