Apple Remote Desktop - Remote DesktopでAppleScriptを使用する

background image

を使用する

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

を実行するこ

とによって実現できます。たとえば、以下のような作業を実行できます:

Â

コンピュータの情報を得る/コンピュータの名称を変更する

Â

コンピュータをリストに追加する

Â

項目をコピーまたはインストールする

Â

レポートタスクを実行する

background image

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.

background image

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

background image

9

タスクを自動化する

175

Remote Desktop

Automator