ある会社(Mac 約50台)では、新しい Mac を管理の仕組みに登録すると、仕事で使うアプリが裏で1本ずつ入っていく。何がいつ入り終わったのか、途中で失敗したものがないのかは、Mac の画面からは分からない。管理画面を見に行って、初めて分かる。

そこで、初期設定の途中に「必要なアプリを順に入れて、進み具合を見せる画面」を出すことにした。新しい Mac で2回試し、2回目で画面は動いた。ただ、Slack が入らなかった(セキュリティソフトも入らなかったが、こちらは別の原因で、調べている)。

Slack を追うと、原因は新しい画面ではなかった。社内の Mac には、もともと Slack を入れる仕組みが2つあった。その2つがぶつかって、13台に起動できない Slack のコピーが残っていた。そこへ自分たちが3つ目の入れ方を足したら、初期設定では、先に入った App Store 版にその3つ目が弾かれた。画面を作るより先に直すべきだったのは、アプリごとの入れ方だった。

先に断っておく。これは検証の途中の記録で、本番への切り替えも、直した設定での3回目の検証もまだだ。事実は2026年11月11日の午後の時点のもの。設定の名前や手順は、後半の「担当者向け」にまとめた。

この記事でわかること

  • ▶ 新しい Mac の初期設定を自動にしたとき、最初に引っかかったこと
  • ▶ 同じアプリを2つの経路で配ると、社員の Mac で何が起きるか(Slack の例)
  • ▶ アプリの入れ方を1つに決めるときの考え方
  • ▶ 新しい仕組みを足すとき、古い配り方から外しておくもの

▼やろうとしたこと:新しい Mac を開いたら、アプリが入り終わっている状態にする

やりたかったのは、新しい Mac を渡す前に、必要なアプリが全部入ったかをその場で言えるようにすることだ。

この会社は、Mac を Jamf(会社の Mac をまとめて管理する製品)で管理している。新しい Mac は、最初に起動したときに自動で Jamf に登録される。今までは、登録が終わったのを合図に、アプリを入れる処理が裏で順に走るだけだった。何がいつ終わるかは見えない。失敗しても誰にも知らされず、管理画面を見に行かないと分からない。

使ったのは Setup Manager という画面だ。Jamf が公開している初期設定用の仕組みで、アカウントを作る前の段階で出てくる。決めた順にアプリを入れ、1本ずつ進み具合を見せ、終わったらアカウント作成に進む。Jamf の製品(Jamf Pro と Jamf School)でしか動かない(Setup Manager の公式ページ)。

次の新しい Mac が届く予定があったので、それまでに検証用の Mac で一度通しておくことにした。最初に入れようとしたアプリは7本だ。セキュリティソフト、Rosetta 2(古い Intel 向けのアプリを、今の Mac で動かすための Apple の部品)、Google ドライブ、Slack、Zoom、Office、Acrobat Reader。最後に、PC 名(資産番号のラベルと同じ番号)を入れる欄を置いた。

▼2回試した:1回目は画面が出ず、2回目は約15分で動いたが7本中2本が入らなかった

管理画面で「付けた」設定が、Mac に届いているとは限らない。本物の新しい Mac を1台、最初から通して初めて分かる。通してみれば、どこで失敗したかがその場で見える。

1回目は、画面が出なかった。いつもどおりアカウント作成の画面まで進んでしまった。調べると、管理画面では付けたつもりの設定が2つ、Mac に届いていなかった。1つは、画面の設定を配る相手が空のままで、Mac に入った約1分後に Jamf 自身が消していた。もう1つは、画面の本体をどこから送るかが「なし」のままで、1回も送られていなかった。細かい設定は後半に書いた。

2回目は、2つを直してから、同じ Mac を消去してやり直した。今度は画面が出た。登録から約15分で、画面で入れた PC 名が Jamf に届いた。7本の結果はこうだった。

アプリ 結果 メモ
セキュリティソフト 失敗 この Mac(新しい macOS)では入らなかった。原因は調べている途中
Rosetta 2 成功
Google ドライブ 成功 古い版が入った
Slack 失敗 App Store 版の Slack が先に入っていて、弾かれた
Zoom 成功 古い版が入った
Office 成功 新しい版のまま残った(古い版の配布から外しておいたため。後で書く)
Acrobat Reader 成功 2021年の版が入った

古い版が入った3本は、Jamf に置いていたインストーラーそのものが古かった。これは後の「判断の分かれ目」で触れる。

前の形との違いは、失敗がその場で見えることだ。前の形では、失敗しても誰にも知らされず、見に行かないと分からなかった。今回は、2本の失敗が画面にそのまま出た。

Slack は、登録の直後に App Store 版の Slack が先に入っていて、画面から入れようとした Slack が弾かれていた。なぜ App Store 版が先に入ったのかを追うと、この Mac 1台の話ではなかった。

▼Slack を追ったら:もともと2通りの入れ方がぶつかり、13台に壊れたコピーが残っていた

Mac の「アプリケーション」に Slack が2つ並んでいたり、起動しない Slack が残っていたりしても、使う人のせいではなかった。前からあった2つの入れ方が、同じ Mac の上でぶつかっていた。そこへ自分たちが3つ目を足し、初期設定では、先に入った App Store 版にその3つ目が弾かれた。

この会社の Mac には、Slack を入れる仕組みが3通りあった。

  • ▶ 1. App Store 版を全社に配る設定(前から):会社で買った App Store のアプリを、Jamf から各 Mac に入れる
  • ▶ 2. 前からあった自作の仕組み(前から):Mac が Jamf に定期的に連絡するたびに、Slack が古ければ消して入れ直す
  • ▶ 3. 今回、初期設定の画面に足した入れ方:メーカーのサイトから最新版を取ってきて入れる

2の仕組みは、Slack の最新版の番号を「4.9.0」と読み違えていた(本当は 4.53 台)。入っている Slack と番号が合わないので、どの Mac の Slack も「古い」と判断され、Jamf に連絡するたびに消して入れ直されていた。Slack を使っている最中でも止まらない作りだった。

そこへ1の App Store 版も入ってくる。2つがぶつかった結果、「Slack 2」のような名前のコピーができ、中身が欠けて起動できないコピーが残った、と見ている。Jamf で Slack の状態が取れた46台を、1台ずつの状態で数えるとこうなる。

状態 台数 中身
起動できない Slack のコピーがある 13台 壊れたコピーだけ:6台(うち1台は、動く Slack が1つもない)
壊れたコピーと、App Store 版の「Slack 2」があり、App Store 版で使っている:4台
App Store 版と、壊れたコピー:3台
Slack が入っていない 7台
残り 26台 壊れたコピーは見つからなかった。ただし、Slack が1つだけかどうかは1台ずつ確かめていない
合計 46台

そして3。今回足した入れ方には、Installomator(メーカーのサイトから最新版を取ってきて入れる、オープンソースのスクリプト)を使った。Installomator は、App Store から入ったアプリには手を出さないのが既定の動きだ(Installomator 本体の説明書き)。2回目の検証では、1の App Store 版が先に入っていたので、3はそれを見て止まった。Installomator が悪いのではない。次の「一番の注意」で書く「足したら、古い配り方から外す」を、自分たちもやらずに踏んだ。

その日のうちにやったことは3つだ。

  • ▶ 2の自作の仕組みを止めて、削除した
  • ▶ 1の App Store 版を配る設定もやめた(App Store 版を使っている7台は、これで App Store からの更新が止まる見込み。片付けで置き換える)
  • ▶ 片付けの準備をした:起動できないコピーだけを消す仕組みと、今ある Mac 向けの新しい Slack の配り方を作った。どちらもまだ動かしていない。まず1台で試してからにする

動いている Slack は、App Store 版でも消さない。App Store 版を別の入れ方に置き換えると、Slack にサインインし直すことになる(Installomator の説明書きにも、App Store 版の Slack を置き換えると設定が消える、と注意がある)。置き換えは使っている本人と日を決めてからにする。

▼判断の分かれ目:どの入れ方が正しいかより先に、1つのアプリを1つの入れ方にする

アプリの入れ方に、どこでも正しい1つがあるわけではない。先に決めるのは「1つのアプリには、入れ方を1本だけにする」ことだ。どの1本にするかは、その次でいい。

Mac の Slack でも、1本に決めるまでに迷った。2回目の失敗のあと、まず Slack を初期設定から外した。次に、App Store 版が入るのを画面で待つ形にした。Setup Manager の説明書には、App Store などから入るアプリを「入ったかどうか見張って待つ」やり方が載っている。ただし同じ説明書に、登録の最中のこうした入り方は当てにしにくい、とも書いてある(Setup Manager の設定の説明)。最終的には、メーカーのサイトから最新版を取る入れ方(Installomator)1本にし、App Store 版を配る設定は消した。

ほかのアプリも、初期設定で入れるものと入れ方を見直した。今の形はこうだ。

アプリ 前の入れ方 今の入れ方(どれも1本)
Slack 3通り(App Store 版・自作の仕組み・今回足したもの) メーカーのサイトから最新版
Acrobat Reader Jamf に置いた2021年の版のインストーラー メーカーのサイトから最新版
Chrome・Claude 初期設定では入れていなかった 足した。メーカーのサイトから最新版
セキュリティソフト・Google ドライブ・Rosetta 2 前からある Jamf の配布 そのまま(入れ方はもともと1本なので、今回は動かしていない。Google ドライブの古い版のインストーラーは、別に入れ替える)
Office 2回目の検証では初期設定で入れた 初期設定から外した
Zoom 2回目の検証では初期設定で入れた 初期設定から外し、あとからも入れない

入れ替えで、初期設定でダウンロードする量の見込みは約4GBから約1.5GBに減った(大半は Office だった)。その分、初期設定の時間も縮む見込みだ。実際に何分になるかは3回目の検証で測る。

社内に置いたインストーラーは、置いた日の版で止まる。2回目の検証では、そうして止まっていた古い版が3本、新しい Mac にそのまま入った。メーカーのサイトから取る形なら、入れたその日の最新版が入る。

▼一番の注意:新しい入れ方を足したら、古い配り方からその Mac を外す

新しい仕組みを足すだけだと、古い配り方も同じ Mac に届く。古い版で上書きしたり、二重に入れたりする。Slack はまさにそれで、自分たちも検証で踏んだ。

そこで「この初期設定で登録した Mac」というまとまりを作り、古い配り方の対象から外した。今ある Mac への配り方は変えていない。外したのは次の4つだ。

  • ▶ 古い Office(2021年の版)を全台に1回入れる配布
  • ▶ 古い Acrobat Reader の配布
  • ▶ 自作の Slack の仕組み(その後、仕組みごと削除した)
  • ▶ Zoom の配布(新しい Mac には Zoom を入れないことにしたため)

気をつけたいのは Office だ。Office は初期設定から外したが、2021年の版を全台に1回入れる配布は、まだ残っている。新しい Mac をそこから外しておかないと、あとから古い Office が入り、新しい版を上書きするおそれがある。準備の段階で外しておいたので、2回目の検証でも Office は新しい版のまま残っていた。

もう1つ、元からあった「登録が終わったら裏で入れる」きっかけも外した。Setup Manager の説明書に、このきっかけで動く配布は、Setup Manager を遅らせたり邪魔したりすることがある、とあるからだ(Setup Manager の公式ページ)。今ある Mac 向けの、定期的に入れる配布はそのまま残した。

▼まだやっていないこと:3回目の検証、Slack の片付け、本番への切り替え、セキュリティソフト

  • ▶ 直した設定での3回目の検証:新しく届いた MacBook Air 3台も、この初期設定で準備する
  • ▶ Slack の片付け:起動できないコピーを消す仕組みを、まず1台で試してから13台に広げる。App Store 版を使っている人は、本人と日を決めて置き換える(それまでは App Store からの更新が止まる見込み)。今ある Mac 向けの新しい Slack の配り方も、まだ動かしていない
  • ▶ 本番への切り替え:Setup Manager を出すには、Apple の初期設定の画面を自動で飛ばす設定を止める必要がある。止めると、ソフトウェア・アップデートなどの画面も出るので、どれを出すかを決める。新しい Mac に Office をどう入れるかも、ここで決める
  • ▶ セキュリティソフトが検証の Mac で入らなかった原因

▼まとめ:自分の会社で確かめること

情シスの担当者がいない会社でも、次の5つは担当者や管理を頼んでいる先に聞ける。

  • ▶ 新しい Mac に最初に入るアプリと、それぞれの入れ方の一覧はあるか:1つのアプリに2つ以上の入れ方がないか。App Store の配布と、別の配布の両方に同じアプリがないか
  • ▶ 社員の Mac の「アプリケーション」に、「Slack 2」のような重複がないか
  • ▶ 配っているインストーラーは、いつの版か:何年も前のものが残っていないか
  • ▶ 古い版を「全台に1回」入れる配布が残っていないか:新しい仕組みを足すなら、そこから新しい Mac を外したか
  • ▶ 新しい初期設定は、本物の新しい Mac 1台で最初から通したか:管理画面で「付けた」で済ませていないか

▼担当者向け:設定と手順の詳細

ここからは Jamf Pro を触る担当者向け。値はこの環境(Jamf Cloud、Setup Manager 1.4.7、Installomator 10.9、2026年11月)で確かめたもの。

前半の言い方と、実際の名前

前半の言い方 実際の名前
初期設定の画面 Setup Manager(Jamf の GitHub で公開。Jamf Pro / Jamf School 専用、macOS 13.5 以上)
最初に起動したときの自動登録・登録の設定 Automated Device Enrollment(ADE)・Computer PreStage Enrollment
画面の設定 構成プロファイル(Application & Custom Settings、ドメイン com.jamf.setupmanager)
画面の本体をどこから送るか PreStage の Enrollment Packages の配布ポイント(Distribution Point)
登録が終わったら裏で入れるきっかけ ポリシーの Enrollment Complete トリガー
Mac が Jamf に定期的に連絡する チェックイン(Recurring Check-in)
App Store 版を全社に配る設定 Mac App(Apple Business Manager で購入した App Store アプリの配布。VPP)
前からあった自作の仕組み スクリプトを実行するポリシー(Ongoing・全 Mac・チェックイン)
メーカーのサイトから最新版を取って入れる Installomator(Setup Manager の installomator アクション)
この初期設定で登録した Mac のまとまり スマートグループ(条件:Enrollment Method: PreStage enrollment is <検証用の PreStage 名>)

1回目に画面が出なかった原因2つ

  • ▶ 構成プロファイルの Scope が空だった:PreStage に付けたプロファイルは登録時に入る。ところが Scope が空だと、その約1分後に Jamf が Remove Configuration Profile を送って消していた(1回目の検証では2度登録し、2度とも同じだった)。Quick Start にも「Setup Manager を動かす Mac にプロファイルを Scope する」とある(Jamf Pro Quick Start)。Scope に、上のスマートグループと検証用の Mac を足して直した
  • ▶ PreStage の配布ポイントが「None」だった:pkg は付いているのに、InstallEnterpriseApplication のコマンドが1件も送られていなかった。画面で Cloud Distribution Point に変えて直した。PreStage で配る pkg は、クラウドの HTTPS の配布ポイントに置くのが Jamf の要件だ(Jamf のドキュメント(Jamf Connect を PreStage で配る手順の要件))。なお、画面での1回目の保存は反映されず、2回目の保存で反映された
  • ▶ API で PreStage を作るとき:customPackageDistributionPointId は、この環境では -1 が None、-2 が Cloud Distribution Point だった。既存の PreStage を写して作ると None のまま写るので、-2 を入れる

どちらも、端末の管理履歴(Management History)の Commands で、InstallEnterpriseApplication と Install / Remove Configuration Profile がどの順に送られたかを見れば分かる。API なら computerhistory で取れる。

ほかに、Setup Manager は Setup Assistant の自動送り(Automatically advance through Setup Assistant)を無効にし、ユーザー作成の前に画面を最低1つ出しておく必要がある(Jamf Pro Quick Start)。この環境では、今の PreStage が全部自動送り有効だったので、検証用の PreStage で無効にした。

2回目の失敗を端末のログで見る

Setup Manager のログは /Library/Logs/Setup Manager.log。Slack とセキュリティソフトの失敗は、それぞれ次の行で分かった。

# Slack(Installomator) Installed Slack.app is from App Store, use “IGNORE_APP_STORE_APPS=yes” to replace. → exit code 23 # セキュリティソフト(ポリシーの pkg) installer: Cannot install on volume / because it is disabled.

Installomator の IGNORE_APP_STORE_APPS は既定が no で、App Store から入ったアプリは版に関係なく触らない。yes にすると置き換える。ただし本体の説明書きに、Slack はその場合に設定が消える、という注意がある(Installomator.sh)。ログに出る mul-xpc や naturallanguaged のエラーは、入力欄の日本語入力まわりのもので、動作には関係なかった。

Slack の入れ方を1本にするまでの設定

  • ▶ 一度試した watchPath:/Applications/Slack.app ができるまで待ってから表示する形。タイムアウトは既定の600秒。説明書では、Mac App Store や Jamf App Installers で入るアプリ向けのやり方で、登録中は当てにしにくいので、リストの最後に置くよう勧めている(ConfigurationProfile.md)
  • ▶ 今の形:installomator アクションでラベル slack、引数に NOTIFY=silent と IGNORE_APP_STORE_APPS=yes。初期設定の段階ではまだ誰もサインインしていないので、設定が消える注意は当てはまらない
  • ▶ Mac App の Slack:配布自体を削除した。すでに App Store 版が入っている Mac は、片付けの対象に入れた
  • ▶ 今ある Mac 向け:Installomator を Jamf のスクリプトに登録し、Slack 用のポリシー(チェックイン・1日1回、引数 slack・NOTIFY=silent・BLOCKING_PROCESS_ACTION=silent_fail)を作った。silent_fail は Slack が起動中なら触らず次回に回す設定。無効・Scope 空のまま

自作スクリプトの読み違え

前からあったスクリプトは、Slack の RSS から最新版の番号を Slack-[0-9]\.[0-9]\.[0-9] の形で取っていた。各桁が1文字の番号にしか合わないので、4.53.287 には合わず、結果として「4.9.0」を最新と読んでいた。入っている Slack と番号が違うので毎回「古い」と判断し、/Applications/Slack.app を消して入れ直していた。ポリシーは Ongoing・全 Mac・チェックインで、Slack の起動中かどうかも見ていなかった。

壊れたコピーの見分け方と、消すスクリプト

  • ▶ 壊れたコピー:/Applications の Slack.app か Slack <数字>.app で、Contents/Info.plist から CFBundleIdentifier が読めないもの。Jamf のインベントリでは版が n/a になる
  • ▶ App Store 版の見分け方:Contents/_MASReceipt があるかどうか
  • ▶ 消すスクリプト:読めるもの(動く Slack)は App Store 版も含めて全部残し、名前も変えない。引数が run のときだけ消し、空なら「何を消す予定か」を出すだけにした。まず1台で一覧だけ出してから、消す

既存のポリシーの扱いと、古い配り方からの外し方

  • ▶ Enrollment Complete を外す:Setup Manager の説明書に、Enrollment Complete で動くポリシーは Setup Manager を遅らせたり邪魔したりすることがあるので、無効にするか Scope から外す、とある(README)。この環境では、キッティング用のポリシー10本から Enrollment Complete だけを外し、チェックインは残した。Setup Manager を使わない今の PreStage で登録した Mac は、最初のチェックインでアプリが入る
  • ▶ カスタムトリガーで呼ぶ:既存のポリシーに sm_* のカスタムトリガーを足し、Setup Manager の policy アクションから呼ぶ(中身は jamf policy -event と同じ)。1回のポリシーはここで実行済みになるので、あとのチェックインで二重には入らない見込み(未検証)
  • ▶ 古い配り方から外す:上のスマートグループを、古い Office(全台・1回)・古い Acrobat Reader・自作の Slack・Zoom のポリシーの Exclusions に入れた。対象(Targets)は触っていないので、既存の Mac には影響しない
  • ▶ Classic API でポリシーの Scope を変えるとき:Scope の一部だけを送ったら、元の対象が消えた(すぐ戻した)。Scope は全体を送り直す

構成プロファイルの要点

  • ▶ 順番:セキュリティソフト → Rosetta 2 → Google ドライブ → Claude → Chrome → Acrobat Reader → Slack → PC 名の入力。Claude は Installomator の claudedesktop、Chrome は googlechromepkg、Acrobat Reader は adobereaderdc-install
  • ▶ networkQualityCheck:有効のまま(社内の Wi-Fi が遅いことがあるため)。totalDownloadBytes は 1.5GB にした。この値はダウンロード時間の目安の表示に使われる
  • ▶ PC 名:userEntry の computerName に、validation(正規表現)で「PC+数字4桁」を入れた。最後の waitForUserEntry で入力を待つ
  • ▶ finalAction:continue(既定。Setup Manager を閉じて、アカウント作成に進む)
  • ▶ 表示の言語:日本語(ja)に対応している

キーの意味は ConfigurationProfile.md にまとまっている。

入れる前に確かめたことと、API での注意

  • ▶ pkg の確かめ方:Setup Manager も Installomator も GitHub の公式リリースの pkg を使い、Developer ID Installer の署名と公証(notarization)を確かめてから Jamf に上げた。Setup Manager は、公開されている SHA-256 とも照らした
  • ▶ Installomator の確かめ:ダウンロードしたアプリの Apple の Developer Team ID を、ラベルに書かれた値と照らし、合わなければ止まる。入っている版がメーカーの最新と同じなら入れ直さない(Installomator の Wiki)
  • ▶ PreStage を API で写すとき:管理者アカウントのパスワードは API で取れないので、写した PreStage では空になる。画面で入れ直す

残りの確認

  • ▶ Intel の Mac での動き(Rosetta 2 の手順が要らない Mac。今回の検証から外した)
  • ▶ アカウント作成のあとに入れるもの(ディスクの暗号化、勤怠のログを取るソフト)が、今までどおり入るか
  • ▶ Google ドライブの古い版のインストーラーの入れ替え
📄 Jamf の契約が切れる前に、乗り換えの決裁をいつまでに出すかはこちらの記事に書いた。

📅 30分無料相談、受け付けています

「新しい Mac を渡すとき、アプリが全部入ったか分からない」「どのアプリがどこから入っているのか、もう誰も分からない」——そういった段階からお気軽にどうぞ。今の配り方の棚卸しから、初期設定の自動化まで、直近の実例をもとにお手伝いします。

📅 30分無料相談を予約する →