Skript:
#!/usr/bin/osascript
tell application "System Preferences"
activate
set current pane to pane "com.apple.preferences.users"
delay 2
tell application "System Events"
click radio button "Login Items" of tab group 1 of window "Users & Groups" of application process "System Preferences"
end tell
end tell
Wie ermögliche ich unterstützenden Zugriff auf dieses Skript? Wenn Sie dies über den „Skripteditor“ ausführen, muss lediglich der „Skripteditor“ unter „Barrierefreiheit“ in „Sicherheit und Datenschutz“ aktiviert werden.
Aber ich muss diese (und einige andere ähnliche Skriptdateien) ausführen, um ohne Eingreifen des Benutzers ausgeführt zu werden. Ich habe versucht, die Datei in den Formaten .sh, .app, .scpt, .applescript zu speichern und ohne Erfolg über das Terminal als sudo auszuführen.
Ich habe andere Fragen wie diese und andere ohne Hilfe durchgegangen.
EDIT: Danke für die Antwort Jungs. Wir haben diese Methoden bereits ausprobiert und sie funktionieren ohne Zweifel und genau hier liegt das Problem. Wir haben viel zu viele Mac-Rechner, um herumzugehen und sie manuell zu aktivieren. Wir hatten auf einen Befehl gehofft, der Terminal mit der Erlaubnis des Benutzers (ähnlich wie UAC in Windows) oder wenn möglich im Hintergrund zur Liste hinzufügt.
Wenn Sie AppleScript -Code über osascript
in Terminal ausführen, müssen Sie Terminal zu System Preferences > Security & Privacy > Privacy > Accessibility hinzufügen , um den unterstützenden Zugriff zu ermöglichen.
Ich nahm Ihren Code , speicherte ihn in einer Datei namens testcode
und machte ihn mit ausführbar chmod
. Ich habe es dann im Terminal ausgeführt und folgende Fehlermeldung erhalten:
./testcode:157:286: execution error: System Events got an error: osascript is not allowed assistive access. (-1728)
Ich habe dann Terminal zu Systemeinstellungen > Sicherheit & Datenschutz > Datenschutz > Zugänglichkeit hinzugefügt und es erneut ausgeführt. Anschließend wurde das Skript ordnungsgemäß verarbeitet und Folgendes zurückgegeben:
radio button Login Items of tab group 1 of window Users & Groups of application process System Preferences
Es öffnete natürlich die Systemeinstellungen für dieses Ziel .
Ich habe eine Fehlermeldung erhalten 636:751: execution error: System Events got an error: osascript is not allowed assistive access. (-1719)
, obwohl ich den osascript
Befehl von iTerm 2 ausgeführt habe, das sich auf der Liste der Anwendungen in „Systemeinstellungen > Sicherheit und Datenschutz > Datenschutz > Eingabehilfen“ befand.
Ich habe den Fehler nicht mehr erhalten, nachdem ich auch die Systemereignisse-Anwendung (in /System/Library/CoreServices/
) zu dieser Liste hinzugefügt habe.
Der entscheidende Punkt in der verlinkten Antwort ist :
Wenn Sie die LaunchAgents zum ersten Mal laden oder ausführen, werden Sie aufgefordert, den unterstützenden Zugriff in den Systemeinstellungen festzulegen. Wenn Sie die Systemeinstellungen bereits geöffnet haben, wird dies nicht der Fall sein, aber die Skript-Textdatei wird der Liste hinzugefügt.
Sie müssen jetzt nur noch das Kontrollkästchen aktivieren, um es zuzulassen.
Schritt 1 besteht darin, die Registerkarte Sicherheit zu öffnen und Ihrer Skript-App oder den einzelnen Skripts die Berechtigung zu erteilen, die Schnittstelle zu automatisieren.
Schritt 2 - Profitieren und Fehler vermeiden -1728
execution error: System Events got an error: osascript is not allowed assistive access. (-1719)
und ich werde von den Systemeinstellungen nicht aufgefordert, den unterstützenden Zugriff zuzulassen. macOS 10.12.6tell application "System Events" to do shell script "osascript -e 'tell application \"System Events\"\n display dialog (items of (name of (every process whose name contains \"sc\") as list) as string)\n end tell'"
. . . und Sie sehen eine Liste von (leider nicht "getrennten") Prozessen mit "osascript" am Ende.
Chris Redford
Kevin
Ben Davis