前提条件 : 管理者は、 https://docs.jamf.com/ja/jamf-connect/documentation/Before_You_Begin.html の指示に従って、企業のクラウド IDプロバイダーでアプリケーションを作成し、Jamf Connectの構成プロファイルを作成する必要があります。 管理者は、Smart Computer Group、ポリシーと構成プロファイルの配布、Jamf Composerまたは類似のツールを使用したインストーラーパッケージの作成に精通している必要があります。
はじめに Jamf ProとJamf Connectは、高度にカスタマイズ可能なユーザエクスペリエンスを提供します。高度にカスタマイズ可能なため、管理者はこれからの手順を始める前に必要なエクスペリエンスを文書化することをお勧めします。例えとして、管理者は以下を考慮することができます。
登録カスタマイゼーション - 登録では、エンドユーザは動画、ヘルプページへのリンク、シングルサインオンプロバイダによるJamf Pro登録へのサインインなど、インタラクティブな要素を体験できます。ユーザのショートネームと氏名をJamf Connectに渡すことで、デバイスの初期設定に必要なサインインの回数を減らすことができます。登録カスタマイゼーションの詳細については、 https://docs.jamf.com/ja/10.31.0/jamf-pro/administrator-guide/Enrollment_Customization_%E8%A8%AD%E5%AE%9A.html をご覧ください。 利用規約 (EULA) - Jamf Connectでは、ユーザに利用規約を提示し、利用規約への同意をクライアントマシンの監査ファイルに保存することができます。 企業のブランディング - Jamf Connectは、ログイン画面の背後に壁紙を表示したり、ログイン画面の上に組織のロゴを表示することができます。 初期設定中のエンドユーザへのメッセージ - Jamf Connect Notify メカニズムは、画像やテキスト、設定完了までのステップを示すステータスバーを表示することができます。 業務用端末の初期設定プロセスは企業によって異なります。企業に適したJamf ProとJamf Connectの機能を用いると同時に、次のステップに進む前にそれらをどのように使用したいかを文書化することを検討してください。
手順: 企業のブランディングアセットを用意する Jamf Connect Notify (通知) メカニズムのためのオンボーディングスクリプトを準備する カスタマイズアセットのインストーラーパッケージを作成する 一度きりで実行するメカニズムの構成プロファイルを作成する Jamf ProでコンピュータのPreStage Enrollment (事前登録)をする コンピュータ登録時に実行するポリシーを作成する Smart Computer Groupを作成して、登録が正常に完了したことを判断する Scope (配布範囲)とExclusion (除外)グループを使用して、Jamf Connectのログイン画面の一度きりで実行するメカニズムを無効にする 企業のブランディングアセットを用意する
Jamf Connectログイン画面には、カスタマイズした壁紙や企業の画像を表示することができます。この例では、グランドキャニオンの壁紙画像を表示し、PNG形式で背景を透明にしたJamfの企業ロゴを表示しています。壁紙は画面に合わせてトリミングされるため、推奨される画像のサイズと比率は、最も大きい業務用Macの画面サイズ(解像度)です。ロゴの推奨画像サイズは250x250pxですが、必要に応じて画面に合わせてサイズを変更できます。これらの要素をアセットと呼びます。
追加のアセットとして、ネットワーク接続がない場合にエンドユーザに表示するローカルのヘルプファイルを含むことができます。サポート形式はPDFとHTMLです。ヘルプのアイコンもカスタマイズできます。アイコンの推奨画像サイズは、PNG形式の16×16で、背景は透明です。
また、Notify メカニズムでは、通知画面の上部に画像を表示したり、画面の中央に文字の代わりとなるものを表示することができます。これらの画像は、端末にローカルで読み込む必要があります。
Jamf Connect Nofify (通知) メカニズムのためのオンボーディングスクリプトを準備する 管理者の要望に応じて、ログイン成功後に実行する用途で展開されるスクリプトは、必要に応じてシンプルにも複雑にもできます。柔軟性を最大限に高めるには、スクリプトをできるだけシンプルにして、ログイン後の画面で、残りの設定プロセスをJamf Proとポリシーに任せることをお勧めします。スクリプト例は次のとおりです。
#!/bin/bash
#変数
JAMFBIN="/usr/local/bin/jamf"
# Notify メカニズム:
# ユーザに表示されるデフォルトのテキストを変更します
echo "Command: MainTitle: Welcome to AnyCo!" >> /var/tmp/depnotify.log
echo "Command: MainText: Welcome to your new Mac.\\nSit tight as we do some basic setup to get you ready for success.\\nYou can see the status of the setup on the progress bar below." >> /var/tmp/depnotify.log
# ユーザにオンボーディングのステータスを知らせます
echo "Status: Installing Jamf" >> /var/tmp/depnotify.log
# Jamfクライアントバイナリのパスを確認します。まだ存在しない場合は、2秒間待機してから
# もう一度確認します。
until [ -f $JAMFBIN ]
do
echo "Status: Waiting on Jamf" >> /var/tmp/depnotify.log
sleep 2
done
# この時点で、Jamf Proが引き継ぐことをユーザに知らせます
echo "Status: Passing command and control to Jamf Pro" >> /var/tmp/depnotify.log
# 「JamfConnectLoginInstalled」という名のカスタムトリガーを呼び出して、オンボーディングを開始します
$JAMFBIN policy -event JamfConnectLoginInstalled
#!/bin/bash
#変数
JAMFBIN="/usr/local/bin/jamf"
# Notify メカニズム:
# ユーザに表示されるデフォルトのテキストを変更します
echo "Command: MainTitle: Welcome to AnyCo!" >> /var/tmp/depnotify.log
echo "Command: MainText: Welcome to your new Mac.\\nSit tight as we do some basic setup to get you ready for success.\\nYou can see the status of the setup on the progress bar below." >> /var/tmp/depnotify.log
# ユーザにオンボーディングのステータスを知らせます
echo "Status: Installing Jamf" >> /var/tmp/depnotify.log
# Jamfクライアントバイナリのパスを確認します。まだ存在しない場合は、2秒間待機してから
# もう一度確認します。
until [ -f $JAMFBIN ]
do
echo "Status: Waiting on Jamf" >> /var/tmp/depnotify.log
sleep 2
done
# この時点で、Jamf Proが引き継ぐことをユーザに知らせます
echo "Status: Passing command and control to Jamf Pro" >> /var/tmp/depnotify.log
# 「JamfConnectLoginInstalled」という名のカスタムトリガーを呼び出して、オンボーディングを開始します
$JAMFBIN policy -event JamfConnectLoginInstalled
この例のスクリプト:
Notify メカニズム(使用している場合)のデフォルト文章を変更して、ユーザに新しい業務用端末に何を設定している最中なのかを知らせます。 Jamfクライアントバイナリが適切な場所にインストールされていることを検証し、ネットワーク接続が遅い場合にはマシンへのインストールを待機します。 Jamf Proでポリシーのカスタムトリガーを実行します。これにより、ユーザに特化したソフトウェアや、Jamf Protectまたは他のエンドポイントプロテクションソフトウェアなどの必須となるセキュリティソフトウェアをインストールするためのポリシーを次々と実行させます。 スクリプト注記 : サポートされているすべてのスクリプト言語に対応していますが、追加パッケージをインストールしなくてもデフォルトでサポートされているスクリプト言語を使用することをお勧めします。例えばPythonの場合には、Apple Silicon M1チップを搭載したmacOS Big Surマシン上でRosettaを使用する必要があります。ネイティブサポートには、zshシェルとbashシェルスクリプトが含まれます。
オプションスクリプト : Jamf Connectのメニューバーのメカニズムは、ログインの成功や失敗、パスワードの変更、ネットワークの状態の変化などに応じてスクリプトを実行することができます。これが企業で必要とされる場合には、まずこれらのスクリプトを作成し、次のステップでターゲット端末に配布します。
カスタマイズアセットのインストーラーパッケージを作成する Jamf Composerまたは類似のパッケージ作成ツールを使用して、画像、ヘルプファイル、スクリプト、ブランディングのアセットのインストーラーパッケージを作成します。
すべてのユーザが利用可能な場所を使用し、ファイルやスクリプトのパーミッションを適切に設定します。標準的な場所には、/usr/local/、/Users/Shared/、/Library/Application Support 内のディレクトリが含まれます。macOS Big Surでは、ドライブが読み取り専用のシステムドライブと読み取り/書き込み可能なユーザ領域ドライブの組み合わせになっていると考えてください。macOSのソフトウェアアップデートにより、ドライブ上の場所への書き込み機能が削除された場合に備えて、自分の場所を読み取り/書き込み可能なユーザ領域にマッピングしておく必要があります。
オンボーディングスクリプト(上図では「NotifyMech.sh」)の所有者はroot:wheelとし、パーミッションは少なくともroot:wheel(550パーミッション)が読み取りと実行を行うようにします。
壁紙、ロゴ、ローカルヘルプファイルの所有者はroot:wheelとし、パーミッションは少なくとも全ユーザが読み取れるようにします(444パーミッション)。
オプションスクリプト : Jamf Connectメニューバーのメカニズムでは、ログインの成功や失敗、パスワードの変更、ネットワークの状態の変化などに応じてスクリプトを実行することができます。これらのスクリプトは、現在ログインしているユーザのパーミッションで実行されるため、所有権をroot:wheelに設定し、パーミッションを読み取りと実行(555パーミッション)に設定する必要があります。
(オプション)Jamf Connectインストーラーパッケージの展開: ほとんどの場合、パッケージの優先順位を使用すると、JamfConnect.pkgソフトウェアインストーラーがダウンロードされてインストールされる前に、カスタマイズアセットを含むインストーラーがターゲットの端末にインストールされます。ただし、ネットワーク接続が極端に遅い場合は、パッケージの優先順位に関係なく、ダウンロードした最初の.pkgをmacOSがインストールします。この場合、 https://community.jamf.com/t5/jamf-connect/jamf-connect-meta-package-for-zero-touch-deployment/td-p/233753 (英語) の手順に従って「メタパッケージ」を作成してください。メタパッケージとは、パッケージとポストインストーラースクリプトを含むパッケージのことで、Jamf Connectの起動前にカスタマイズアセットが整っていることを保証するものです。
ユーザがmacOSのログイン画面を表示する前にJamf Connectメタパッケージがインストールされなかった場合、ユーザはパッケージがインストールされるまでしばらく待ってから端末を再起動するか、オプションとしてmacOSのログイン画面がすでに読み込まれているかどうかを判断するポストインストーラスクリプトをメタパッケージに含めることができます。
#####################################################################
# ゼロタッチ導入専用
# 登録用コンピューターのネットワーク接続が遅い場合、 ユーザはmacOSの標準的なログインウィンドウが表示され、
# ユーザ名とパスワードを入力するよう求められることがあります。
# セットアップアシスタントのユーザである場合に限り、 ログインウィンドウを閉じる必要があります。
# ユーザが実際にコンピュータを使用しているときに
# loginwindowプロセスをkillすると、ユーザーは現在のセッションから強制的に排除されます。
#####################################################################
# macOS Big Surの場合 - Apple の設定が完了と判断されるまで待ちます。
while [ ! -f "/var/db/.AppleSetupDone" ]; do
sleep 2
done
# Richard Purves氏により、ユーザ向けの再設計されたデザインと
# セットアップアシスタントがまだ実行されている場合はkillall loginwindows なしでスクリプトを終了するためのロジックが作成されました。
# ユーザを探します
loggedinuser=$( /usr/sbin/scutil <<< "show State:/Users/ConsoleUser" | /usr/bin/awk -F': ' '/[[:space:]]+Name[[:space:]]:/ { if ( $2 != "loginwindow" ) { print $2 }}' )
# ログインウィンドウ、セットアップアシスタント、またはユーザがいない場合は、自動化されたデバイスの登録環境にあることになります。
if [[ "$loggedinuser" == "loginwindow" ]] || [[ "$loggedinuser" == "_mbsetupuser" ]] || [[ "$loggedinuser" == "root" ]] || [[ -z "$loggedinuser" ]];
then
# ここで、セットアップアシスタントが実行中のプロセスであるかどうかを確認します。
# セットアップアシスタントが起動していれば、まだログイン画面には到達していません。 終了し、macOSの設定アシスタントを完了させ、Jamf Connectの新しいログイン画面を表示します。
[[ $( /usr/bin/pgrep "Setup Assistant" ) ]] && exit 0
# そうでない場合は、ログインウィンドウを強制終了して、再読み込みし、Jamf Connectのログインウィンドウが代わりに表示されるようにします。
/usr/bin/killall -9 loginwindow
fi
#####################################################################
# ゼロタッチ導入専用
# 登録用コンピューターのネットワーク接続が遅い場合、 ユーザはmacOSの標準的なログインウィンドウが表示され、
# ユーザ名とパスワードを入力するよう求められることがあります。
# セットアップアシスタントのユーザである場合に限り、 ログインウィンドウを閉じる必要があります。
# ユーザが実際にコンピュータを使用しているときに
# loginwindowプロセスをkillすると、ユーザーは現在のセッションから強制的に排除されます。
#####################################################################
# macOS Big Surの場合 - Apple の設定が完了と判断されるまで待ちます。
while [ ! -f "/var/db/.AppleSetupDone" ]; do
sleep 2
done
# Richard Purves氏により、ユーザ向けの再設計されたデザインと
# セットアップアシスタントがまだ実行されている場合はkillall loginwindows なしでスクリプトを終了するためのロジックが作成されました。
# ユーザを探します
loggedinuser=$( /usr/sbin/scutil <<< "show State:/Users/ConsoleUser" | /usr/bin/awk -F': ' '/[[:space:]]+Name[[:space:]]:/ { if ( $2 != "loginwindow" ) { print $2 }}' )
# ログインウィンドウ、セットアップアシスタント、またはユーザがいない場合は、自動化されたデバイスの登録環境にあることになります。
if [[ "$loggedinuser" == "loginwindow" ]] || [[ "$loggedinuser" == "_mbsetupuser" ]] || [[ "$loggedinuser" == "root" ]] || [[ -z "$loggedinuser" ]];
then
# ここで、セットアップアシスタントが実行中のプロセスであるかどうかを確認します。
# セットアップアシスタントが起動していれば、まだログイン画面には到達していません。 終了し、macOSの設定アシスタントを完了させ、Jamf Connectの新しいログイン画面を表示します。
[[ $( /usr/bin/pgrep "Setup Assistant" ) ]] && exit 0
# そうでない場合は、ログインウィンドウを強制終了して、再読み込みし、Jamf Connectのログインウィンドウが代わりに表示されるようにします。
/usr/bin/killall -9 loginwindow
fi
ポストインストーラーで展開すると、このスクリプトは次を実行します。
macOSが.AppleSetupDoneファイルにtouchし、SetupAssistant(設定アシスタント)のプロセスが完了したことを記すようにします 現在ログインしているユーザが、_mbsetupuser(SetupAssistantがコンピュータを最初に起動したときに使用する)またはroot(macOSのログイン画面がアクティブな時のアクティブなコンソールユーザ)のいずれかであるかどうかを判断します killall -9 loginwindow を発行し、loginwindowプロセスを終了して、macOSのログイン画面を再起動します。 カスタマイズアセットのパッケージへの署名: 事前登録でインストールされたパッケージは、開発者証明書または信頼できる証明書のいずれかで署名されている必要があります。 https://docs.jamf.com/technical-articles/Obtaining_an_Installer_Certificate_from_Apple.html (英語) を参照して開発者証明書を取得するか、 https://docs.jamf.com/technical-articles/Creating_a_Signing_Certificate_Using_Jamf_Pros_Built-in_CA_to_Use_for_Signing_Configuration_Profiles_and_Packages.html を参照してJamf Pro認証局で署名証明書を作成してください。
完了したら、Jamf Proの配布ポイントにカスタマイズアセットのパッケージをアップロードしてください。
一度きりで実行するメカニズムの構成プロファイルを作成する Authchanger
Jamf Connect Notify メカニズムはデフォルトでは有効になっていません。コマンドラインから指示しいくつかの方法で有効にすることができますが、特別なコーディングを必要としない最も簡単な方法は、構成プロファイルをプッシュすることです。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Arguments</key>
<array>
<string>-reset</string>
<string>-JamfConnect</string>
<string>-Notify</string>
</array>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Arguments</key>
<array>
<string>-reset</string>
<string>-JamfConnect</string>
<string>-Notify</string>
</array>
</dict>
</plist>
authchanger構成プロファイルのドメインは、com.jamf.connect.authchangerです。
Arguments配列の文字列は、 https://docs.jamf.com/ja/jamf-connect/documentation/authchanger.html に文書化されているコマンドに従います。上記の例は、/usr/local/bin/authchanger -reset -JamfConnect -Notify となっており、Notifyメカニズムを有効にする場合と同じです。authchangerコマンドは、JamfConnect.pkgインストーラーの一部として実行されます。ソフトウェアがインストールされると、インストーラーパッケージはcom.jamf.connect.authchanger構成プロファイルで送信されたコマンドを使用します。
スクリプト実行と利用規約 (EULA)の環境設定キー デフォルトでは、com.jamf.connect.loginの構成プロファイルに、利用規約 (EULA)を表示したりスクリプトを実行する環境設定キーが存在する場合、Jamf Connectログインメカニズムは利用規約を表示したりそのスクリプトを実行します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>EULAPath</key>
<string>/path/to/audit/file/destination</string>
<key>EULASubTitle</key>
<string>EULA Subtitle</string>
<key>EULAText</key>
<string>Ipsum lorum</string>
<key>EULATitle</key>
<string>EULA Title</string>
<key>ScriptArgs</key>
<string>arguments</string>
<key>ScriptPath</key>
<string>/path/to/script.sh</string>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>EULAPath</key>
<string>/path/to/audit/file/destination</string>
<key>EULASubTitle</key>
<string>EULA Subtitle</string>
<key>EULAText</key>
<string>Ipsum lorum</string>
<key>EULATitle</key>
<string>EULA Title</string>
<key>ScriptArgs</key>
<string>arguments</string>
<key>ScriptPath</key>
<string>/path/to/script.sh</string>
</dict>
</plist>
管理者は、端末の初期設定時のみこれらのアクションと利用規約の表示を必要とするので、これらのキーはJamf Proの別の構成プロファイルに保存してください。これらのキーのドメインは、com.jamf.connect.loginです。
注 : 管理者は、登録方法に必要なキーのみを使用してください。予期せぬ結果を避けるため、Jamf Connectに空白や空の値のキーを送らないでください。
注 : Jamf Proのコンピュータ構成プロファイルには、以下のように複数のアプリケーションやカスタム設定のペイロードを含めることができます。
この例では、authchangerのペイロード (「アップロード」より)とScriptPathキーのペイロード (「Jamf アプリケーション」より)が1つの構成プロファイルにまとめています。これにより、一度きりで実行させるペイロードを対象の端末に簡単に配布することができます。
Jamf ProでコンピュータのPreStage Enrollment (事前登録)を作成する Jamf Proサーバで、以下のペイロードを持つPreStage Enrollment (事前登録)を作成します。
アカウント設定 : 「セットアップアシスタントの前にローカル管理者アカウントを作成する」を選択し、ユーザ名とパスワードを追加します。任意で「ユーザ&グループにマネージド管理者アカウントを非表示にする」を選択します。ローカルユーザカウントのタイプを「アカウントの作成をスキップする」に設定します。
構成プロファイル : Jamf Connectログインメカニズムの構成プロファイル、RunOnceの構成プロファイル、Jamf Connectメニューバーエージェント、Jamf Connectライセンスを選択します。 登録パッケージ: JamfConnect.pkgインストーラーパッケージと、ここにある手順で作成したカスタマイズアセットのインストーラーパッケージを選択します。 事前登録の詳細については、 https://docs.jamf.com/ja/jamf-pro/administrator-guide/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF_Prestage_Enrollment_%28%E4%BA%8B%E5%89%8D%E7%99%BB%E9%8C%B2%29.html を参照してください。
コンピュータ登録で実行するポリシーを作成する
コンピュータがJamf Proサーバに登録されると、カスタマイズアセットパッケージとJamf Connectインストーラーパッケージがコンピュータにプッシュされ、バックグラウンドでインストールされます。その後、ユーザがクラウドIDプロバイダの資格情報で認証を行うと、Jamf Connectがその資格情報に基づいてローカルのユーザカウントを作成します。その後、スクリプト実行のメカニズムが有効で、com.jamf.connect.login構成プロファイルにスクリプトへのパスを示す環境設定キーが含まれているため、Jamf Connectが管理者権限でスクリプトを実行します。
上記のスクリプト例では、最後の行でポリシーのカスタムトリガーを呼び出しています。Jamf Proは、このカスタムトリガーで呼び出されたポリシーを英数字順に実行します。上記の図では、オンボーディング作業を順番に進めるために、ポリシーは数字の小さいものから大きいものへと実行されます。この例では次を実行します:
10 - 必須ソフトウェアのインストール - エンドポイント保護ソフトウェアや条件付きアクセスのクライアントなど、他のソフトウェアよりも先にインストールすべきミッションクリティカルなソフトウェアがある場合は、それらを先にインストールします。 11 - 95 管理者がオンボーディングで実行するその他のポリシー : Jamf Proは、英数字順にポリシーを実行します。管理者は、これと同様のポリシーを構築して、対象のコンピュータを特定のLDAPグループや部門に設定することができます。ここで制限されるのは、管理者の管理ニーズと想像力だけです。 95 - Jamf Connectのログインメカニズムを無効にする - 必須の設定がすべて完了したら、管理者は「Unixコマンドの実行」命令を発行して、Jamf Connect Notify メカニズムを無効にすることができます。 /usr/local/bin/authchanger -reset -JamfConnect は、ログインメカニズムを標準メカニズムに戻し、Notify メカニズムを無効にします。 96 - 初回実行を完了としてマークする - 次のステップ「Smart Computer Groupを作成して、登録が正常に完了したことを判断する」で使用するために、コンピュータが初期設定されたことをマークするにはいくつかの方法があります。 この例では、Jamfインストール済みソフトウェアの受信フォルダにファイルを書き込んでいますが、以下のオプションもあります。 touch コマンドでファイルを作成し、Jamfがコンピュータのインベントリを収集する時に、そのファイルが存在するかどうかを拡張属性で判断する。 拡張属性を使用して、利用規約の監査ファイルがディレクトリに存在するかどうかを判断する。 必須ソフトウェアがインストールされているかどうかをパッケージがインストールされているかどうか、ファイルが存在するかどうかで判断する。 97 - インベントリの更新: Jamfは、コンピュータの状態を基にインベントリレコードを更新します(その後、スマートコンピュータグループに上記のポリシーの情報を追加します)。 99 - Jamf Connect Notifyを終了する: Notify メカニズムをオフにして、macOSセットアップアシスタントの最後のステップに進むには、「コマンドを実行 (Run Unix command)」ポリシーペイロードを使用して、 「echo "Command: Quit" >> /var/tmp/depnotify.log」 コマンドを実行します。 Jamf Connect Notify のメカニズムがQuitコマンドを受信した後、Jamf ConnectはオプションでユーザのFileVaultを有効にすることができ、ユーザはmacOSから追加の設定手順を実行するように促されます。最後に、ユーザは完全に構成されたコンピュータを使用できる状態でFinderに表示されます。
ユーザへの通知 (Notify) メカニズムのアップデート ポリシーの実行時に通知画面を更新して、エンドユーザに自分のコンピュータに何が起こっているのかを知らせるにはいくつかの方法があります。
Jamf Proのポリシーログから自動的に読み取る - com.jamf.connect.loginで NotifyLogStyle が jamf に設定されている場合は、Jamf Connectのログインウィンドウ環境設定キーを使用します。これにより、疑似的なステータスバーの下にあるステータスメッセージが更新されます。 ポリシーでunixコマンドのペイロードを実行する - 以下のようなコマンドでステータスを個別に更新します echo “Status: Installing a program on your computer” >> /var/tmp/depnotify.log スクリプトのペイロードをポリシーで使用する - ポリシーでは、他のアクションが実行される前にスクリプトを実行することができます。以下のスクリプトをJamf Proサーバに追加し、パラメータの値を使って、通知画面の複数の部分を同時に更新する
#!/bin/bash
# Jamf Connect Notifyアップデーター
# Jamf Proのポリシーで使用すると、スクリプトを書きこまなくてもJamf Connect Notifyメカニズムを更新できます。
# DEP NotifyとJamf Connect Notify メカニズムと連動する必要がある
#
# ユースケース: Jamf Pro経由でデプロイします。オプション -> パラメータラベル設定にあります。
#
# パラメータ 4: ステータス - これは、確定したバーの下のステータスを更新する文字列になります
# パラメータ 5: メインタイトル - ウィンドウの上部に表示される大きなテキストの文字列になります
# パラメータ 6: メインテキスト - これは、タイトルの下にあるテキストの主体の文字列になります。新しい行は、\nで表すことができます
# パラメータ 7: 画像 - メインタイトルの上に表示される.pngファイルへのパス
# パラメータ 8: MainTextImage - ウィンドウのメインテキストエリアに表示されるものを置き換える.pngファイルへのパス
# パラメータ 9: DeterminateManual - 疑似進捗バーに表示される合計ステップ数を決定する数値。これは、1回につき1回だけ使用する必要があります
# パラメータ 10: DeterminateManualStep - 擬似バーをステップさせる数値 - 通常はこの値を1にして進捗バーをステップさせます
#
# 文字列が空の場合、更新はスキップされます。depnotify.logファイルの場所は、以下のDEP_NOTIFY_LOGに設定されています。別の
# 場所に移動した場合は更新してください。
#
# 終了するには、Jamf ProポリシーにUNIXコマンドを使用します。
# echo "Command: Quit" >> /var/tmp/depnotify.log
# Notify メカニズムの表示を終了します。
#
# MITライセンス
#
# Copyright (c) 2020 Jamf Software
#本ソフトウエア及び関連文書ファイル(以下、「ソフトウエア」という。)を
# 取得される方に対し、
# 使用・複製・修正・併合・出版・配布・サブライセンス・及び/
# または、配布を含むソフトウエアを制限なく利用する権利、
# 並びにソフトウエアが提供された方に対し同様の権利を
# 以下の条件に基づきここに許諾します。
#
# 上記著作権上記と本件許諾は、ソフトウエアの全ての
# コピーまたは実質的大部分に含まれるものとします。
#
# ソフトウエアは、現状有姿で提供するものとし、
# 商品性的確性、特定目的の適合性、及び非侵害に限らず暗示的または黙示的な
# いかなる保証もするものではない。いかなる場合においても、
# 製作者または著作権者は、契約、不正行為、
# その他に起因して発生したソフトウエアまたはソフトウエアの使用もしくは
# その他に関連のクレーム、損害、その他責任に対して、
# 一切の責任を負いません。
DEP_NOTIFY_LOG="/var/tmp/depnotify.log"
STATUS_STRING=$4
MAIN_TITLE_STRING=$5
MAIN_TEXT_STRING=$6
IMAGE_PATH=$7
MAIN_TEXT_IMAGE_PATH=$8
DETERMINATE_MANUAL=$9
DETERMINATE_MANUAL_STEP=${10}
#Status:
if [[ ! -z "$STATUS_STRING" ]]; then
echo "Status: $STATUS_STRING" >> "$DEP_NOTIFY_LOG"
fi
#Command: MainTitle:
if [[ ! -z "$MAIN_TITLE_STRING" ]]; then
echo "Command: MainTitle: $MAIN_TITLE_STRING" >> "$DEP_NOTIFY_LOG"
fi
#Command: MainText:
if [[ ! -z "$MAIN_TEXT_STRING" ]]; then
echo "Command: MainText: $MAIN_TEXT_STRING" >> "$DEP_NOTIFY_LOG"
fi
#Command: Image:
if [[ ! -z "$IMAGE_PATH" ]]; then
echo "Command: Image: $IMAGE_PATH" >> "$DEP_NOTIFY_LOG"
fi
#Command: MainTextImage:
if [[ ! -z "$MAIN_TEXT_IMAGE_PATH" ]]; then
echo "Command: MainTextImage: $MAIN_TEXT_IMAGE_PATH" >> "$DEP_NOTIFY_LOG"
fi
#Command: DeterminateManual:
if [[ ! -z "$DETERMINATE_MANUAL" ]]; then
echo "Command: DeterminateManual: $DETERMINATE_MANUAL" >> "$DEP_NOTIFY_LOG"
fi
#Command: DeterminateManualStep:
if [[ ! -z "$DETERMINATE_MANUAL_STEP" ]]; then
echo "Command: DeterminateManualStep: $DETERMINATE_MANUAL_STEP" >> "$DEP_NOTIFY_LOG"
fi
終了
#!/bin/bash
# Jamf Connect Notifyアップデーター
# Jamf Proのポリシーで使用すると、スクリプトを書きこまなくてもJamf Connect Notifyメカニズムを更新できます。
# DEP NotifyとJamf Connect Notify メカニズムと連動する必要がある
#
# ユースケース: Jamf Pro経由でデプロイします。オプション -> パラメータラベル設定にあります。
#
# パラメータ 4: ステータス - これは、確定したバーの下のステータスを更新する文字列になります
# パラメータ 5: メインタイトル - ウィンドウの上部に表示される大きなテキストの文字列になります
# パラメータ 6: メインテキスト - これは、タイトルの下にあるテキストの主体の文字列になります。新しい行は、\nで表すことができます
# パラメータ 7: 画像 - メインタイトルの上に表示される.pngファイルへのパス
# パラメータ 8: MainTextImage - ウィンドウのメインテキストエリアに表示されるものを置き換える.pngファイルへのパス
# パラメータ 9: DeterminateManual - 疑似進捗バーに表示される合計ステップ数を決定する数値。これは、1回につき1回だけ使用する必要があります
# パラメータ 10: DeterminateManualStep - 擬似バーをステップさせる数値 - 通常はこの値を1にして進捗バーをステップさせます
#
# 文字列が空の場合、更新はスキップされます。depnotify.logファイルの場所は、以下のDEP_NOTIFY_LOGに設定されています。別の
# 場所に移動した場合は更新してください。
#
# 終了するには、Jamf ProポリシーにUNIXコマンドを使用します。
# echo "Command: Quit" >> /var/tmp/depnotify.log
# Notify メカニズムの表示を終了します。
#
# MITライセンス
#
# Copyright (c) 2020 Jamf Software
#本ソフトウエア及び関連文書ファイル(以下、「ソフトウエア」という。)を
# 取得される方に対し、
# 使用・複製・修正・併合・出版・配布・サブライセンス・及び/
# または、配布を含むソフトウエアを制限なく利用する権利、
# 並びにソフトウエアが提供された方に対し同様の権利を
# 以下の条件に基づきここに許諾します。
#
# 上記著作権上記と本件許諾は、ソフトウエアの全ての
# コピーまたは実質的大部分に含まれるものとします。
#
# ソフトウエアは、現状有姿で提供するものとし、
# 商品性的確性、特定目的の適合性、及び非侵害に限らず暗示的または黙示的な
# いかなる保証もするものではない。いかなる場合においても、
# 製作者または著作権者は、契約、不正行為、
# その他に起因して発生したソフトウエアまたはソフトウエアの使用もしくは
# その他に関連のクレーム、損害、その他責任に対して、
# 一切の責任を負いません。
DEP_NOTIFY_LOG="/var/tmp/depnotify.log"
STATUS_STRING=$4
MAIN_TITLE_STRING=$5
MAIN_TEXT_STRING=$6
IMAGE_PATH=$7
MAIN_TEXT_IMAGE_PATH=$8
DETERMINATE_MANUAL=$9
DETERMINATE_MANUAL_STEP=${10}
#Status:
if [[ ! -z "$STATUS_STRING" ]]; then
echo "Status: $STATUS_STRING" >> "$DEP_NOTIFY_LOG"
fi
#Command: MainTitle:
if [[ ! -z "$MAIN_TITLE_STRING" ]]; then
echo "Command: MainTitle: $MAIN_TITLE_STRING" >> "$DEP_NOTIFY_LOG"
fi
#Command: MainText:
if [[ ! -z "$MAIN_TEXT_STRING" ]]; then
echo "Command: MainText: $MAIN_TEXT_STRING" >> "$DEP_NOTIFY_LOG"
fi
#Command: Image:
if [[ ! -z "$IMAGE_PATH" ]]; then
echo "Command: Image: $IMAGE_PATH" >> "$DEP_NOTIFY_LOG"
fi
#Command: MainTextImage:
if [[ ! -z "$MAIN_TEXT_IMAGE_PATH" ]]; then
echo "Command: MainTextImage: $MAIN_TEXT_IMAGE_PATH" >> "$DEP_NOTIFY_LOG"
fi
#Command: DeterminateManual:
if [[ ! -z "$DETERMINATE_MANUAL" ]]; then
echo "Command: DeterminateManual: $DETERMINATE_MANUAL" >> "$DEP_NOTIFY_LOG"
fi
#Command: DeterminateManualStep:
if [[ ! -z "$DETERMINATE_MANUAL_STEP" ]]; then
echo "Command: DeterminateManualStep: $DETERMINATE_MANUAL_STEP" >> "$DEP_NOTIFY_LOG"
fi
終了
Smart Computer Groupを作成して、登録が正常に完了したことを判断する Smart Computer Groupを作成して、登録が正常に完了したことを判断する 上記の手順で選択した属性を使用して、コンピュータがJamf Connect に正常に登録完了したことを示すマークを付け、設定が完了したすべてのコンピュータを含むSmart Computer Groupを作成します。
Scope (配布範囲)とExclusion (除外)グループを使用して、Jamf Connectのログイン画面の一度きりで実行するメカニズムを無効にする 「利用規約 (EULA)」、「ScriptPath」、「authchanger」の環境設を含む構成プロファイルのScope (配布範囲)に、前の手順で作成したスマートコンピュータグループに含まれるすべてのコンピュータを除外するためのExclusionグループを追加します。
上記の図の例では、「Jamf Connect - 起動時に1回のみ実行」という名前の構成プロファイルで、com.jamf.connect.loginのキーをScriptPathに設定しています。これらの構成プロファイルを対象のコンピュータから除外することで、Jamf Connectのログインメカニズムが、ログイン成功時にスクリプトを実行しなくなります。
この時点で、管理者が使用できる追加のツールがいくつかあります。管理者は、別の構成プロファイルを別のScriptPathでプッシュすることで、重要なパッチをインストールしたり、ユーザが端末にログインしたときに単純にログを記録するなど、ログインごとに異なるカスタムトリガーを実行することができます。その可能性は無限大です。結果、構成が完了したコンピュータで、完全にカスタマイズされたユーザエクスペリエンスを実現することができます。