In Ihrer Version des Skripts gibt es zwei Hauptprobleme:
SMB erfordert im Allgemeinen eine Authentifizierung. Der erste Fehler "curl: (67) login denied" zeigt an, dass dies in Ihrem Fall fehlgeschlagen ist. Beachten Sie, dass auch wenn der Client bereits beim Server authentifiziert ist und der entsprechende Ordner eingehängt ist,
curl
versucht, eine eigene Verbindung zum Server herzustellen und die Datei über diesen Server herunterzuladen. Sie müssen die Datei entweder an einem für den Gast zugreifbaren Ort ablegen (ein HTTP-Server ist wahrscheinlich einfacher als SMB), oder Sie müssen einen anderen Weg finden, um sie an den Client zu senden.ARD ist hier eigentlich eine Option; Sie können die Option "Elemente kopieren" (im Menü "Verwalten" oder die Schaltfläche "Kopieren" in der Symbolleiste) verwenden, um die Datei von Ihrer Admin-Station auf die Clients zu kopieren. Anschließend können Sie das Installationsskript als separaten Schritt ausführen. ARD kann auch ganze Ordnerstrukturen kopieren, sodass Sie keine ZIP-Datei senden und diese dann auf jedem Client erweitern müssen. Senden Sie einfach den erweiterten Ordner.
Übrigens, es gibt ein weiteres Problem mit diesem
curl
Befehl: Der Dateiname scheint ein Leerzeichen zu haben, das in Anführungszeichen oder Escape-Zeichen gesetzt werden muss, damit er als einzelne URL mit einem Leerzeichen und nicht als zwei separate URLs behandelt wird.Die Datei hat den Namen "Samanage_Agent_1.1.72_1.1.37_203_30_installer", aber Sie haben den Befehl, eine Datei mit dem Namen "samanage.zip" zu entpacken. Ändern Sie entweder den Namen der Datei, die Sie herunterladen / senden, in "samanage.zip" oder bearbeiten Sie den
unzip
Befehl so, dass er dem tatsächlichen Namen entspricht.Ein weiteres Problem (das auch im Originalskript enthalten ist) besteht darin, dass es alle Schritte blind durchläuft, selbst wenn einer teilweise ausfällt. In diesem Fall ist der
curl
Befehl beispielsweise fehlgeschlagen. Selbst wenn der Dateiname richtig war, würde dies nichts bedeuten. Wenn Sieunzip
also versuchen, die erweiterte Datei auszuführen, hätte es möglicherweise nicht funktioniert.Wenn Sie nicht über ein komplexeres Skript verfügen, das nach Fehlern wiederhergestellt werden kann, empfiehlt es sich, das Skript zu beenden, anstatt zu versuchen, fortzufahren. Sie können dies tun, indem Sie den Befehl
set -e
am Anfang des Skripts hinzufügen oder die Befehle mit&&
anstelle von verknüpfen;
. Mit dieser&&
Option können Sie auch einen Fehlerbehandler hinzufügen mit||
:cd /Users/Shared && curl -k -O https://server.hostingyourfiles.com/samanage.zip && unzip samanage.zip && /Users/Shared/samanage/Samanage_Agent_*.app/Contents/MacOS/installbuilder.sh --mode unattended && rm -rf /Users/Shared/samanage/ || echo "Installation failed on $HOSTNAME"