osascript'e yardımcı erişim izni verilmiyor. (-1728)


16

Senaryo:

#!/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

Bu komut dosyasına nasıl yardımcı erişim sağlayabilirim? Bunu 'Script Editor' ile çalıştırırken, tek gereken 'Güvenlik ve Gizlilik' içinde 'Erişilebilirlik' altında 'Script Editor' seçeneğinin etkinleştirilmesi.

Ancak kullanıcının müdahalesi olmadan yürütmek için bu (ve diğer bazı benzer komut dosyalarını) çalıştırmak gerekir. Dosyayı .sh, .app, .scpt, .applescript formatlarında kaydetmeyi denedim ve herhangi bir şans olmadan sudo olarak terminal üzerinden çalıştım.

Ben gibi diğer sorular geçtiniz bu herhangi bir yardım olmadan ve diğer.

EDIT: Yanıt çocuklar için teşekkürler. Bu yöntemleri zaten denedik ve şüphesiz çalışıyorlar ve problem burada yatıyor. Elimizde dolaşmak ve onları etkinleştirmek için çok fazla mac makinesi var. Kullanıcının izniyle (Windows'ta UAC gibi) veya mümkünse sessizce Terminal'e listeyi ekleyecek bir komut umuyorduk.

Yanıtlar:


13

Eğer çalıştırırsanız AppleScript kodunu aracılığıyla osascriptyılında Terminali , ardından eklemek gerekir Terminal için Sistem Tercihleri > Güvenlik ve Gizlilik > Gizlilik > Erişilebilirlik o yardımcı erişim sağlamak için.


Kodunuzu aldım , adlı bir dosyaya kaydettim testcodeve kullanarak yürütülebilir yaptım chmod. Daha sonra Terminal'de çalıştırdım ve aşağıdaki hatayı aldım :

./testcode:157:286: execution error: System Events got an error: osascript is not allowed assistive access. (-1728)

Sonra ekledi Terminal için Sistem Tercihleri > Güvenlik ve Gizlilik > Gizlilik > Erişilebilirlik ve tekrar koştu. Daha sonra komut dosyasını düzgün bir şekilde işledi ve döndü:

radio button Login Items of tab group 1 of window Users & Groups of application process System Preferences

Elbette bu hedefe Sistem Tercihleri'ni açtı .


Benim durumumda, arayan Alfred 3 oldu. Bu listeye otomatik olarak eklenmiyordu, bu yüzden sadece manuel olarak Erişilebilirlik'e ekledim ve komut dosyası çağrım çalıştı.
Chris Redford

3
Güvenlik ve Gizlilik terminali olmasına rağmen aynı hataya sahibim
Kevin

5

"Sistem Tercihleri> Güvenlik ve Gizlilik> Gizlilik> Erişilebilirlik" bölümündeki uygulamalar listesinde bulunan iTerm 2'den komutu 636:751: execution error: System Events got an error: osascript is not allowed assistive access. (-1719)çalıştırmamıza rağmen bir hata osascriptmesajı aldım .

Bu olaylara Sistem Olayları uygulamasını da ekledikten sonra hatayı almayı bıraktım /System/Library/CoreServices/.


Bunun işe yaraması şaşırtıcıydı. Keşke nedenini bilsem. Önce diğer tüm daha belirgin uygulamaları ekledim ... boşuna.
Del Brown

Sen benim hayat kurtarıcımsın.
alswl

1

Bağlantılı yanıtında önemli bir nokta :

LaunchAgents'ı ilk kez yüklediğinizde veya çalıştırdığınızda, Sistem Tercihlerinde Yardımcı Erişim'i ayarlamanız istenir. Zaten Sistem tercihleri ​​açıksa açmazsınız ancak Komut Dosyası metin dosyası listeye eklenir.

Şimdi izin vermek için onay kutusunu işaretlemeniz yeterlidir.

Adım 1, güvenlik sekmesini açmak ve komut dosyası uygulamanızın veya komut dosyalarının arabirimi otomatikleştirmek için izin vermesine izin vermektir.

resim açıklamasını buraya girin

2.Adım - Kâr ve hatadan kaçınma -1728


1
Ne yazık ki bu aslında bir LaunchAgent ile benim için çalışmıyor, günlüklerim gösteriliyor execution error: System Events got an error: osascript is not allowed assistive access. (-1719)ve Sistem Tercihleri ​​tarafından yardımcı erişime izin vermem istenmiyor . macOS 10.12.6
swrobel

"Yardımcı Erişimi" için osascript da eklemeyi deneyin - en azından içten, "osascript" AppleScript davranır DEĞİL olarak basit bir komutla ama kendi başına bir süreç olarak. . . . Aşağıdaki kodu ScriptEditor'a yapıştırın:. . . tell 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'". . . ve sonuna kadar "osascript" ile (ne yazık ki "sınırlandırılmış değil") işlemlerin bir listesini göreceksiniz.
clemsam lang
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.