📄

アンマネージドデバイスのアプリ保護ポリシーのレポート(Intune)

2023/02/09に公開

はじめに

アンマネージドデバイスのアプリ保護ポリシーのログってどこで確認できるんだろう?となったのでまとめてみました。

管理センターでレポートを取得してみる

Microsoft Endpoint Manager admin center > アプリ > モニター > アプリの保護状態 > アプリ保護レポートios,AndroidでCSVファイルを取得認できます。(Microsoft Learn)


レポートはレポートでまとまるといいなぁ

CSVファイルの中身を抜粋しています。

列項目 アンマネージド マネージド メモ
表示名 佐藤健
UPN sato@contoso.com
アプリ Microsoft Outlook
アプリ バージョン 4.2303.1 (18132571)
デバイス名
デバイスの種類 pixel6/iOS/iPad
デバイス製造元 Android:Google、iOS/ipadOS:空白
デバイス モデル Pixel6/iPad14,1
AndroidPatchVersion 2022/12/5 ※Androidのみ
AAD デバイス ID 利用できません
MDM デバイス ID 利用できません
プラットフォーム Android/iOSiPadOS
プラットフォームのバージョン 13/15.6
管理の種類 unmanaged AndroidEnt/
アプリの保護状態 保護済み/保護なし
ポリシー 利用できません/アプリ保護ポリシー名
最後の同期 2023/2/8 23:09:00
コンプライアンスの状態 準拠している 準拠している/準拠していない

アンマネージドデバイスであってもブローカーアプリ(Authenticator・Intuneポータルサイトアプリ)を経由してデバイス情報をIntuneに送信しているのが分かります。

ただしこのCSVの1行分のレコードは「だれが、どのアプリを、どのデバイスで」といった感じでユーザー数や利用しているアプリが多いほどとんでもない量になります。

Microsoft Endpoint Manager admin centerで取得できる情報は基本的にはMIcrosoft Graphで取得できるので、クエリパラメータのfilterやselectを使ってほしい情報だけ取得してみようと思います。

Graph Explolerでレポートを取得してみる

手順はMicrosoft Learnに記載されています。
今回はIntuneで取得可能なレポートのMAMAppProtectionStatusを取得します。
※前項のCSVよりも取得できる項目が少し増えます(SdkVersion、DeviceHealth)

  1. Graph Explolerにアクセスしサインイン
    ※簡単な手順はサポートチームのブログに記載があります。
  2. POST要求をする
https://graph.microsoft.com/v1.0/deviceManagement/reports/exportJobs

※bodyにselectとfilterも追加できますがfilterはエラーになってしまいました。。
PowerShellの部分に記載しています。

{
    "reportName": "MAMAppProtectionStatus",
    "localizationType": "LocalizedValuesAsAdditionalColumn"
}


必要に応じてアクセス許可の同意

  1. レスポンスのid項目を追加しGET
https://graph.microsoft.com/v1.0/deviceManagement/reports/exportJobs('MAMAppProtectionStatus-xxx-xxxxxxxxxxxxxxx')
  1. status項目がinprogressになるので1分程度で再度GETするとstatus項目がcompletedになりCSVファイル取得用のURLが返ってくる


Microsoft Graph PowerShell SDKでレポートを取得してみる

やっていることはGraph Explolerと同じです。

PS C:\WINDOWS\system32> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.19041.2364
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.19041.2364
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
Connect-MgGraph -Scopes "DeviceManagementConfiguration.Read.All"

$postRequestUri = "/v1.0/deviceManagement/reports/exportJobs"
$postRequestBody = @{
	"reportName" = "MAMAppProtectionStatus"
	"localizationType" =  "LocalizedValuesAsAdditionalColumn"
<#
	# 以下の項目は任意です。selectの項目は変更してください。
	"select" = @("Email","Platform")
	# filterうまくいきませんでした。。。教えてほしいです。
	"filter" = "(Email eq 'takeru.sato@contoso.com')"
#>
}
$MAMAppProtectionStatus = Invoke-GraphRequest -Method POST -Uri $postRequestUri -Body $postRequestBody
$getRequestUri = "/v1.0/deviceManagement/reports/exportJobs('" + $MAMAppProtectionStatus.Id + "')"
Invoke-GraphRequest -Method GET -Uri $getRequestUri

# 自動化するときは変更してください
Start-Sleep -s 30
$MAMAppProtectionReport = Invoke-GraphRequest -Method GET -Uri $getRequestUri

# URLがnullの時はもう一度1個前のコマンドを実行してください。
start -FilePath $MAMAppProtectionReport.URL

おわりに

本来はアプリ保護ポリシーのわかりづらい項目をまとめる予定でしたが、Graphの$filterに沼ってしまったのでまたの機会に。

Discussion