通知画面

Jamf Connect には、Automated Device Enrollment (自動デバイス登録) 時にプログレスバーやカスタマイズされたテキスト、画像を表示した通知画面を含めることができます。

通知画面は、コマンドをコントロールファイルに書き込むスクリプトにより構成されます。その後、このスクリプトを Script Path (スクリプトパス) (ScriptPath) 設定により指定することができます。

Jamf Pro を使用している場合、Notify Screen Log Style (通知画面のログスタイル) (NotifyLogStyle) 設定を値 jamf に構成する代わりに、Jamf Pro からのポリシーログを読み取ってユーザに表示するように通知画面を構成することもできます。

通知画面の有効化と構成

  1. 次のコマンドを実行することにより、notify メカニズムを loginwindow アプリケーションに追加します。
    /usr/local/bin/authchanger -reset -JamfConnect -Notify
  2. Notify スクリプトを作成します。
 notify スクリプトはコントロールファイルに echo コマンドを書き込みます。コントロールファイルは以下のファイルパスに格納されます: /Var/tmp/depnotify.log 以下のスクリプトはその一例です。
    #!/bin/zsh
    #variables
    NOTIFY_LOG="/var/tmp/depnotify.log"
    #For TOKEN_BASIC, use same file path location as set for OIDCIDTokenPath in com.jamf.connect.login
    TOKEN_BASIC="/tmp/token"
    TOKEN_GIVEN_NAME=$(echo "$(cat $TOKEN_BASIC)" | sed -e 's/\"//g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' | grep given_name | cut -d ":" -f2)
    TOKEN_UPN=$(echo "$(cat $TOKEN_BASIC)" | sed -e 's/\"//g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' | grep upn | cut -d ":" -f2)
    
    echo $TOKEN_GIVEN_NAME
    echo $TOKEN_UPN
     
    echo "STARTING RUN" >> $NOTIFY_LOG # Define the number of increments for the progress bar
    echo "Command: Determinate: 6" >> $NOTIFY_LOG
     
    #1 - Introduction window with username and animation
    echo "Command: Image: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.macbookpro-15-retina-touchid-silver.icns" >> $NOTIFY_LOG
    echo "Command: MainTitle: Welcome, $TOKEN_GIVEN_NAME" >> $NOTIFY_LOG
    echo "Command: MainText: Your Mac is now enrolled and will be automatically configured for you." >> $NOTIFY_LOG
    echo "Status: Preparing your new Mac..." >> $NOTIFY_LOG
    sleep 10
     
    #2 - Setting up single sign-on passwords for local account
    echo "Command: Image: /System/Applications/Utilities/Keychain Access.app/Contents/Resources/AppIcon.icns" >> $NOTIFY_LOG
    echo "Command: MainTitle: Tired of remembering multiple passwords? \n $TOKEN_GIVEN_NAME " >> $NOTIFY_LOG
    echo "Command: MainText: We use single sign-on services to help you sign in to each of our corporate services.
    Use your email address and account password to sign in to all necessary applications." >> $NOTIFY_LOG
    echo "Status: Setting the password for your Mac to sync with your network password..." >> $NOTIFY_LOG
    sleep 10
     
    #3 - Self Service makes the Mac life easier
    echo "Command: Image: /Applications/Self Service.app/Contents/Resources/AppIcon.icns" >> $NOTIFY_LOG
    echo "Command: MainTitle: Self Service makes Mac life easier" >> $NOTIFY_LOG
    echo "Command: MainText: Self Service includes helpful bookmarks and installers for other applications that may interest you." >> $NOTIFY_LOG
    echo "Status: Installing Self Service..." >> $NOTIFY_LOG
    sleep 10
     
    #4 - Everything you need for your first day
    ###Jamf Triggers
    echo "Command: Image: /System/Library/CoreServices/Install in Progress.app/Contents/Resources/Installer.icns" >> $NOTIFY_LOG
    echo "Command: MainTitle: Installing everything you need for your first day." >> $NOTIFY_LOG
    echo "Command: MainText: All the apps you will need today are already being installed. When setup is complete, you'll find Microsoft Office, Slack, and Zoom are all ready to go. Launch apps from the Dock and have fun!" >> $NOTIFY_LOG
    echo "Status: Installing Microsoft Office..." >> $NOTIFY_LOG
    /usr/local/bin/jamf policy -event "InstallOffice"
    sleep 5
     
    #5 - Finishing up
    echo "Command: Image: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ApplicationsFolderIcon.icns" >> $NOTIFY_LOG
    echo "Status: Installing Slack..." >> $NOTIFY_LOG
    /usr/local/bin/jamf policy -event "InstallSlack"
    sleep 5
    echo "Status: Finishing up... We're almost ready for you, $TOKEN_GIVEN_NAME" >> $NOTIFY_LOG
    sleep 3
     
    ###Clean Up
    sleep 3
    echo "Command: Quit" >> $NOTIFY_LOG
    sleep 1
    rm -rf $NOTIFY_LOG
     
    #6 - Disable notify screen from loginwindow process
    /usr/local/bin/authchanger -reset -JamfConnect	

    開始点としてサンプルスクリプトをダウンロードするには、Jamf's GitHub リポジトリ: https://github.com/jamf/jamfconnect を参照してください。

  3. お好みの構成方法で、Script Path (スクリプトパス) (RunScript) 設定を使用して、スクリプトにファイルパスを指定します。
 詳しくは、構成 を参照してください。

Notify スクリプトコマンド

一般的コマンド

通知画面を表示する際に一般的に使用されるコマンドを以下に示します。

Image:

このコマンドはデフォルトの notify イメージを指定パスのイメージと置換します。イメージは正しいサイズに自動的に調整されます。

例:

Command: Image: /tmp/logo.png

MainText:
このコマンドは、ユーザに対して表示されるメインテキストを変更します。
例:

Command: MainText: 新しい MacBook Pro の設定中です。しばらくお待ちください。

MainTextImage:

このコマンドはメインテキストを指定パスのカスタムアイコンで置換します。イメージは最大 660 x 105 ピクセルであり、それに合わせて比例して拡大縮小できます。

例:

Command: MainTextImage: /tmp/logo.png

MainTitle:

このコマンドは、ユーザに対して表示されるメインタイトルを変更します。

例:

Command: MainTitle: Welcome to your new MacBook Pro

インタラクティブコマンド

インタラクティブコマンドは、notify プロセス中のユーザインタラクションをカスタマイズするために使用されます。
Determinate:
このコマンドは、プログレスバーを「決定的」なものにし、スピニングバーを表示せずに手順を踏んで進展するように設定します。Notify プロセス中に使用する手順の数を指定する必要があります。設定すると、スクリプトの各ステータスのアップデートにより、バーの値がワンステージごとに増えます。
例:

Command: Determinate: 5

DeterminateManual:
このコマンドは、プログレスバーを決定的なものにし、ステージコマンドではなく手動により進展させるように設定します。Notify プロセス中に使用する手順の数を指定する必要があります。設定すると、DeterminateManualStep: コメントを使用してステータスバーを手動で進展させる必要があります。
例:

Command: DeterminateManual: 5

DeterminateManualStep:
DeterminateManual: モードの場合、このコマンドはワン手順または指定の間隔でプログレスバーを進展させます。以下の例では、プログレスバーを 2 つの手順で移動しています。
例:

Command: DeterminateManualStep: 2

DeterminateOff:
このコマンドは、プログレスバーの決定的状態を無効にします。既に発生した手順はプログレスバーで完了済みのまま残ります。これにより、進捗状態を失うことなく、決定的状態と非決定的状態の間で移動を行うことができます。
例:

Command: DeterminateOff:

DeterminateOffReset:
プログレスバーの決定的状態をオフにした後、ゼロにリセットする必要があります。
例:

Command: DeterminateOffReset:

Quit
このコマンドは notify プロセスを終了します。
例:

Command: Quit

コロンはこのコマンドには使用されません。
ユーザを表示するために、メッセージを指定することもできます。
例:

Command: Quit: この app をご使用いただきありがとうございます。

ステータスアップデートの通知

Notify プロセスでユーザをアップデートするために、echo Status: を使用できます。以下はステータスアップデートの例です。

echo Status: Jamf >>/var/tmp/depnotify.log をインストール中
注:

Determinate: コマンドが使用されている場合、プログレスバーの値はステータスアップデートごとに増えます。

Jamf Pro を使用している場合、Notify Screen Log Style (通知画面のログスタイル) (NotifyLogStyle) 設定を値 jamf に構成する代わりに、Jamf Pro からのポリシーログを読み取ってユーザに表示するように通知画面を構成することもできます。

通知画面のエンドユーザ環境

以下の画面は、Automated Device Enrollment (自動デバイス登録) 時に通知画面を有効にした場合に想定されるエンドユーザ環境を示しています。

  1. ユーザ名とアニメーション付き紹介ウィンドウ
  2. ローカルアカウントの Single Sign-On パスワードの設定
  3. Self Service により Mac の利用が楽になります
  4. 初日に必要なものをすべてインストールしています
  5. 終了