Sophos UTM: Decommissioning of obsolete URL categorization services CFFS. Click here for important info.

This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Sophos Endpoint Protection auf Clients per CMD Skript installieren

Wir haben seit kurzem Sophos Endpoint Protection was ich über Sophos Central manage.

Dieses möchte ich nun ausrollen für den Rest der Mitarbeiter. Geschehen soll dies über ein CMD Skript was ich auf der Sophos Support Seite bereits gefunden habe:

@echo off
SET MCS_ENDPOINT=Sophos\Management Communications System\Endpoint\McsClient.exe
IF "%PROCESSOR_ARCHITECTURE%" == "x86" GOTO X86_PROG
IF NOT EXIST "%ProgramFiles(x86)%\%MCS_ENDPOINT%" GOTO INSTALL
exit /b 0

:X86_PROG
IF NOT EXIST "%ProgramFiles%\%MCS_ENDPOINT%" GOTO INSTALL
exit /b 0

:INSTALL
pushd \\servername\share
SophosSetup.exe --quiet
Popd

 

Leider funktioniert dies nicht. Nach einiger Fehlersuche habe ich festgestellt, der Code bricht schon im ersten Block ab.

Leider habe ich keine großartigen Kenntnisse in Batch Programmierung und bin daher etwas aufgeschmissen an diesem Punkt.

Die dazugehörige GPO wird wie geplant angewendet. Die Setup.exe soll über ein freigegebenes Netzlaufwerk M:\Endpoint\SophosSetup.exe verteilt werden.

Kann mir jemand helfen, wie der Code geändert werden muss damit dies funktioniert?

 

Vielen Dank im voraus!



This thread was automatically locked due to age.
Parents Reply Children
  • Hallo ,

    Ist ein Moderator in der Lage
    ja, aber nur wenn der Original Poster Mitglied der betreffenden Foren-Gruppe ist.

    Wo kommt das PAUSE Statement her bzw. wo im Skript ist es eingefügt - direkt nach :INSTALL? Da offensichtlich ECHO ON ist, scheint ja direkt zu PAUSE gesprungen zu werden und da geht es ja erst nach Tastendruck weiter. Da sollte sich dann das PUSHD melden.

    Christian

  • QC said:
    ja, aber nur wenn der Original Poster Mitglied der betreffenden Foren-Gruppe ist.

    Das ist geändert, von meiner Seite aus steht dem damit nichts mehr im Wege :)

    Ich hänge mal ein Bild an mit dem Code. Das echo on habe ich natürlich umgeändert und das Pause eingefügt damit ich überhaupt einen Output aus der Konsole bekomme.

    Nach dem Tastendruck von PAUSE beendet sich das Skript sofort, es springt leider nicht weiter wie es eigentlich sollte.

     

  • Dann ist der Freigabe Name wo sich SophosSetup.exe befindet nicht richitg. Evtl. mal mit \\xxxx\muster\Endpoint\  probieren.

  • Hallo Administrator User178,

    von meiner Seite aus
    hm, entweder kann ich nicht im UTM Forum herum schieben oder das UTM Forum ist speziell - @: Bob, what do you say?

    es springt leider nicht weiter
    das sollte nur dann der Fall sein, wenn McsClient.exe schon vorhanden ist - das sollte leicht festzustellen sein.

    Christian

  • QC said:
    das sollte nur dann der Fall sein, wenn McsClient.exe schon vorhanden ist - das sollte leicht festzustellen sein.

    Ist auf dem Test-Client nicht vorhanden. Überhaupt ist dort natürlich gar kein Sophos Verzeichnis angelegt da es ja durch das Skript letzendlich installiert werden soll. ^^

    Interessanterweise bricht er auf dem Testclient sogar schon bei der zweiten Zeile:

    IF "%PROCESSOR_ARCHITECTURE%" == "x86" GOTO X86_PROG

    ab.

    Keine Ahnung warum der Check welche Architektur vorhanden ist solche Probleme bereitet.

  • Hallo Administrator User178,

    klingt sonderbar. Ich würde testen, ob IF EXIST ebenso False zurückgibt oder nicht, z.B.
    IF EXIST "%ProgramFiles(x86)%\%MCS_ENDPOINT%" ECHO Mcs existiert

    Christian

  • Hallo Christian,

     

    interessanterweise gibt der Befehl überhaupt keine Ausgabe. Ich weiß nicht ob das so sein soll?

    Ich kenne mich leider in CMD so überhaupt nicht aus, macht es Sinn wenn ich sowieso nur 64 Bit Systeme bediene den Part mit dem Architektur Check einfach rauszulöschen und irgendwie eine Brücke einzurichten das er direkt zu dem Install Part übergeht?

  • Hallo Administrator User178,

    der Architektur Check ist nicht nötig, wenn es keine 32Bit-Systeme gibt, klar.
    Das IF NOT EXIST dient dazu, den Installer nur dann aufzurufen, wenn MCS noch nicht installiert ist. Das Statement sollte daher nicht "überbrückt" werden und es sollte auch richtig funktionieren. Mir fällt kein Grund für ein Fehlverhalten ein.
    Die Zeile
    IF EXIST "%ProgramFiles(x86)%\%MCS_ENDPOINT%" (ECHO Mcs existiert) ELSE ECHO Doch nicht
    sollte
    Doch nicht
    ausgeben, und umgekehrt 
    IF NOT EXIST "%ProgramFiles(x86)%\%MCS_ENDPOINT%" ECHO Mcs existiert nicht
    Mcs existiert nicht

    Wenn das richtig ausgeführt wird, muss das auch mit einem GOTO so sein, das Skript sollte nicht in die PAUSE laufen. Übrigens: CMD Skripts sind keine Geheimwissenschaft, eine Übersicht gibt es bei SS64.com.

    Christian

  • Danke für deine ausgiebige Hilfe Christian!

    Der Code IF EXIST "%ProgramFiles(x86)%\%MCS_ENDPOINT%" (ECHO Mcs existiert) ELSE ECHO Doch nicht

    ergibt "doch nicht" denn das Verzeichnis ist nicht vorhanden.

    Ich frage mich gerade wie man den Code genau umschreiben muss, um den Architektur Check der nicht notwendig ist zu entfernen.

    Die Zeile

    SET MCS_ENDPOINT=Sophos\Management Communications System\Endpoint\McsClient.exe

    Wird glaube ich benötigt, da er dort eine Variable definiert? Der Inhalt dieser würde dann über pushd weitergegeben werden an das Verzeichnis mit der Sophos.exe?

    Ansonsten wenn nicht benötige ich ja theoretisch nur einen Verweis auf den Netzwerkspeicherort?

     

  • Was ist denn jetzt mit dem Freigabe Name in dem sich die Exe befindet, ist der richtig?

    pushd \\server\muster\Endpoint

     

    Bitte mal im Script an erster Stelle das echo off durch echo on ersetzten und die Ausgabe anzeigen.

    zusätzlich noch ein "net use" Ausgabe ausgeben und hier posten.

     

    Sofern die Freigabe von \\server\ richtig ist, funktioniert das Script auch ohne Probleme!