Intune の 同期 タイミングについて 深堀してみた

# はじめに
誰もがモヤモヤする Intune の 同期 タイミングについて 私なりに深堀してみました。
初めは、以下の アプリ展開 についての記事の中で、**"同期"** についても記載していたのですが、**同期** だけでも 結構なボリュームになってしまったので、外出しして 記事化しました。

**アプリ展開について記載した記事**

https://qiita.com/carol0226/items/df5a2a8e647a06564576

# 1. 同期 の タイミング
## 1-1. ポリシーの自動更新
Intune に登録されたデバイスは、定められたタイミングで、同期が実施されます（同期 とは、デバイスが Intune サービスに接続することです）

同期 が行われた際に、新しいアプリ展開の指示を受け取ることを チェックイン と呼び、そのチェックインの際の指示に従って ダウンロード と インストール などが行われます。

同期 のタイミングですが、Windows の場合は、登録直後は　"15 分まで 3 分ごと、その後の 2 時間は 15 分ごと、その後は約 8 時間ごと" という感じで、初めの方は頻度が高いですが だんだん間隔が伸びていくようになっているようですが、この設定は タスクスケジューラ にて実装されているみたいです。

詳細な時間は、以下の公開情報で確認できます。

（公開情報：ポリシー更新間隔）
https://learn.microsoft.com/ja-jp/mem/intune/configuration/device-profile-troubleshoot#policy-refresh-intervals
　<br>

**タスクスケジューラ の設定値 を分析してみました**
タスク は、以下の場所に登録されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/995f84d4-acc7-de66-991e-3556fbd7345c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/c67b8be1-6ef0-7d27-4989-eda90f435984.png)

**タスクスケジューラの設定値を読み取ったところ**
以下の通り、公開情報の説明の通りの設定値になっていることが確認できました。
|№|タスク名|トリガー|期間|間隔|
|:-:|:-:|:-:|:-:|:-:|
|1|Schedule #1<br>created by enrollment client|初回起動|15 分間|3 分ごと|
|2|Schedule #2<br>created by enrollment client|#1 起動の 15 分後|2 時間|15分ごと|
|3|Schedule #3<br>created by enrollment client|#2 起動の 2 時間後|無期限|8 時間ごと|
|4|Login Schedule<br>created by enrollment client|任意のユーザーのログオン時|-|-|

:::note info
No.4 (図の水色枠) ですが、公開情報には記載が無い気がするし、私以外に、このタスクに言及している人が見当たらないので不安なのですが、ログオン時に１回実行されているように見えますね。実行されているコマンドは、No.1～4 すべて同一のコマンドです。
**deviceenroller.exe /o [デバイス名]**
:::

**全般タブ**
利用者がログオンしていなくても 処理されるみたいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/f366b00e-32ac-82f1-1ec0-ab532508882c.png)

**トリガータブ**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/44996bba-0152-0ca1-0b8a-883ac7035496.png)

**トリガーの編集**
先ほど、表にまとめた通り、スケジュールが設定されてます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/d9762894-294e-8de0-b141-f0957412281c.png)

**操作タブ**
deviceenroller.exe という コマンド が実行されてます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/f2411aa3-bd14-c46b-6814-9aeecd32aeda.png)

**条件タブ**
ネットワークが有効な場合にのみ実行されるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/883aba7e-e572-1a8b-4187-b0955dcdcb00.png)

**設定タブ**
指定時刻にタスクを実行できなかったら、すぐに実行するみたいです。
そのため、電源 OFF している間に 8 時間 を過ぎていた場合は、PC 起動直後に タスクが実行されそうな気がしますね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/82087ea0-70ea-3d1c-526e-6a60bb18ecfc.png)

（有識者の方々の記事）
同期処理の タスクスケジューラ については、以下の記事でも詳しく解説されています。

**DeviceEnroller.exe の謎に迫る Season 1**
https://sccm.jp/2023/11/03/post-5615/

**DeviceEnroller.exe の謎に迫る Season 2**　← この記事が詳細に説明されてます
https://sccm.jp/2023/11/05/post-5626/

**Intune の同期よ、早く来て！**
https://azuread.net/archives/13535

## 1-2. ポリシーの手動更新
自動で行われている 同期 を待っていられない **急ぎ** の場合があると思います。
そのような場合は、デバイス側から **手動** で 同期 を実施することができます。

### 1-2-1. 利用者による操作の場合
**設定パネルからの同期**
「職場または学校にアクセスする」を開き、①の部分 を開くと、②「情報」ボタンがあるのでクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/3db5287b-3798-eb25-6592-f46da6926182.png)

以下の画面で、緑枠の「同期」のボタンを押すことで、同期 が即座に行われます。
同期がエラーにならず、最新日付に更新されて "正しく同期されました" と表示されることを確認してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/6108d6a0-d607-89fe-d893-d4615066e503.png)

以下の公開情報は、設定パネル以外の箇所から「同期」を実施する方法が説明されています。こちらも参考にしてみてください。

https://learn.microsoft.com/ja-jp/mem/intune/user-help/sync-your-device-manually-windows

### 1-2-2. 管理者による操作の場合
Intune 管理センターから デバイス の概要ページ を開き、「同期」ボタンをクリックすることで、デバイス を 同期 させることも可能です。
その場合は、Intune サービス側から デバイスに対して **"通知"** が送信されます。
その **"通知"** を デバイス が受け取ったタイミングで「同期」が開始されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/d5718848-f257-c280-f3b7-5607cc42cb22.png)

以下の公開情報には、管理側の操作手順のほかに エラーコード についても説明されています。

https://learn.microsoft.com/ja-jp/mem/intune/remote-actions/device-sync

:::note warn
同期の実施により、チェックイン が行われると、デバイスは アプリの展開があるのかどうかを把握します。しかし、そこで すぐにアクションが行われるかは判りません。
さらに、次章以降で説明している条件を満たす必要があります。
:::

# 2. WAP プッシュ メッセージ ルーティング サービス
dmwappushsvc（WAP プッシュ メッセージ ルーティング サービス）というサービスがあり、これが **"無効化"** されていると、**"同期"** が行えなくなります。
私も検証してみましたが、あえて **"無効化"** してみると、同期 ができなることを確認できました。
そのため、このサービスが 既定値の **"自動（遅延開始）"** になっているかどうか確認しましょう。

インターネット上で このサービスを検索すると、無駄なリソースなので **"無効化"** してしまって良いとの投稿が目立ちますが、Intune を使う上では 必須 のサービスなので注意が必要です。

**公開情報**

https://learn.microsoft.com/ja-jp/troubleshoot/mem/intune/device-management/cannot-sync-windows-10-devices

（上記より、抜粋）
この dmwappushservice サービスは、Intune 管理のためにクライアント デバイスで必要です。 このサービスが無効になっている場合、デバイスは Intune と同期できません。

**dmwappushsvc の説明ページ**

https://learn.microsoft.com/ja-jp/windows/client-management/mdm-overview#what-is-dmwappushsvc

**dmwappushsvc のありか**
このサービス、どこにあるんだ！？
探しまくって、やっと見つかりました。
日本語名は **"デバイス管理ワイヤレス アプリケーション プロトコル (WAP) プッシュ メッセージ ルーティング サービス"** となっていて、サービスの一覧を 5 往復くらい見て やっと見つけられました（無いのかと思って、あきらめるところでした・・・）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/4df870f0-be11-60b6-1c4d-9a4eea03e2a3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/929b53bc-ebbc-8c34-d045-3686bbe7659f.png)

:::note warn
このサービスは、「トリガー開始」の扱いになっているみたいで、**"停止"** 状態でも問題無いみたいです。必要なタイミングで **"開始"** されて仕事を行い、また 停止 状態に戻るような動きをしています。これが **"無効"** にされてしまっていると、**"開始"** できなくなるので、問題となるようです。
:::

以下のように **"同期"** ボタンを押した直後に サービスの状態を見てみたら **"実行中"** にかわっていましたし、数分待ってみたら、**"停止"** に戻りました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/79ec2001-aafd-a3cf-fef1-b92197de7365.png)

逆に、サービスを わざと **"無効"** にして **"同期"** ボタンを押してみると、同期が実行されないまま、ボタン がすぐに押せる状態に戻ってしまいました。**"同期"** ボタンを連打できるくらいの状態ですが、同期は実施されません。
この時、何のエラーも発生しないので、原因 が判らなくなりそうです。

:::note info
このネタに言及している人は、少なさそうですが、以外とハマりどころかもしれません。
BYOD 運用で 個人デバイス を Intune 登録している場合なんかは、利用者が 自己判断 で 無効化 しちゃってる人とか居そうです。
:::

# うまく同期出来ない場合
同期ボタンを押した際に、0x80190190 というエラーが出る場合があります。
その際の対処方法については、以下の記事に纏めてあります。

https://qiita.com/carol0226/private/6ff09b7f06043ede40cb