メインコンテンツへスキップ
ZUNDA株式会社

Jamf Connect のアンインストール

ヤスムラ

デバイスの初期化を行わずに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 0

Step 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のアイコンが表示されない

参考文献