Hallo, PreCognition
Danke für Deine Hinweise, die haben mich auf die richtige Spur gebracht. Mußte mich ein wenig in AppleScript einarbeiten (noch nie benutzt), aber dann habe ich eine, nein zwei Lösungen gefunden. Die haben bestimmt noch Verbesserungspotential, aber das ist mir im Moment egal.
Also:
Mit dem Automator eine neue “Schnellaktion” erzeugen. Darin eine einzige Aktion “AppleScript ausführen” anlegen. Das AppleScript besteht im einfachsten Fall aus nur einer Anweisung:
- mount volume “afp://nasname/sharename“ — oder
- mount volume “snb://nasname/sharename“
bzw.
- mount volume “afp://nasip/sharename“ — oder
- mount volume “smb://nasip/sharename“
Ersetze:
nasname durch den richtigen Namen des NAS
nasip durch die korrekte IP-Adresse des NAS
sharename durch den gewünschten share-Namen
Für weitere shares kann je share einfach eine weitere Zeile in das Skript eingebaut werden. Das Automator-Ergebnis als Dienst installieren, und schon hat man es in allen Programm-Menüs zur Verfügung.
Je nachdem, aus welchem App-Menü man den Dienst aufruft, kann folgender Hinweis erscheinen
„XXXX.app“ möchte Zugriff auf Dateien auf einem Netzwerkvolume.
Der Hinweis kommt nur beim ersten Mal in dieser App, danach hat sich die App die Erlaubnis gemerkt.
Wichtig: Es werden keine Fehlermeldungen erzeugt, und das Skript bricht auch nicht ab, wenn eine “mount”-Zeile auf ein bereits eingehängtes share trifft.
Fehlermeldungen entstehen nur dann, wenn das Netzwerk nicht läuft, oder wenn das NAS abgeschaltet ist. Deshalb ist es auch nur dann ratsam, diese Aktion als “Anmeldeobjekt” zu konfigurieren, wenn man sicherstellen kann, daß das Netzwerk (immer) läuft und das NAS eingeschaltet ist.
Eine sichere Lösung, wenn man das doch als “Anmeldeobjekt” laufen lassen will, ist folgende Version: Ein AppleScript mit dem Script-Editor erstellen und als “Programm” speichern: Das Skript sieht im wesentlichen so aus
-- NAS Check und NAS einhängen
my checkNAS(“MYNAS”)
on checkNAS(ServerIP)
with timeout of 60 seconds
try
set NAS_check to do shell script "ping -c1 " & ServerIP
if NAS_check contains "0% packet loss" then
mount volume "smb://MYNAS/share1”
mount volume "smb://MYNAS/share2”
-- etc.
-- etc.
end if
on error
activate
display alert "MYNAS — Shares können nicht eingebunden werden!" message "Prüfe ob das NAS eingeschaltet ist — Prüfe ob LAN / WLAN verbunden ist"
activate
end try
end timeout
end checkNAS
Die Anweisungen “with timeout …” und “activate” sind u.U. überflüssig, haben sich aber bei mir als brauchbar herausgestellt.
Man kann das ganze sicherlich noch irgendwie verfeinern, aber das erspare ich mir. Mit dieser Lösung
kann ich sehr gut leben.
Das war's also - ich beende damit das Thema.
Viele Grüße
--- kare ---