IntuneでmacOSにシェルスクリプトの流す方法とハマった仕様まとめ
macOSをMDMで管理する場合、JamfProだと色々細かい制御が出来るので導入する企業も多いと思いますが、会社がwin/mac混在だったり資金面を考慮してIntuneのみで管理している会社も多いと思います。
今回Intuneを使って端末にシェルスクリプトを流したんですが色々イケてない部分多かったのと謎の仕様があったので今回実際に使った感想とMSサポートに問い合わせた仕様をまとめたいと思います。
設定手順
- シェルスクリプト準備
・実行したいシェルスクリプトを事前に用意して下さい。なおシェルスクリプトは #!/bin/sh もしくは #!/usr/bin/env zsh で始めて下さい。
- Intune登録
1.Microsoft Endpoint Manager admin centerを開く
2.デバイス > スクリプト >「+追加」をクリックして"macOS " 選択
3.”基本”タブにて以下設定して「次へ」クリック
●名前
・わかりやすい名前
●説明
・任意
4.”スクリプト設定”タブにて以下設定して「次へ」クリック
●スクリプトのアップロード
・作成したファイルを設定
●サインインしたユーザーとしてスクリプトを実行する
・はい:ユーザー認証情報で実行されます
・いいえ:root認証情報で実行されます
●デバイスでスクリプトの通知を非表示にする
・はい:端末に通知メッセージが表示される
・構成されていません;通知メッセージは表示されない
●スクリプトの頻度
・構成されていません:1回のみ実行
・それ以外:指定したタイミングで定期的に実行されます
●スクリプトが失敗した場合の再試行回数
・構成されていません:1回のみ実行
・それ以外:指定した回数再実行されます(最大3回)
5.”スコープ”タブにて必要に応じて設定して「次へ」クリック
6."割り当て”タブにて対象グループを設定して「次へ」クリック
7.”確認+追加”タブにて設定内容を確認したら「追加」クリック
実行タイミングの仕様
上記設定でシェルを登録したのに1時間待っても実行されない・・・結局再起動したり色々やってたら2時間後くらいに流れました。これについてMSに問い合わせたところ公式マニュアルと合わせて以下回答を頂きました。
エージェントでは通常 8 時間おきに、新しいスクリプトやスクリプトの更新がないか Intune サービスに確認します。 このチェックイン プロセスは、MDM チェックインから独立しています。
つまり起動状態のPCだと次に実行されるのは8時間後・・・そんな待てないわっ❗て思いますよね。でも大丈夫、すぐ実行させる方法があります。
エージェントがインストールされている管理対象の Mac で [ポータル サイト] を開き、ローカル デバイスを選択して [設定の確認] をクリックします。 これにより、MDM のチェックインとエージェントのチェックインが開始されます。
別の方法として、 [ターミナル] を開き、sudo killall IntuneMdmAgent コマンドを実行して IntuneMdmAgent プロセスを終了します。 IntuneMdmAgent プロセスは直ちに再起動され、Intune でチェックインが開始されます。
管理コンソールからはどうすることも出来ません(笑)
多分検証のときはPCを一度再起動したことでエージェントのチェックインが走って実行されたんだと思います。
繰り返しの仕様
検証では15分おきで繰り返すように設定していました。ただコンソールから結果を確認しても初回実行時の結果しか見えません。その理由も公式マニュアルに記載がありました。
選択した スクリプト頻度 に関係なく、スクリプト実行状態は、スクリプトが最初に実行されたときにのみ、報告されます。スクリプト実行状態は、後続の実行では更新されません。ただし、更新後のスクリプトは新しいスクリプトとして扱われ、実行状態がもう一度報告されます。
つまりどんな繰り返し設定しても最初の1回目の結果しか報告しないよ。その後ちゃんと動かなくても知らないよってことですね(マジか)
これを回避するにはシェルスクリプト本体にログを残す設定をして定期的にそのlogファイルを取得するしかやり方はなさそうです。
参考資料
まとめ
Intuneでシェルスクリプトを流すのは色々大変!
お金があるならJamfProを入れましょう(笑)
次はこの機能を使ってmacOSにアプリをインストールする方法を書きたいと思います。(Intuneはアプリインストールもめんどいからシェルで解決!)
この記事が気に入ったらサポートをしてみませんか?