Gestern habe ich ein Skript gefunden, mit dem mein Mac (MacBook Pro mit El Capitan) automatisch nach einem Volume auf einem Server sucht und es erneut einbindet, wenn die Verbindung unterbrochen wird. Ich habe es leicht daran angepasst, damit mein Medienserver wieder eingehängt wird, wenn er ausfällt (was häufig vorkommt):
on idle
tell application "Finder"
set isConnected to disk "Plex" exists
end tell
if isConnected = false then
try
mount volume "Plex" on server "smb://USER:PASSWORD@192.168.0.10:445"
end try
end if
return 5
end idle
Ich habe das Skript als Skripteditor-App mit der Option „Nach Ausführen des Handlers geöffnet bleiben“ gespeichert, sodass es im Hintergrund ausgeführt wird.
Gestern hat es gut funktioniert. Wenn heute versucht wird, das Plex-Volume erneut bereitzustellen, erhalte ich die Fehlermeldung „Es gab ein Problem beim Verbinden mit dem Server“.
Ich kann mich jedoch mit dem Befehl „Mit Server verbinden“ mit dem Server verbinden, indem ich dieselbe IP-Adresse, dieselbe Benutzer-ID und dasselbe Kennwort eingebe.
Ich melde mich mit einem Administratorkonto beim NAS an, daher sollte es keine Probleme mit der Festplattenberechtigung geben.
Gibt es etwas in dem Skript, das ich verschlüsselt habe, oder ist dies ein Problem mit dem Mac oder NAS?
Ich bin völlig neu in der Skripterstellung, daher kann ich um Erläuterungen zu Antworten bitten.
Ich würde gerne einen Link zum Originalskript einfügen, aber ich kann mich nicht erinnern, wo ich es gefunden habe.
Danke.
Ich habe es geschafft, dieses Problem zu lösen, indem ich mir Code aus einem Blog „ausgeliehen“ habe, den ich gefunden habe .
on idle
set intnt to do shell script "ping -c 1 192.168.0.10; echo -n"
set paras to number of paragraphs in intnt
if paras < 5 then
else
set serverIP to "smb://192.168.0.10/Plex"
set UserAccount to "[USERNAME]"
set ServerPassword to "[PASSWORD]"
set serverVolume to UserAccount
tell application "Finder"
try
if disk serverVolume exists then
else
mount volume serverIP as user name UserAccount with password ServerPassword
end if
end try
end tell
end if
return 5
end idle
Ich habe auch festgestellt, dass das Symbol nicht im Dock angezeigt wird, wenn Sie diesen Code am Ende der Datei info.plist einer App hinzufügen .
Kopieren Sie einfach diese Zeilen und fügen Sie sie vor dem letzten /dict-Eintrag ein.
Der Nachteil ist, dass ich den Aktivitätsmanager oder das Terminal verwenden muss, um die App zu beenden, aber es sorgt für ein aufgeräumteres Dock.
<key>LSUIElement</key>
<true/>
AppleScript kann ein bisschen fehlerhaft sein. In letzter Zeit hatte ich ein paar Skripte, die ohne ersichtlichen Grund fehlerhaft waren. Ich habe eine kleine Änderung vorgenommen, gespeichert, dann die Änderung rückgängig gemacht und erneut gespeichert, und das Problem war verschwunden ... Bis es ungefähr eine Woche später wieder auftauchte (ein altes, wiederkehrendes Problem). Ich bin mir nicht ganz sicher, ob das in Ihrem Fall das Problem beheben wird, aber ein Hinweis: Sie müssen die Portnummer am Ende des Domänennamens oder der IP-Adresse nicht angeben, wenn der Port der Standardport für die ist Protokoll. Port 445 ist der Standard für SMB. Sie können den gesamten „:445“-Teil entfernen. Bei unzuverlässigen Sprachen wissen Sie nie, was Ihr Problem beheben könnte.
Richard Cosgrove