アンマネージドデバイスのアプリ保護ポリシーのレポート(Intune)
はじめに
アンマネージドデバイスのアプリ保護ポリシーのログってどこで確認できるんだろう?となったのでまとめてみました。
管理センターでレポートを取得してみる
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)
-
Graph Explolerにアクセスしサインイン
※簡単な手順はサポートチームのブログに記載があります。 - POST要求をする
https://graph.microsoft.com/v1.0/deviceManagement/reports/exportJobs
※bodyにselectとfilterも追加できますがfilterはエラーになってしまいました。。
PowerShellの部分に記載しています。
{
"reportName": "MAMAppProtectionStatus",
"localizationType": "LocalizedValuesAsAdditionalColumn"
}
必要に応じてアクセス許可の同意
- レスポンスのid項目を追加しGET
https://graph.microsoft.com/v1.0/deviceManagement/reports/exportJobs('MAMAppProtectionStatus-xxx-xxxxxxxxxxxxxxx')
- 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