Microsoft Intuneでは、標準のコンプライアンスポリシーだけでなく、Windows カスタムコンプライアンスを利用することで、PowerShellによる独自条件を用いたコンプライアンス判定が可能です。
本記事では、Microsoft 365 Appsのバージョンを基準にデバイスのコンプライアンスを判定する方法についてまとめます。
検出スクリプトの作成
まずは、対象デバイスにインストールされているMicrosoft 365 Appsのバージョンを取得するPowerShellスクリプトをIntuneに登録します。
- Intune管理センターにサインインする。
- [エンドポイント セキュリティ]-[デバイスのコンプライアンス]-[スクリプト]をクリックする。[追加]-[Windows 10 以降]をクリックする。
- 以下の必須項目を設定する。(その他設定値は既定)
- 名前
- 検出スクリプト
$path = "HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration" $version = (Get-ItemProperty -Path $path -ErrorAction SilentlyContinue).ClientVersionToReport if (-not $version) { # Office未インストール時も Version として評価可能にする $version = "0.0.0.0" } $version = $version.Trim() @{ M365Version = $version } | ConvertTo-Json -Compress | Write-Output exit 0
JSONファイルの作成
カスタムコンプライアンスでは、JSON形式で準拠/非準拠の判定条件を定義します。
前章の「検出スクリプトの作成」では、対象デバイスにインストールされている Microsoft 365 Apps のバージョンを取得するスクリプトを作成しました。
本章では、その検出スクリプトで取得したバージョン情報を基に、指定したバージョン要件を満たしているかどうかを判定するためのJSONファイルを作成します。
ここでは例として、Microsoft 365 Appsの最小バージョンを16.0.19500.20300とする場合のJSON定義を示します。作成したJSONファイルは、後続の手順でカスタムコンプライアンスポリシーの設定時に使用します。
{
"Rules": [
{
"SettingName": "M365Version",
"Operator": "GreaterEquals",
"DataType": "Version",
"Operand": "16.0.19500.20300"
}
]
}
コンプライアンスポリシーの作成
次に、検出スクリプトの結果を評価するコンプライアンスポリシーを作成します。
- Intune管理センターにサインインする。
- [デバイス]-[Windows]-[コンプライアンス]をクリックする。
- [ポリシーの作成]をクリックする。
- 以下を設定し、その他項目は必要に応じて設定したうえで、[作成]をクリックする。
- プラットフォーム:Windows 10以降
- プロファイルの種類:Windows 10/11 コンプライアンスポリシー
- カスタムコンプライアンス:必要
- 検出スクリプトを選択する:作成した検出スクリプトを選択する
- カスタムコンプライアンス設定でJSONファイルをアップロードする:作成したJSONファイルを選択する
カスタムコンプライアンス判定結果
作成したカスタムコンプライアンスポリシーによる判定結果を確認します。
以下のキャプチャは、ポリシー適用前の状態を示したものです。この時点ではデバイスは準拠状態として判定されています。

次に、Microsoft 365 Appsのバージョンが要件を満たさない状態でポリシーを評価した結果です。
バージョン判定により、デバイスが非準拠として判定されていることが確認できます。

おわりに
本記事では、Microsoft 365 Appsのバージョンを基準にデバイスのコンプライアンスを判定する方法について解説しました。
Microsoft Intuneのカスタムコンプライアンス設定を活用することで、組織の要件に応じた柔軟なデバイス管理が可能となります。同様の要件がある場合は、ぜひ本手順を参考に設定を行ってみてください。