Aller au contenu
Avanet

Automatiser le déploiement de Sophos Endpoint sous Windows

Cet article traite uniquement du déploiement sans assistance de SophosSetup.exe par distribution logicielle, RMM ou script. Les articles liés séparément couvrent l’installation interactive d’un seul appareil et le dépannage détaillé.

RMM désigne ici une voie d’exécution générique, et non une intégration de produit certifiée par Sophos. L’outil retenu doit exécuter l’installeur en tant que SYSTEM ou administrateur local, préparer ensemble le paquet et le wrapper, conserver le véritable état de sortie et gérer de manière contrôlée le délai d’expiration et les nouvelles tentatives.

Définir le périmètre et le contrat de déploiement

Avant la première exécution, consignez les appareils cibles, la fenêtre de maintenance, le produit attendu, le groupe de destination, le chemin réseau et le responsable. Commencez par quelques appareils pilotes représentatifs, puis avancez uniquement par vagues limitées. Avant chaque vague, vérifiez les changements de version de Core Agent dans Mises à jour Sophos Endpoint, cache et relais : une version publiée peut ne pas être encore disponible partout en raison d’un déploiement progressif.

Un code de processus ne suffit pas à déclarer le job réussi. Celui-ci doit renvoyer le véritable code de sortie, et l’appareil doit atteindre l’état convenu localement et dans Sophos Fusion (anciennement Sophos Central).

Préparer l’installeur et les prérequis

Téléchargez un nouvel installeur Windows depuis le bon tenant sous My Environment > Installers avec Download Complete Windows Installer. Malgré ce libellé, SophosSetup.exe est un installeur léger qui télécharge les fonctions disponibles avec la licence. Sophos autorise son transfert et son exécution automatisée, notamment avec SCCM. N’utilisez pas l’installeur propre à un utilisateur issu de Email Deployment : tous les appareils seraient associés au compte Sophos Fusion de l’expéditeur.

L’installeur est lié au tenant et confidentiel : un tiers ne peut pas accéder au portail avec lui, mais peut enregistrer des appareils dans le tenant. Supprimez les copies après le déploiement et utilisez un stockage à accès contrôlé. Après une divulgation, Expire Previously Downloaded Installers sous My Environment > Installers bloque tous les téléchargements antérieurs ; cette action est irréversible.

Avant le pilote :

  • Confirmez que la version de Windows est actuellement prise en charge par Sophos Fusion.
  • Assurez-vous que le contexte de déploiement fournit l’élévation requise pour installer le logiciel endpoint.
  • Vérifiez les licences. Un produit demandé mais non concédé sous licence n’est pas installé.
  • Appliquez les prérequis réseau et proxy pour Sophos Endpoint, notamment TCP 443 sortant et DNS 53, sur le pare-feu ou le proxy. Revérifiez les prérequis documentés avant chaque déploiement au lieu de conserver une ancienne liste statique dans le script.
  • Testez la décision de suppression ou de coexistence concernant la protection concurrente existante.
  • Préparez SophosSetup.exe et ses arguments localement ou via une distribution contrôlée. Le paquet doit appartenir au tenant dans lequel l’appareil est attendu.

Construire la commande pilote

Cet exemple PowerShell installe XDR silencieusement, place l’ordinateur dans le sous-groupe Pilot de Workstations, applique deux tags et renvoie le véritable code du processus au système de déploiement :

$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

Ce wrapper est destiné aux nouvelles installations. S’il trouve déjà McsClient.exe, il se termine avec le code 0 et ne modifie ni l’enregistrement du tenant, ni l’étendue des produits, ni le groupe, ni les tags. Contrôlez séparément les installations existantes dans Sophos Fusion et utilisez le processus de migration ou d’administration prévu si elles doivent être modifiées.

Les barres obliques inverses expriment la hiérarchie de --devicegroup. Entourez tout le chemin de guillemets si un groupe contient des espaces, par exemple --devicegroup="Application Servers\Terminal Servers". Un groupe ou sous-groupe inexistant est créé. Le pilote doit donc utiliser un chemin intentionnel et le vérifier ensuite dans Sophos Fusion.

Les tags suivent --tag=<name>:<value> ; un nom seul tel que --tag=Pilot est aussi valide. Répétez l’argument pour ajouter plusieurs tags.

Choisir une méthode de déploiement

Les critères de validation restent identiques quel que soit l’outil : exécuter l’installeur lié au tenant dans le contexte de l’ordinateur, évaluer son code de processus et vérifier l’état attendu localement et dans Sophos Fusion. Les méthodes AD et Intune décrites ici utilisent le wrapper pour détecter une installation existante et renvoyer sans modification le code de l’installeur. Avec une exécution MECM directe, une Application contrôle les répétitions par sa Detection Method ; pour un Package, l’affectation et le calendrier doivent empêcher les réinstallations involontaires. Sophos documente les scripts de démarrage Active Directory, Microsoft Intune et MECM.

Script de démarrage Active Directory

Enregistrez le wrapper PowerShell ci-dessus sous Deploy-SophosEndpoint.ps1. Il peut servir de script de démarrage d’ordinateur. Contrairement à un script de connexion, il s’exécute avec les droits de l’ordinateur avant la connexion ; un script de connexion exigerait que l’utilisateur soit administrateur local. Conservez le wrapper et SophosSetup.exe dans un emplacement modifiable uniquement par les administrateurs et lisible par les comptes d’ordinateur cibles.

Dans Group Policy Management Console (gpmc.msc), liez d’abord la GPO à une OU pilote. Le chemin exact est Computer Configuration > Policies > Windows Settings > Scripts (Startup/Shutdown) > Startup ; utilisez l’onglet PowerShell Scripts pour PowerShell. Ouvrez Show Files… et copiez Deploy-SophosEndpoint.ps1 ainsi que le SophosSetup.exe du tenant dans ce dossier. Ils doivent être côte à côte afin que $PSScriptRoot trouve l’installeur. Sélectionnez ensuite Deploy-SophosEndpoint.ps1 avec Add… > Browse. Contrôlez Links et Security Filtering sous Scope ; accordez Read et Apply Group Policy uniquement aux ordinateurs pilotes ou à un groupe d’ordinateurs dédié. Exécutez gpupdate /force sur un pilote, puis redémarrez-le. L’exemple Batch de Sophos détecte Sophos\Management Communications System\Endpoint\McsClient.exe sous %ProgramFiles(x86)% en 64 bits et %ProgramFiles% en x86. Un wrapper personnalisé peut employer une détection interne au moins aussi précise. Vérifiez l’accès au partage, le contexte ordinateur, l’absence de réinstallation et la journalisation du code de sortie.

Microsoft Intune

Utilisez un compte autorisé à gérer Intune. Créez des dossiers dédiés à la source, à la sortie et à l’outil ; les exemples documentés utilisent C:\Temp\IntunePackageSource, C:\Temp\IntunePackageOutput et C:\Temp\Intune-Win32-App-Packaging-Tool-master. Placez SophosSetup.exe et le wrapper approuvé dans le dossier source, puis lancez IntuneWinAppUtil.exe de Microsoft. Indiquez le dossier source, SophosSetup.exe comme fichier d’installation et le dossier de sortie, puis répondez Catalog folder: N. La réussite affiche INFO File 'C:\Temp\IntunePackageOutput\SophosSetup.intunewin' has been generated successfully.

Dans Microsoft Intune admin center, ouvrez Apps > All Apps > Add, choisissez Windows app (Win32) et chargez SophosSetup.intunewin via Select app package file. Sous Program, la base publiée est SophosSetup.exe --quiet ; pour ce déploiement, définissez exactement Install command sur powershell.exe -NoProfile -NonInteractive -ExecutionPolicy Bypass -File ".\Deploy-SophosEndpoint.ps1". Le paquet doit contenir côte à côte Deploy-SophosEndpoint.ps1 et SophosSetup.exe, afin que le wrapper fournisse les arguments du pilote et que $PSScriptRoot soit correctement résolu. Pour le périmètre Windows et Core Agent actuel pris en charge par le guide de désinstallation lié, définissez exactement Uninstall command sur "C:\Program Files\Sophos\Sophos Endpoint Agent\SophosUninstall.exe" --quiet (appel SophosUninstall.exe --quiet). Sur les plateformes héritées uniquement, utilisez plutôt "C:\Program Files\Sophos\Sophos Endpoint Agent\uninstallcli.exe" --quiet (appel uninstallcli.exe --quiet) ; suivez ce guide pour les prérequis, les produits protégés et le redémarrage. Conservez les valeurs par défaut de Return code et Code type, sauf si le contrat de déploiement testé impose un autre traitement. Choisissez l’architecture et Minimum OS sous Requirements. Sous Detection rules, configurez Rule type: File, Path: %ProgramFiles%\Sophos\Sophos UI, File or folder: Sophos UI.exe, Detection method: File or folder exists. Testez cette détection : elle évite les répétitions, mais ne prouve ni l’enregistrement dans Sophos Fusion ni les produits et le groupe. Sans conception spécifique, laissez Dependencies et Supersedence inchangés. Affectez d’abord seulement le pilote sous Assignments > Required. Après Review + create, observez l’installation automatique sur les appareils inscrits. Windows Autopilot est recommandé par Sophos pour l’inscription, mais n’est pas requis par le paquet.

Microsoft Endpoint Configuration Manager (MECM)

Les Packages constituent la méthode historique simple ; les Applications ajoutent détection, dépendances, exigences et versions. Pour un Package, suivez Software Library > Application Management > Packages > Create Package, pointez This package contains source files vers la source protégée de SophosSetup.exe, puis créez un Standard program avec SophosSetup.exe --quiet, Program can run: Whether or not a user is logged on, Run mode: Run with administrative rights et Drive mode: Runs with UNC name. Sous Deploy, choisissez la Device Collection pilote, le Distribution Point, Purpose: Required, le calendrier et l’expérience utilisateur.

Pour une Application, suivez Applications > Create Application > Manually specify the application information. Le Deployment Type utilise la source UNC et définit exactement Installation program sur SophosSetup.exe --quiet ; cette commande MECM directe reste distincte de la commande Intune avec wrapper ci-dessus et n’inclut pas automatiquement les options de produit, de groupe ou de tag de l’exemple pilote. Ajoutez délibérément ces options à la commande directe ou à un wrapper testé pour MECM. Reliez avec And trois clauses exigeant C:\Program Files\Sophos\Endpoint Defense\SEDService.exe sans association 32 bits, ainsi que C:\Program Files\Sophos\AutoUpdate\SophosUpdate.exe et C:\Program Files\Sophos\Management Communications System\Endpoint\McsClient.exe avec l’association 32 bits sur les systèmes 64 bits. Sous User Experience, choisissez Installation behavior: Install for system, Logon requirement: Whether or not a user is logged on, Installation program visibility: Normal, aucune interaction et l’estimation documentée de dix minutes. Déployez ensuite vers une collection pilote et un Distribution Point avec Purpose: Required.

Pour toutes les méthodes, remplacez le paquet sous contrôle des changements. Ne retirez les anciennes copies, références et affectations qu’après validation de la nouvelle vague pilote. Les options ci-dessous peuvent être ajoutées à une commande d’installation directe ou à un wrapper selon la méthode ; les commandes MECM directes n’héritent pas automatiquement des paramètres pilotes.

Choisir délibérément les options

La documentation CLI Windows actuelle comprend notamment les options prises en charge suivantes :

  • --quiet, --noproxydetection, --nocompetitorremoval et --language=<ID> règlent l’interface, la détection du proxy, la suppression des concurrents et la langue.
  • --products=<liste> accepte endpoint, xdr, xdrsensor, deviceEncryption, ztna, all et none ; séparez plusieurs valeurs par des virgules.
  • --devicegroup, --tag, --computernameoverride et --domainnameoverride règlent le classement et l’identité affichée. N’utilisez les substitutions qu’avec une convention de nommage sans ambiguïté.
  • --crtcatalogpath=<chemin> pointe vers un catalogue personnalisé de concurrents à supprimer.
  • N’utilisez --customertoken=<UUID> et --epinstallerserver=<URL> que si le processus d’automatisation ou partenaire exige ces valeurs fournies par Sophos.
  • --registeronly réenregistre une protection Sophos existante dans un autre compte. Tamper Protection doit d’abord être désactivée sur l’appareil et l’installeur doit provenir du compte cible.
  • --goldimage, --notificationmode, --goldimagetimeout=<secondes> et --nonpersistent relèvent d’un processus d’image de référence VDI validé séparément, avec les versions minimales indiquées par Sophos, et non d’un déploiement normal de postes.

Sophos limite --bypassacscheck aux anciennes plateformes Windows 10 x86. --bypasstaegisidcheck contourne un contrôle de l’ID du tenant Taegis. N’ajoutez pas préventivement ces contournements au paquet standard.

Décider du produit et du traitement des concurrents

endpoint installe l’antimalware sans XDR. xdr comprend XDR et toute la protection d’endpoint. xdrsensor apporte les fonctions XDR sans antimalware ; une protection tierce est donc obligatoire. none installe seulement les agents principaux et convient à une validation progressive de compatibilité. all installe tous les produits sous licence et ignore les autres.

Lors de l’installation de Sophos Anti-Virus, l’installeur tente par défaut de supprimer les concurrents détectés. --nocompetitorremoval empêche cette tentative. Cette option ne garantit pas une coexistence générale. Avant endpoint ou xdr, testez la détection, la suppression, les redémarrages et la restauration avec le produit tiers exact. Choisissez xdrsensor seulement si le produit tiers conservé assure explicitement la protection.

Configurer le proxy, Message Relay et la source locale

Définissez un proxy réservé à l’installation avec --proxyaddress=<hôte>:<port> ou --pacurl=<URL>. Pour les proxys authentifiés, Sophos indique que les endpoints Windows prennent uniquement en charge Digest Authentication ; transmettez les identifiants avec --proxyusername et --proxypassword. --noproxydetection désactive la détection automatique.

Indiquez les Message Relays sous forme de liste hôte:port séparée par des virgules. Le port par défaut documenté est 8190 :

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

Aucune option CLI n’affecte un Update Cache. L’installeur évalue automatiquement la connectivité aux caches configurés dans le compte Sophos Fusion.

--localinstallsource=<chemin> réduit les téléchargements sans supprimer le besoin d’Internet : certains fichiers restent téléchargés. Un dossier SophosLocalInstallSource doit exister à l’emplacement indiqué. Un dossier vide est rempli lors de la première installation ; pour le préremplir, Sophos cite le contenu de %ProgramData%\Sophos\AutoUpdate\data\repo ou %ProgramData%\Sophos\UpdateCache\www\v3.

Protéger les secrets, le code de sortie et les journaux

Ne placez ni l’installeur, ni le Customer Token, ni le mot de passe du proxy sur des partages publics, dans le code source, les sorties de commande ou les tickets. Si possible, injectez les valeurs à l’exécution depuis le coffre de secrets de la plateforme. Les lignes de commande pouvant être visibles des administrateurs locaux et des outils d’inventaire, un proxy authentifié sans identifiants dédiés et limités présente un risque.

Consignez l’heure de début, la cible, les arguments non secrets et le code de sortie inchangé, comme dans l’exemple. La page CLI officielle ne publie pas de correspondance stable des codes numériques ; cet article n’en invente donc aucune. Le code est un signal technique, mais les contrôles locaux et dans Sophos Fusion font foi pour la validation.

Les journaux d’installation se trouvent sous C:\ProgramData\Sophos\CloudInstaller\Logs\ et suivent le modèle horodaté SophosCloudInstaller_<date>_<time>.log. Utilisez le fichier correspondant à la tentative concernée. --traillogging enregistre le contenu des messages entre l’appareil et Sophos Fusion. Ne l’utilisez que sur instruction de Sophos Support ; le support doit aussi fournir la procédure d’arrêt explicite du processus de diagnostic MCS actuel et vérifier que la journalisation est désactivée. Recherchez les secrets avant tout partage.

Valider le pilote et libérer les vagues

Sur chaque pilote, confirmez que la protection Sophos attendue est active, qu’aucune faille de protection tierce involontaire n’existe et que tout redémarrage requis est terminé. Après l’installation de l’agent, ouvrez My Environment > Computers & Servers dans Sophos Fusion et confirmez que l’appareil apparaît avec l’état d’intégrité, les produits installés, la dernière activité et le groupe attendus. Ouvrez la page de détails de l’ordinateur pour plus d’informations.

Après la période d’observation convenue, libérez une petite vague représentative, puis des vagues plus grandes. Comparez pour chacune la fin des installations, l’enregistrement dans Sophos Fusion, l’état de santé, les redémarrages et les conflits. Incluez dans le pilote les différents sites, chemins de proxy, versions Windows et produits tiers avant tout déploiement large.

Arrêter, revenir en arrière et escalader

Arrêtez la vague suivante si les appareils n’apparaissent pas dans Sophos Fusion, si la protection ne devient pas active, si les échecs dépassent le seuil convenu ou si les problèmes réseau, de redémarrage ou de concurrence se concentrent. Suspendez d’abord le ciblage et les nouvelles tentatives automatiques ; ne lancez pas une boucle aveugle de réinstallation.

Le retour arrière du job ne restaure pas automatiquement un concurrent supprimé par l’installeur. Si la validation échoue, traitez les appareils concernés isolément : désinstallez correctement Sophos, restaurez l’ancien produit ou conservez l’état Sophos fonctionnel selon le plan approuvé. Ne modifiez pas à l’aveugle les objets de Sophos Fusion, Tamper Protection ou la validité de l’installeur. L’article de désinstallation distinct couvre la suppression complète.

Pour l’escalade, rassemblez tenant/région, horodatage, appareil, version Windows, arguments non secrets, code de sortie inchangé, vague et le fichier correspondant SophosCloudInstaller_<date>_<time>.log. Retirez les secrets. Transmettez ces éléments à Sophos Support pour les échecs inexpliqués ou reproductibles ; en cas d’écart de version, notez aussi la version Core Agent effectivement proposée.

Articles connexes

Pour une installation interactive, voir Installer Sophos Endpoint sous Windows. Gérer le mode de l’agent et les logiciels Sophos Endpoint explique les Agent Modes. Les exigences d’identité et de clonage sont différentes en VDI ; utilisez Préparer Sophos Endpoint dans une image de référence VDI. Pour la suppression complète, voir Désinstaller Sophos Endpoint sous Windows. Le diagnostic approfondi reste hors de ce processus.