はじめに
- 良い子は真似しないようにしましょう
- まぁ何かアイディアがあるともしかしたらうまく使えるかもしれないけど
組み合わせ
- Apple Script の
display dialogを使えば簡単なダイアログをポンと表示できる - Jamfのスクリプト機能を使えば特定のユーザーや端末に対して特定タイミングで任意のスクリプトを実行できる
- この2つを組み合わせることで、いきなり誰かの端末上に意味わからんダイアログを表示させることが可能になる
スクリプト
Jamfの設定 > コンピューター管理 > スクリプト に以下のようなスクリプトを追加する。
ポイントは今ログインしてmacを触っているユーザーを特定すること。そこに対してダイアログ表示を仕掛けないとGUI的に表示されない。ここで触ってる本人じゃないユーザーになってしまうと、OS内部ではダイアログが表示されたかもしれないが、端末の画面的には何の反応もない意味のない状態になってしまう。
currentUser=$( echo "show State:/Users/ConsoleUser" | scutil | awk '/Name :/ { print $3 }' )
sudo -u ${currentUser} osascript -e 'display dialog "私メリー、いまあなたのうしろにいるの" with title "WARNING" buttons {"OK"} default button "OK"'
ポリシー
Jamfのコンピュータ > ポリシー でスクリプト実行用のポリシーを追加する。
オプション > スクリプトで先程作ったスクリプトを単に指定すればOK.
あとは、Scopeで対象者を設定する。まぁこのあたりはJamfの王道の使い方なので迷う人はいないと思う。
大事なのが、オプション > 一般 > トリガー の部分。オススメは、 ネットワーク状態の変更 と Recurring Check-in の両方に入れる形。
これでWi-Fiなどの環境が切れたり変わったり、あるいは大体15分毎ぐらいにスクリプトが起動させることができる。
あとは、カスタム > カスタムイベント を使うのもアリかもしれない。私は使ったことがないので詳しくない。
実行頻度は 継続的を指定すべし。そうじゃないと、ユーザーや端末毎に1回だけしか実行されずつまらない。
こんな感じ
こういうダイアログがJamfによって起動される。何も知らずにこれやられるとビックリすると思う。
応用例
パッとはあんまり思いつかない。マジでネタ的というか嫌がらせに近いものしか思い浮かばない。
Apple Script による display dialog自体は結構色々やれる。それこそフォームを作って何か入力させたりとかもできる。
Jamfとは分離してApple Scriptの話自体はQiitaやZenn, それこそ世の中にたくさん情報があるので、調べてみてほしい。単にそのスクリプト部分の実装だけなら別にJamfは全く関係ないので試しやすいと思う。
使い方によっては、なんか便利なことができるかもしれない。

