Ich versuche, ein kleines Skript zu schreiben, das gestartet wird, wenn sich der Benutzer anmeldet. Ich habe gesucht und das Skript zum Laufen gebracht, kann es aber bei der Anmeldung mit .plist nicht ausführen
Wir haben ein Active Directory eingerichtet. Wenn sich der Benutzer mit seinen Anmeldeinformationen anmeldet, funktioniert das Skript nach der Ausführung manuell
tell application "finder"
set MyName to do shell script "whoami"
mount volume "smb://server/folder/" & MyName
end tell
oder
set MyName to do shell script "whoami"
mount volume "smb://server/folder/" & MyName
und als .scpt gespeichert, beides funktioniert manuell
Oder ich muss es so verwenden
tell application "Terminal"
set MyName to do shell script "whoami"
mount volume "smb://server/folder/" & MyName
end tell
Speichern Sie es als .sh
Jetzt wird die plist hier gespeichert /Library/LaunchAgents
:
<plist version="1.0">
<dict>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>com.script</string>
<key>ProgramArguments</key>
<array>
<string>/Users/Shared/SCRIPT.sh</string>
</array>
</dict>
</plist>
und führen Sie den folgenden Befehl aus
launchctl load /Library/LaunchAgents/com.script.plist
Es funktioniert nicht. Das Laufwerk kann während der Anmeldung nicht automatisch gemountet werden.
Bitte helfen Sie. Ich bin kein Programmierer, also seien Sie bitte konkret.
Vielen Dank, Chris
Antwort1
Ihr Skript ist ein Applescript, kein Shell-Skript, daher können Sie es nicht direkt ausführen. Ich denke, es würde funktionieren, wenn der ossascript
Befehl es interpretiert:
<array>
<string>/usr/bin/osascript</string>
<string>/Users/Shared/SCRIPT.sh</string>
</array>
(& verwenden Sie bitte eine passendere Dateierweiterung als „.sh“)
Übrigens bin ich ziemlich sicher, dass Sie KeepAlive
es auf einstellen möchten <false/>
. Wenn es auf eingestellt ist <true/>
, wird Ihr Skript kontinuierlich erneut ausgeführt und nicht nur einmal.