【Q&Aコーナー】Intuneデバイスにインストールされた、よろしくないアプリを見つける

皆さんこんにちは。国井です。
先日、Intuneに登録されたデバイスに対してインストールされたアプリの中から会社で認めていない、よろしくないアプリってどうやって見つけたらいいですか?というご質問をいただいたので、私なりのやり方をご紹介します。

Intuneデバイスにインストールされたアプリのみかた

Microsoft Endpoint Manager管理センター画面からインストールされたアプリを見る場合、デバイス単位で見ていきます。

image

既にDAZNとかって業務に関係ないアプリを見つけてますけど、こんな感じで探していこうと思ったらデバイスごとに[検出されたアプリ]画面を見なければなりません。

ちなみにIntuneのコンプライアンスポリシーでは特定のアプリがインストールされているか?を条件に準拠/非準拠という設定を行うことができる設定もあるのですが、
ブラックリスト方式になっていて「入れちゃいけないアプリ」一覧しか登録できないんですよ..

image

実際に入れちゃいけないアプリなんて山ほどあるこの時世、よろしくないアプリを見つけるのには無理があると思います(しかもiOS, Android限定)。
※以前はホワイトリスト、ブラックリスト両方選べたのですが..

PowerShellで調べる

ここからが解決方法です。
Intuneの中で扱うデータはMicrosoft Graphを使って取得できることはよく知られていることだと思います。しかしどうやって取ってくればいいのさ!と考えていらっしゃる、そこのあなた、IntuneのPowerShellコマンドレットを使いましょう。
モジュールのインストール方法はこちらに書いておきました。

でもって、スクリプトはこんな感じに書いてみました。
Microsoft.Graph.Intuneモジュールからコマンドレットを実行する場合、
Get-IntuneDetectedAppコマンドレットで一度アプリ一覧の情報を取ってきて、
その後、Get-IntuneDetectedAppDevice コマンドレットを使って
そのアプリがインストールされているデバイス一覧を表示する、
という感じです。

Connect-MSGraph コマンドレットでIntuneへの接続を行ったら、以下のスクリプトを実行してみましょう。(スクリプトではiOSに限定するな記述していますが、必要に応じて書き換えてください)

$Apps = (Get-IntuneDetectedApp).value
foreach ($App in $Apps){
$device=Get-IntuneDetectedAppDevice -detectedAppId $App.Id
if ($device.operatingSystem -match “iOS”){
$App.displayName
echo “————”
$device.deviceName
echo ” ”
}
}

そして実行結果がこちら。

image

かなり雑なスクリプトですが、見てもらえればどのアプリがどのデバイスにインストールされているのかが確認できると思います。