を使用する
AppleScript
は
Mac OS X
に内 蔵された、強力で用途の 広いスクリプテ ィング言語で す。
AppleScript
を使用すると、ショートカットの作成、反復的なタスクの自動化、さらには、多く
の時間を節約するカスタムアプリケーションの作成が可能です。
AppleScript
は英語に似た言語
であり、コマンドを含むスクリプトの記述に使用できます。スクリプトでは、ユーザの対話に基
づいて、あるいは、データ、書類、状況を解析または分析することによって処理を決定できます。
「
Remote Desktop
」は、ほかの多くの
Mac OS X
アプリケーションと同様に、
AppleScript
コマ
ンドによって制御できます。
AppleScript
は、条件文、比較および算術演算、変数の格納機能を
備えた完全な言語です。
このマニュアルでは、
AppleScript
の言語構文やプログラミングの慣例については解説しません。
AppleScript
によるプログラミングの手順について詳しくは、
AppleScript
のオンラインヘルプ
を参照してください。
このセクションでは、
AppleScript
の簡単な説明、
「
Remote Desktop
」の
AppleScript
用語説明
の使用方法、およびサンプルスクリプトを示します。
Remote Desktop
の
AppleScript
の基本
AppleScript
は、オブジェクトに送信される一連のコマンドで構成されます。オブジェクトには、
アプリケーション、スクリプト、ウインドウ、設定、
「
Finder
」など、さまざまなものが含まれ
ます。これらのオブジェクトは、特定のコマンドセットを受け取り、望ましい動作によって応答
するこ とができ ます。基本的に は、スク リプトは アプリケ ーション(この場 合「
Remote
Desktop
」)に対し、特定のタスクを完了するか情報を取り出すように指示します。条件文を使
用することで、スクリプトに意思決定機能を提供し、変数を定義することで、スクリプトに記憶
機能を提供できます。
「
Remote Desktop
」では、その基本機能のすべてをスクリプトで操作できます。管理者がマウ
スをポイント&クリックすることによって実行するタスクはすべて、
AppleScript
を実行するこ
とによって実現できます。たとえば、以下のような作業を実行できます:
Â
コンピュータの情報を得る/コンピュータの名称を変更する
Â
コンピュータをリストに追加する
Â
項目をコピーまたはインストールする
Â
レポートタスクを実行する
第
9
章
タスクを自動化する
173
Remote Desktop
の
AppleScript
用語説明を使用する
スクリプト制御可能な各アプリケーションには、
AppleScript
用語説明(アプリケーションが理
解できるオブジェクトとメッセージのリスト)が含まれます。たとえば、
「
Remote Desktop
」の
用語説明には、以下のエントリーを持つ「
computer list
」という名前のオブジェクトがあります:
「
computer list
」はほかのオブジェクト(この場合「
computer
」)を含むオブジェクトであり、
「
id
」やその「
name
」などのプロパティを持ちます。このオブジェクトはクエリーを受けて、プ
ロパティの値(上記の通り
Unicode
テキスト)を返すことができますが、スクリプトの内部か
ら「
id
」を変更することはできません(読み取り専用であることを示す「
r/o
」ラベルが付いて
います)。スクリプトではこのオブジェクトを動詞(
verb
)
、またはメッセージによって操作でき
ます。
用語説明には動詞(
verb
)、またはメッセージも含まれます。これらの動詞は用語説明内のオブ
ジェクトを操作するコマンドです。たとえば、
「
Remote Desktop
」の用語説明には「
add
」とい
う名前の動詞があり、そのエントリーは以下の通りです:
このエントリーは、動詞がどのような操作を、どのようにして実行できるかを定義します。この
エントリーは、「
Remote Desktop
」が指定されたコンピュータをコンピュータリストに追加で
きることを示しています。オブジェクト「
computer
」および「
computer list
」は「
add
」によっ
て操作されます。
「
Remote Desktop
」の完全な
AppleScript
用語説明にアクセスするには:
1
「
/
アプリケーション
/AppleScript/
」フォルダにある「スクリプトエディタ」を起動します。
2
「ファイル」>「用語説明を開く」と選択します。
3
「
Remote Desktop
」を選択します。
4
「
OK
」をクリックします。
「
Remote Desktop
」用の
AppleScript
用語説明は、付録
C
「
AppleScript Remote Desktop
ス
イート」でも参照できます。
computer list n [inh. item] :
A list which holds computers.
ELEMENTS
contains computers; contained by application.
PROPERTIES
id (Unicode text, r/o):
The unique identifier (UUID) of the computer list.
name (Unicode text) :
The name of the computer list.
add v :
Add a computer to a task.
add computer :
The computer.
to computer list :
The computer list (or task) to add the computer to.
174
第
9
章
タスクを自動化する
AppleScript
のサンプル
この
AppleScript
は、コンピュータのグループの高速クリーンアップを実行するために使用でき
ます。このスクリプトはまず、干渉を防ぐためにコンピュータ画面をロックします。次に、クラ
イアントコンピュータの現在アクティブなデスクトップ上に残っているすべての項目を削除し
ます。最後に、クライアントの「ゴミ箱」を空にし、画面をロック解除して作業を完了します。
このスクリプトは学習目的で作成されたものであり、コンピューティング環境への適合性につい
ては明示、暗示を問わず保証されていません。また、このサンプルスクリプトは対象コンピュー
タ上の項目を削除します。各自の責任のもとで使用してください。
--
「
Remote Desktop
」のローカルコピーのコマンド操作を開始する
tell application "Remote Desktop"
--
実行対象のリストを決定する。この場合は「
Classroom
」という名前のリスト
set these_computers to computer list "Classroom"
--
ロックされた画面に表示するテキストを決定する
set screen_message to "Please wait" as Unicode text
--
リモートコンピュータ上で
AppleScript
を実行する
UNIX
スクリプトを作成する
set the UNIX_script to "osascript -e 'tell application \"Finder\" to
delete every item of the desktop whose class is not disk'"
--
ロックタスクのパラメータを設定する
set lock_task to make new lock screen task with properties {name:"Lock
Classroom", message:screen_message}
--
タスクを実行する
execute lock_task on these_computers
-- UNIX
スクリプトパラメータを設定する
set clean_task to make new send unix command task with properties
{name:"Clean Desktop", showing output:false, script:UNIX_script}
--
タスクを実行する
execute clean_task on these_computers
--
その後、
「ゴミ箱」を空にする
execute (make new empty trash task) on these_computers
--
終了したら画面のロックを解除する
execute (make new unlock screen task) on these_computers
end tell
第
9
章
タスクを自動化する
175
Remote Desktop
で
Automator