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!
Hallo Administrator User178,
die Frage wäre im Central Forum besser aufgehoben :).
Was genau ist der Code bricht schon im ersten Block ab, wie lief die Fehlersuche ab? Gibt es eine Fehlermeldung oder hört das Skript irgendwo einfach auf?
Christian
Guten Morgen,
das Skript hört nach dem ersten Block einfach auf. Anbei mal ein Screenshot von dem Text den er ausgibt.
Ist ein Moderator in der Lage, den Thread in das dafür passendere Forum zu verschieben?
Hallo ,
Ist ein Moderator in der Lageja, 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.
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.
von meiner Seite aushm, entweder kann ich nicht im UTM Forum herum schieben oder das UTM Forum ist speziell - @BAlfson: Bob, what do you say?
es springt leider nicht weiterdas sollte nur dann der Fall sein, wenn McsClient.exe schon vorhanden ist - das sollte leicht festzustellen sein.
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.
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
IF EXIST "%ProgramFiles(x86)%\%MCS_ENDPOINT%" ECHO Mcs existiert
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?
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 ZeileIF EXIST "%ProgramFiles(x86)%\%MCS_ENDPOINT%" (ECHO Mcs existiert) ELSE ECHO Doch nichtsollte Doch nichtausgeben, und umgekehrt IF NOT EXIST "%ProgramFiles(x86)%\%MCS_ENDPOINT%" ECHO Mcs existiert nichtMcs 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.