Scenariusz:
#!/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
Jak zapewnić pomocniczy dostęp do tego skryptu? Aby uruchomić to za pomocą „Script Editor”, wystarczy, że „Script Editor” zostanie włączony w „Accessibility” w „Security & Privacy”.
Ale muszę uruchomić ten (i kilka innych podobnych plików skryptowych), aby wykonać bez interwencji użytkownika. Próbowałem zapisać plik w formacie .sh, .app, .scpt, .applescript i bez powodzenia uruchomiłem terminal jako sudo.
Przeszłam przez inne pytania, takie jak to i inne, bez żadnej pomocy.
EDYCJA: Dzięki za odpowiedź chłopaki. Wypróbowaliśmy już te metody i działają one bez wątpienia i na tym polega problem. Mamy zbyt wiele komputerów Mac, aby można było je obejść i włączyć na nich ręcznie. Mieliśmy nadzieję na jakieś polecenie, które doda Terminal do listy za zgodą użytkownika (coś w rodzaju UAC w Windows) lub, jeśli to możliwe, po cichu.
źródło
Wystąpił błąd, jak
636:751: execution error: System Events got an error: osascript is not allowed assistive access. (-1719)
chociaż uruchomiłemosascript
polecenie z iTerm 2, które było na liście aplikacji w „Preferencjach systemowych> Bezpieczeństwo i prywatność> Prywatność> Dostępność”.Przestałem otrzymywać błąd po tym, jak również dodałem aplikację System Events (in
/System/Library/CoreServices/
) do tej listy.źródło
Kluczowym punktem w połączonej odpowiedzią jest :
Krok 1 polega na otwarciu karty bezpieczeństwa i zezwoleniu aplikacji skryptowej lub indywidualnym skryptom na automatyzację interfejsu.
Krok 2 - zyskaj i unikaj błędu -1728
źródło
execution error: System Events got an error: osascript is not allowed assistive access. (-1719)
i Preferencje systemowe nie wyświetlają monitu o zezwolenie na dostęp pomocniczy. 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'"
. . . a zobaczysz listę procesów (niestety „pozbawionych ograniczników”) z „osascript” pod koniec.