デバイスの初期化を行わずにJamf Connectをアンインストールする方法を以下に記載します。
別MDMの切替時や、Jamf Conncetを解約する場合に有効な方法になります。
手順
① 拡張属性を作成
Jamf Connectのログインウィンドウが無効化された端末を確認する拡張属性を作成します。
| 表示名 |
任意 (今回は JamfConnect_status で設定)
|
|---|---|
| データタイプ | String |
| インベントリ表示 | 任意 |
| 入力タイプ | Script |
#!/bin/bash
if [[ $( /usr/local/bin/authchanger -print | grep JamfConnectLogin ) ]]; then
echo "<result>Enabled</result>"
else
echo "<result>Disabled</result>"
fi② スマートグループ作成
以下3つのスマートグループを作成して下さい。
- Jamf Connectアプリがインストール済のグループ
-
今回は
[Jamf Connect] Installedで作成
-
- Jamf Connectアプリが未インストール(または削除済)のグループ
-
今回は
[Jamf Connect] NotInstalledで作成
-
- Jamf Connectアプリがインストール済、かつログインウィンドウが無効化されたグループ
-
今回は
[Jamf Connect] Disableで作成
-
③ 自動インストール停止
Jamf Connectをインストールしているポリシーがあれば停止して下さい。
[事前登録]にて初期セットアップ時にインストールしている場合はそちらも削除して下さい。
④ 構成プロファイル配布停止
構成プロファイル(com.jamf.connect)を配布している設定を開き、先ほど作成したJamf Connectがインストールされていないスマートグループを配布から除外(Exclusions)する設定に変更
⑤ スクリプト作成
以下2つ (Step 1, 2) のスクリプトを作成して下さい。
Step 1: 認証データベースをリセットして不要なファイルを削除するスクリプト
#!/bin/bash
# Step 1: Reset the authentication mechanism
if ! sudo /usr/local/bin/authchanger -reset; then
echo "Failed to reset authentication mechanism. Exiting."
exit 1
else
echo "Authentication mechanism successfully reset."
fi
# Step 2: Remove files if they exist
FILES=(
"/usr/local/bin/authchanger"
"/usr/local/lib/pam/pam_saml.so.2"
"/Library/Security/SecurityAgentPlugins/JamfConnectLogin.bundle"
)
for FILE in "${FILES[@]}"; do
if [ -e "$FILE" ]; then
echo "Removing $FILE..."
if sudo rm -r "$FILE"; then
echo "Successfully removed $FILE."
else
echo "Failed to remove $FILE. Exiting."
exit 1
fi
else
echo "$FILE does not exist. Skipping."
fi
done
echo "All steps completed successfully."
exit 0Step 2: Jamf Conncetをアンインストールして起動エージェントを削除するスクリプト
#!/bin/bash
# Step 1: Completely remove Jamf Connect application
jamf_connect_app="/Applications/Jamf Connect.app"
if [ -d "$jamf_connect_app" ]; then
echo "Removing Jamf Connect application..."
sudo rm -rf "$jamf_connect_app"
if [ $? -ne 0 ]; then
echo "Error: Failed to remove Jamf Connect application."
exit 1
fi
else
echo "Jamf Connect application not found. Skipping."
fi
# Step 2: Remove specific LaunchAgents
launch_agents=(
"/Library/LaunchAgents/com.jamf.connect.plist"
"/Library/LaunchAgents/com.jamf.connect.unlock.login.plist"
)
for agent in "${launch_agents[@]}"; do
if [ -e "$agent" ]; then
echo "Removing $agent..."
sudo rm -f "$agent"
if [ $? -ne 0 ]; then
echo "Error: Failed to remove $agent."
exit 1
fi
else
echo "$agent not found. Skipping."
fi
done
echo "Jamf Connect application and related LaunchAgents have been removed successfully."
exit 0⑥ スクリプト作成
スクリプトを任意のタイミングで実行できるように Self Service に表示されるポリシーとして登録しましょう。またポリシーの実行に失敗した時に連続して実行されないよう「Once per computer」を設定しています。
Step 1
| セクション | 属性 | 値 |
|---|---|---|
| 表示名 | 任意 (例: "Delete JamfConnect_1_of_2") | |
| トリガー | なし | |
| 実行頻度 | Once per computer | |
| スクリプト | Scripts | Step1 のスクリプトを設定 |
| メンテナンス | インベントリをアップデート | チェックを入れる |
| Scope | [Jamf Connect] Installed を指定 | |
| Self Service | 有効にする | |
Step 2
| セクション | 属性 | 値 |
|---|---|---|
| 表示名 | 任意 (例: "Delete JamfConnect_2_of_2") | |
| トリガー | なし | |
| 実行頻度 | Once per computer | |
| スクリプト | Scripts | Step2 のスクリプトを設定 |
| メンテナンス | インベントリをアップデート | チェックを入れる |
| Scope | [Jamf Connect] Installed を指定 | |
| Self Service | 有効にする | |
ユーザーへの周知
Self ServiceにてStep1、Step2を実行してもらうよう依頼して下さい。
Step2のアイコンが反映されない場合にSelfserviceの最新化や再起動を依頼するようユーザーには補足して下さい。
作業完了後以下問題なければ対応完了です。
- ログイン時にJamf Conncet(SSO)の画面が表示されない
- メニューバーにJamf Conncetのアイコンが表示されない