AppleScript
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/05/13 07:49 UTC 版)
制限機能
あまりに拡張され、できることが増えすぎたため、AppleScriptの一部機能を抑止するための機構がmacOSに用意されつつある。以下の機能についてはデフォルトでは禁止状態になっているが、管理者パスワードを入力すれば実行を許可するようになっている。
リモートApple Eventsへの応答禁止
ネットワーク上の他のMacからのコントロールを行うリモートApple Eventsに対し、macOS標準装備の各アプリケーションは応答しないようになっている。また、出荷時のデフォルト設定で、リモートApple Eventsはオフになっている。
GUI Scriptingの実行禁止
画面上のメニューやボタンなどを操作するGUI Scriptingについては、「システム環境設定」の「セキュリティとプライバシー」>「アクセシビリティ」で個別に許可を行うようになっている。デフォルト設定では、どのプログラムに対しても許可していない。
Safari上でのdo javascript命令の実行禁止
Safari 9.1.1より、「開発」メニューに「Apple EventsからのJavaScriptを許可」の項目が新設され、これにチェックを入れないとAppleScriptからSafariに対してdo javascript命令を実行できなくなった[26]。いったん許可すれば、その状態は継続される。
FileMaker Pro上での拡張アクセス権におけるApple Eventによる操作許可設定
FileMaker Pro v16より、FileMaker Script中におけるAppleScriptの実行(正確にいえば、AppleScriptからFileMaker Pro自身を操作すること)がデフォルトの権限セットのままでは許可されない状態になっている。そのため、より以前のバージョンで作成したFileMaker ProデータベースをFileMaker Pro v16でオープンすると、FileMaker Script Step実行時に「実行権限エラー」ダイアログが表示され、Script Stepの実行が行われないという現象に直面することがある。このような場合には、拡張アクセス権で「Apple EventおよびActive-XによるFileMaker操作の実行を許可」にチェックを入れれば実行できるようになる。
「セキュリティとプライバシー」による権限設定(macOS 10.14より)
macOS 10.14より、システム環境設定の「セキュリティとプライバシー」>「プライバシー」項目にセキュリティ度を調整するための各種機能が追加され、AppleScriptもその影響を受けるようになった。
「フルディスクアクセス」項目では、動作中のMacのすべてのユーザーに対して、ユーザー自身のメール、メッセージ、Safari、ホーム、Time Machineバックアップなどのデータや特定の管理設定へのアクセスを許可する。AppleScriptを利用するユーザーはこの項目に「スクリプトエディタ」と「スクリプトメニュー」を登録しておく必要がある。
「オートメーション」項目では、他のアプリケーション制御の許可、および取り消しを行える。スクリプトエディタ以外のアプリケーションで、他のアプリケーションを制御する場合には、動作中の最初の要求時にユーザーに対して承認を求めるダイアログを表示する。承認されたアプリケーションはこの「オートメーション」項目に表示されるようになる。実行したユーザーが承認しなかった場合にも、本項目にチェックボックスがオフになった状態で表示されるため、あとからシステム環境設定上の本項目において承認を行う(チェックボックスをオンにする)ことが可能である。
なお、一度「オートメーション」項目に登録され、ユーザーの承認を得ていれば、毎回ユーザーの承認ダイアログが表示されることはない。
逆に、本「オートメーション」項目に意図的に登録させたい場合、アプリケーションのバージョン番号を確認したり最前面に表示させる(activate)コマンドを実行させる程度ではシステムが反応しない。他のアプリケーションを操作するAppleScriptアプレット/AppleScriptアプリケーションにおいて、初回起動時に「オートメーション」項目に登録される程度の簡単な(害のない)アプリケーション操作を意図的に行う必要が生じるようになった。AppleScript側から任意のアプリケーションに対する操作が許可されているかを知ることは、サードパーティのフレームワークを呼び出すことで可能となっている[27]。
SIPによる機能制限(macOS 10.14より)
macOS 10.11以降、SIPによる機能制限が段階的に強化され、macOS 10.14においてはApple純正のスクリプトエディタにも制限が加わった。ホームディレクトリ下の「ライブラリ」フォルダ中の「Frameworks」フォルダ(デフォルトでは存在しない)へのアクセスがSIPにより禁止された。macOS 10.14上でこの制限を回避するには、サードパーティの開発環境「Script Debugger」を利用するか、SIPそのものを解除する必要がある。
リモートApple Eventsの応答ユーザー名制限(macOS 10.15より)
macOS 10.15以降、リモートApple Eventsでネットワーク上の他のMac上のAppleScriptから命令を受け付ける場合、呼び出す側と受け付ける側のユーザー名が同じである必要があるようになった。なお、簡単なシェルコマンドでこの制限は無効にすることができる。
- ^ JavaScript for Automation Release Note
- ^ 林信行の「Leopard」に続く道 第5回:System 7で幕をあけた激動の1990年代(後編)
- ^ AppleScript Users ML
- ^ AppleScript Language Guide Keywords
- ^ Scripting Additions for Mac OS X
- ^ macOS Mojave 10.14 Release Notes
- ^ “Mac Automation Scripting Guide - Automating the User Interface”. 2016年5月29日閲覧。
- ^ “AppleScript Overview - AppleScript Utilities and Applications - System Events and GUI Scripting”. 2016年5月29日閲覧。
- ^ “OS X: Using AppleScript with Accessibility and Security features in Mavericks”. 2016年5月29日閲覧。
- ^ “GUI Scripting”と”UI element Scripting”
- ^ 【基礎】アプリケーションの操作は、用語辞書に書いてあるとおり記述しないと動かない
- ^ AppleScriptObjC Release Notes
- ^ AppleScript sorting performance comparison
- ^ Technical Note TN2065: do shell script in AppleScript. Mac Developer Library. Apple, 2006-03-23.
- ^ ParallelesにゲストOSとしてインストールしたOS XをAppleScriptで制御
- ^ 郵便専門ネットでバージョン番号を取得
- ^ 郵便専門ネットでXML-RPC経由でJISコード(5桁、6桁どちらでも)から、その市区町村に属している郵便番号のリストを取得
- ^ 郵便専門ネットで道府県のコード(地方公共団体コードの先頭2文字)から都道府県名を返す
- ^ 郵便専門ネットで引数に指定した郵便番号で何件ヒットするのかをint型で返す
- ^ 郵便専門ネットでXML-RPC経由で郵便番号を6桁(チェックデジット付き)の全国地方公共団体コード/JISコード/市町村コードに変換
- ^ REST APIに対してGET、POST、PUT、DELETEのmethodを呼び出す
- ^ AppleScriptから電話にアクセスする
- ^ ZipZap frameworkを使ってZipアーカイブ内の情報を取得
- ^ Contactsに登録してある自分の写真をPNGでデスクトップに保存する
- ^ AppleScript Release Notes 10.11 Changes Folder Actions
- ^ OS X 10.11.5+Safari 9.1.1以降で、新たなAS制限機能が増える
- ^ tccKitで指定Bundle IDのアプリケーションの「オートメーション」認証状況を取得
固有名詞の分類
Mac OS |
AppleShare オプションキー Preferred Executable Format Hierarchical File System AppleScript |
アップルコンピュータ |
Nitro Core Image Apple Battery Charger Apple Store AppleScript |
スクリプト言語 |
Kross ActionScript UnrealScript REBOL AppleScript |
- AppleScriptのページへのリンク