Applescript: Server-Volume automatisch prüfen und erneut bereitstellen funktioniert nicht mehr

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.

Antworten (2)

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.

Danke. Ich habe versucht, die Referenz „445“ zu entfernen, aber das hat den Fehler nicht behoben.