Automatyczne wdrażanie Sophos Endpoint w systemie Windows
Ten artykuł dotyczy wyłącznie nienadzorowanego wdrożenia SophosSetup.exe przez system dystrybucji oprogramowania, RMM lub skrypty. Oddzielne artykuły opisują pojedynczą instalację interaktywną i szczegółowe rozwiązywanie problemów.
RMM jest tutaj ogólną drogą wykonania, a nie integracją produktu certyfikowaną przez Sophos. Wybrane narzędzie musi uruchamiać instalator jako SYSTEM lub administrator lokalny, udostępniać pakiet i wrapper razem, zachowywać rzeczywisty status wyjścia oraz w kontrolowany sposób obsługiwać limit czasu i ponowienia.
Określenie zakresu i zasad wdrożenia
Przed pierwszym uruchomieniem należy zapisać urządzenia docelowe, okno serwisowe, oczekiwany produkt, grupę docelową, trasę sieciową i właściciela. Najpierw wdraża się kilka reprezentatywnych urządzeń pilotażowych, a później tylko ograniczone fale. Przed każdą falą należy sprawdzić zmiany wersji Core Agent w artykule Sophos Endpoint Updates, Cache i Message Relay; z powodu etapowego udostępniania opublikowana wersja może nie być jeszcze dostępna wszędzie.
Sam kod procesu nie oznacza powodzenia zadania. Zadanie musi zwrócić rzeczywisty status wyjścia, a urządzenie osiągnąć uzgodniony stan lokalny i stan w Sophos Fusion (dawniej Sophos Central).
Przygotowanie instalatora i wymagań
Należy pobrać świeży instalator Windows z właściwego tenantu w My Environment > Installers opcją Download Complete Windows Installer. Mimo tej nazwy SophosSetup.exe jest lekkim instalatorem pobierającym funkcje dostępne w ramach licencji. Sophos dopuszcza jego przenoszenie i automatyczne uruchamianie, także przez SCCM. Nie wolno używać instalatora przypisanego do użytkownika z procesu Email Deployment: wszystkie urządzenia trafiłyby do konta Sophos Fusion nadawcy.
Instalator jest powiązany z tenantem i poufny: osoba z zewnątrz nie uzyska nim dostępu do portalu, ale może rejestrować urządzenia. Po wdrożeniu kopie trzeba usunąć, a dystrybucję prowadzić tylko z magazynu z kontrolą dostępu. Po ujawnieniu opcja Expire Previously Downloaded Installers w My Environment > Installers blokuje wszystkie wcześniejsze pliki; tej czynności nie można cofnąć.
Przed pilotażem:
- Potwierdzić, że wersja Windows jest obecnie obsługiwana przez Sophos Fusion.
- Zapewnić w kontekście wdrożenia podwyższenie uprawnień wymagane do instalacji oprogramowania endpoint.
- Sprawdzić licencje. Żądany produkt bez licencji w tenancie nie zostanie zainstalowany.
- Zastosować w zaporze lub proxy wymagania sieciowe i proxy dla Sophos Endpoint, w tym wychodzący TCP 443 i DNS 53. Przed każdym wdrożeniem ponownie sprawdzić udokumentowane wymagania, zamiast zachowywać starą statyczną listę w skrypcie.
- Przetestować decyzję o usunięciu lub współistnieniu istniejącej ochrony konkurencyjnej.
- Umieścić
SophosSetup.exei argumenty lokalnie albo przez kontrolowaną dystrybucję. Pakiet musi pochodzić z tenantu, w którym ma pojawić się urządzenie.
Zbudowanie polecenia pilotażowego
Ten przykład PowerShell instaluje XDR bez interfejsu, umieszcza komputer w podgrupie Pilot grupy Workstations, dodaje dwa tagi i zwraca rzeczywisty kod procesu do systemu wdrożeniowego:
$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
Ten wrapper jest przeznaczony do nowych instalacji. Jeśli znajdzie McsClient.exe, kończy działanie kodem 0 i nie zmienia rejestracji tenantu, zakresu produktów, grupy ani tagów. Istniejące instalacje należy sprawdzać oddzielnie w Sophos Fusion, a wymagane zmiany wykonywać przez przewidziany proces migracji lub zarządzania.
Ukośniki odwrotne wyrażają hierarchię --devicegroup. Jeśli nazwa zawiera spacje, cały ciąg należy ująć w cudzysłów, na przykład --devicegroup="Application Servers\Terminal Servers". Nieistniejąca grupa lub podgrupa zostaje utworzona. Ścieżka pilotażowa musi więc być celowa i później sprawdzona w Sophos Fusion.
Tagi mają postać --tag=<name>:<value>; poprawny jest też sam człon nazwy, na przykład --tag=Pilot. Kolejne tagi podaje się jako kolejne argumenty.
Wybór metody wdrożenia
Kryteria odbioru są takie same niezależnie od narzędzia: instalator powiązany z tenantem uruchamia się w kontekście komputera, ocenia jego kod procesu i sprawdza oczekiwany stan lokalnie oraz w Sophos Fusion. Opisane tu metody AD i Intune używają wrappera do wykrycia istniejącej instalacji i zwrócenia kodu instalatora bez zmian. Przy bezpośrednim wykonaniu MECM obiekt Application kontroluje powtórzenia przez Detection Method; dla Package przypisanie i harmonogram muszą zapobiegać niezamierzonym reinstalacjom. Sophos dokumentuje skrypty startowe Active Directory, Microsoft Intune i MECM.
Skrypt startowy Active Directory
Powyższy wrapper PowerShell należy zapisać jako Deploy-SophosEndpoint.ps1. Można go przypisać jako skrypt startowy komputera. W odróżnieniu od skryptu logowania działa przed logowaniem z prawami komputera; skrypt logowania wymagałby użytkownika będącego lokalnym administratorem. Wrapper i SophosSetup.exe należy przechowywać w lokalizacji modyfikowanej tylko przez administratorów i czytelnej dla docelowych kont komputerów.
W Group Policy Management Console (gpmc.msc) GPO najpierw łączy się z pilotażową OU. Dokładna ścieżka to Computer Configuration > Policies > Windows Settings > Scripts (Startup/Shutdown) > Startup; dla PowerShell używa się karty PowerShell Scripts. Otworzyć Show Files… i skopiować do tego folderu zarówno Deploy-SophosEndpoint.ps1, jak i powiązany z tenantem SophosSetup.exe. Pliki muszą leżeć obok siebie, aby $PSScriptRoot wskazał instalator. Następnie przez Add… > Browse wybrać Deploy-SophosEndpoint.ps1. W Scope należy sprawdzić Links i Security Filtering; uprawnienia Read i Apply Group Policy przyznać tylko komputerom pilotażowym lub przeznaczonej do tego grupie komputerów. Na pilocie wykonać gpupdate /force i restart. Przykład Batch Sophos wykrywa Sophos\Management Communications System\Endpoint\McsClient.exe w %ProgramFiles(x86)% na systemach 64-bitowych i %ProgramFiles% na x86. Własny wrapper może stosować wewnętrznie zweryfikowane, co najmniej równie precyzyjne wykrywanie. Sprawdzić dostęp do udziału, kontekst komputera, brak reinstalacji i zapis kodu wyjścia.
Microsoft Intune
Użyć konta z uprawnieniami do zarządzania Intune. Utworzyć osobne foldery źródłowy, wyjściowy i narzędziowy; udokumentowane przykłady używają C:\Temp\IntunePackageSource, C:\Temp\IntunePackageOutput i C:\Temp\Intune-Win32-App-Packaging-Tool-master. Umieścić SophosSetup.exe i zatwierdzony wrapper w folderze źródłowym, a następnie uruchomić IntuneWinAppUtil.exe firmy Microsoft. Podać folder źródłowy, SophosSetup.exe jako plik instalacyjny i folder wyjściowy oraz odpowiedzieć Catalog folder: N. Sukces zgłasza INFO File 'C:\Temp\IntunePackageOutput\SophosSetup.intunewin' has been generated successfully.
W Microsoft Intune admin center otworzyć Apps > All Apps > Add, wybrać Windows app (Win32) i przesłać SophosSetup.intunewin przez Select app package file. Opublikowana baza w Program to SophosSetup.exe --quiet; dla tego wdrożenia ustawić Install command dokładnie na powershell.exe -NoProfile -NonInteractive -ExecutionPolicy Bypass -File ".\Deploy-SophosEndpoint.ps1". Pakiet musi zawierać obok siebie Deploy-SophosEndpoint.ps1 i SophosSetup.exe, aby wrapper przekazał argumenty pilotażowe, a $PSScriptRoot został poprawnie rozwiązany. Dla aktualnego zakresu obsługiwanych systemów Windows i Core Agent z podlinkowanej instrukcji deinstalacji ustawić Uninstall command dokładnie na "C:\Program Files\Sophos\Sophos Endpoint Agent\SophosUninstall.exe" --quiet (wywołanie SophosUninstall.exe --quiet). Tylko na platformach starszego typu użyć zamiast niego "C:\Program Files\Sophos\Sophos Endpoint Agent\uninstallcli.exe" --quiet (wywołanie uninstallcli.exe --quiet); wymagania wstępne, chronione produkty i restart obsłużyć zgodnie z instrukcją. Pozostawić domyślne mapowania Return code i Code type bez zmian, chyba że przetestowany kontrakt wdrożenia wymaga innej obsługi. W Requirements wybrać architekturę i Minimum OS. W Detection rules ustawić Rule type: File, Path: %ProgramFiles%\Sophos\Sophos UI, File or folder: Sophos UI.exe, Detection method: File or folder exists. Najpierw przetestować tę regułę: zapobiega powtórkom, ale nie dowodzi rejestracji w Sophos Fusion, produktów ani grupy. Dependencies i Supersedence pozostawić bez zmian, jeśli nie zaprojektowano ich świadomie. Najpierw przypisać tylko grupę pilotażową w Assignments > Required. Po Review + create obserwować automatyczną instalację na zarejestrowanych urządzeniach. Windows Autopilot jest zalecanym przez Sophos sposobem rejestracji, nie wymogiem pakietu.
Microsoft Endpoint Configuration Manager (MECM)
Packages to prostsza metoda starszego typu; Applications dodają wykrywanie, zależności, wymagania i wersjonowanie. Dla Package użyć Software Library > Application Management > Packages > Create Package, skierować This package contains source files do chronionego źródła SophosSetup.exe i utworzyć Standard program z SophosSetup.exe --quiet, Program can run: Whether or not a user is logged on, Run mode: Run with administrative rights i Drive mode: Runs with UNC name. W Deploy wybrać pilotażową Device Collection, Distribution Point, Purpose: Required, harmonogram i user experience.
Dla Application użyć Applications > Create Application > Manually specify the application information. Deployment Type korzysta ze źródła UNC i ustawia Installation program dokładnie na SophosSetup.exe --quiet; to bezpośrednie polecenie MECM różni się od powyższego polecenia Intune opartego na wrapperze i nie zawiera automatycznie opcji produktu, grupy ani tagów z przykładu pilotażowego. Takie opcje należy świadomie dodać do polecenia bezpośredniego lub wrappera przetestowanego dla MECM. Połączyć operatorem And trzy klauzule plików: C:\Program Files\Sophos\Endpoint Defense\SEDService.exe bez powiązania 32-bitowego oraz C:\Program Files\Sophos\AutoUpdate\SophosUpdate.exe i C:\Program Files\Sophos\Management Communications System\Endpoint\McsClient.exe jako aplikacje 32-bitowe na systemach 64-bitowych; każdy plik musi istnieć. W User Experience ustawić Installation behavior: Install for system, Logon requirement: Whether or not a user is logged on, Installation program visibility: Normal, brak interakcji i udokumentowane dziesięć minut. Następnie wdrożyć do kolekcji pilotażowej i Distribution Point z Purpose: Required.
W każdej metodzie pakiet wymienia się pod kontrolą zmian. Stare kopie, odwołania i przypisania usuwa się dopiero po odbiorze nowej fali pilotażowej. Poniższe opcje można zależnie od metody dodać do bezpośredniego polecenia instalacji lub wrappera; bezpośrednie polecenia MECM nie dziedziczą automatycznie parametrów pilotażowych.
Świadomy wybór opcji
Aktualna dokumentacja CLI Windows wymienia między innymi następujące obsługiwane opcje:
--quiet,--noproxydetection,--nocompetitorremovali--language=<ID>sterują interfejsem, wykrywaniem proxy, usuwaniem konkurencji i językiem.--products=<lista>przyjmujeendpoint,xdr,xdrsensor,deviceEncryption,ztna,allinone; wiele wartości oddziela się przecinkami.--devicegroup,--tag,--computernameoverridei--domainnameoverridesterują położeniem i wyświetlaną tożsamością. Nadpisania stosować tylko przy jednoznacznej strategii nazewnictwa.--crtcatalogpath=<ścieżka>wskazuje niestandardowy katalog usuwanych konkurentów.--customertoken=<UUID>i--epinstallerserver=<URL>stosować tylko wtedy, gdy dany proces automatyzacji lub partnera wymaga wartości dostarczonych przez Sophos.--registeronlyrejestruje istniejącą ochronę Sophos w innym koncie. Najpierw trzeba wyłączyć Tamper Protection na urządzeniu i użyć instalatora z konta docelowego.--goldimage,--notificationmode,--goldimagetimeout=<sekundy>i--nonpersistentnależą do osobno zweryfikowanego procesu obrazu wzorcowego VDI z minimalnymi wersjami Sophos, a nie do zwykłego wdrożenia stacji.
Sophos ogranicza --bypassacscheck do starszych platform Windows 10 x86. --bypasstaegisidcheck pomija kontrolę identyfikatora tenantu Taegis. Takich obejść nie dodaje się zapobiegawczo do standardowego pakietu.
Wybór produktu i postępowania z konkurencją
endpoint instaluje ochronę antymalware bez XDR. xdr obejmuje XDR i całą ochronę endpoint. xdrsensor dostarcza XDR bez antymalware, dlatego wymaga ochrony innej firmy. none instaluje tylko core agents i może służyć stopniowej ocenie zgodności. all instaluje wszystkie licencjonowane produkty, a pozostałe ignoruje.
Podczas instalacji Sophos Anti-Virus instalator domyślnie próbuje usunąć wykrytych konkurentów. --nocompetitorremoval zapobiega tej próbie. Nie gwarantuje to ogólnego współistnienia. Przed endpoint lub xdr należy przetestować wykrywanie, usuwanie, restart i odtworzenie z konkretnym produktem trzecim. xdrsensor wybiera się tylko, gdy pozostawiony produkt jawnie odpowiada za ochronę.
Konfiguracja proxy, Message Relay i źródła lokalnego
Proxy używane tylko podczas instalacji ustawia się przez --proxyaddress=<host>:<port> lub --pacurl=<URL>. Sophos podaje, że dla uwierzytelnionych proxy endpointy Windows obsługują wyłącznie Digest Authentication; dane przekazuje się przez --proxyusername i --proxypassword. --noproxydetection wyłącza automatyczne wykrywanie.
Message Relays podaje się jako rozdzieloną przecinkami listę host:port. Udokumentowany port domyślny to 8190:
SophosSetup.exe --quiet --products=endpoint `
--messagerelays=relay01.example.net:8190,10.20.30.40:8190
Nie ma opcji CLI przypisującej Update Cache. Instalator automatycznie ocenia łączność z cache skonfigurowanymi na koncie Sophos Fusion.
--localinstallsource=<ścieżka> ogranicza pobieranie, ale nie usuwa wymogu Internetu: część plików nadal jest pobierana. We wskazanej lokalizacji musi istnieć folder SophosLocalInstallSource. Pusty folder jest wypełniany przy pierwszej instalacji; do wcześniejszego zapełnienia Sophos wskazuje zawartość %ProgramData%\Sophos\AutoUpdate\data\repo lub %ProgramData%\Sophos\UpdateCache\www\v3.
Ochrona sekretów, statusu wyjścia i logów
Instalatora, Customer Token i hasła proxy nie wolno umieszczać w publicznych udziałach, repozytorium kodu, wyjściu poleceń ani zgłoszeniach. Jeśli to możliwe, wartości powinien wstrzykiwać w czasie wykonania magazyn sekretów. Wiersze poleceń bywają widoczne dla lokalnych administratorów i narzędzi inwentaryzacji, więc uwierzytelnione proxy bez osobnych, ograniczonych danych jest ryzykiem.
Należy zapisać czas rozpoczęcia, cel, argumenty bez sekretów i niezmieniony status wyjścia jak w przykładzie. Oficjalna strona CLI nie publikuje stabilnego mapowania kodów liczbowych, więc artykuł go nie wymyśla. Kod jest sygnałem technicznym; dla odbioru wiążące są kontrole lokalne i w Sophos Fusion.
Logi instalatora znajdują się w C:\ProgramData\Sophos\CloudInstaller\Logs\ i mają wzorzec z sygnaturą czasu SophosCloudInstaller_<date>_<time>.log. Należy użyć pliku odpowiadającego danemu podejściu. --traillogging zapisuje treść komunikatów między urządzeniem i Sophos Fusion. Używać go tylko na polecenie Sophos Support; pomoc techniczna musi także podać jawny sposób wyłączenia z aktualnej procedury diagnostycznej MCS i potwierdzić wyłączenie rejestrowania. Przed udostępnieniem sprawdzić logi pod kątem sekretów.
Odbiór pilotażu i uruchamianie fal
Na każdym urządzeniu pilotażowym należy potwierdzić aktywność oczekiwanej ochrony Sophos, brak niezamierzonej luki w ochronie trzeciej i zakończenie wymaganych restartów. Po instalacji agenta otworzyć w Sophos Fusion My Environment > Computers & Servers i potwierdzić, że urządzenie jest widoczne z oczekiwanymi informacjami o kondycji, zainstalowanych produktach, ostatniej aktywności i grupie. Więcej informacji znajduje się na stronie szczegółów komputera.
Po uzgodnionym okresie obserwacji uruchamia się małą reprezentatywną falę, a później większe. Dla każdej porównuje się ukończenie instalacji, rejestrację Sophos Fusion, kondycję, restarty i konflikty. Przed szerokim wdrożeniem pilotaż musi objąć różne lokalizacje, trasy proxy, wersje Windows i produkty trzecie.
Zatrzymanie, wycofanie i eskalacja
Kolejną falę zatrzymuje się, jeśli urządzenia nie pojawiają się w Sophos Fusion, ochrona nie staje się aktywna, błędy przekraczają próg albo grupują się problemy sieciowe, restartów lub konkurencji. Najpierw wstrzymać przypisanie i automatyczne ponowienia; nie umieszczać urządzeń w ślepej pętli reinstalacji.
Wycofanie zadania nie przywraca automatycznie konkurenta usuniętego przez instalator. Jeśli odbiór nie powiedzie się, urządzenia obsługuje się oddzielnie: poprawnie usuwa Sophos, odtwarza poprzedni produkt albo pozostawia działający stan Sophos zgodnie z planem. Nie zmieniać na ślepo obiektów Sophos Fusion, Tamper Protection ani ważności instalatora. Pełne usunięcie opisuje osobny artykuł.
Do eskalacji zebrać tenant/region, czas, urządzenie, wersję Windows, argumenty bez sekretów, niezmieniony status wyjścia, falę i odpowiadający plik SophosCloudInstaller_<date>_<time>.log. Usunąć sekrety. Dowody przekazać Sophos Support przy niewyjaśnionych lub powtarzalnych błędach; przy różnicach wydań zapisać też faktycznie oferowaną wersję Core Agent.
Powiązane artykuły
Pojedynczą instalację opisuje Instalowanie Sophos Endpoint w Windows. Zarządzanie Agent Mode i oprogramowaniem Sophos Endpoint wyjaśnia tryby. VDI ma inne wymagania dotyczące tożsamości i klonowania; należy skorzystać z artykułu Przygotowanie Sophos Endpoint w VDI Gold Image. Pełne usunięcie opisuje Odinstalowywanie Sophos Endpoint w Windows. Szczegółowa diagnostyka wykracza poza ten proces.