PowershellでMicrosoft Graph APIを通じてソフトウェア インベントリを取得する方法について

こんにちは。

本日は、Microsoft Graph API で Intune に登録されている各デバイスのソフトウェア インベントリを取得する PowerShell スクリプトを紹介致します。

前回のブログでは、Microsoft Graph API を使うアプリの登録、そしてアクセス許可の調整についてご紹介しておりますので、まだご覧になっていない方は是非こちらをご参照ください!

 

ソフトウェア インベントリを取得するには、こちらのスリプトをダウンロードします。前回のスクリプトと同じく、clientID の値を有効なアプリケーション ID と入れ替えてください。アクセス許可を調整したい場合は必ず登録したアプリのアプリケーション ID をご入力ください。本スクリプトを PowerShell から実行することで、各デバイスで検出されたアプリを表示できます。

 

なお、本情報の取得には次の Microsoft Graph のアクセス許可が必要となります:

Read Microsoft Intune Devices (DeviceManagementManagedDevices.Read.All)

Microsoft Graph API の次の URI が使用されます:

1)https://graph.microsoft.com/beta/managedDevices
― すべてのデバイスの情報を取得します。

2)https://graph.microsoft.com/beta/managedDevices/{deviceID}
― ユーザー ID を取得するために一台のデバイスの情報を抽出します。

3)https://graph.microsoft.com/beta/managedDevices/{deviceID}/detectedApps
― 一台のデバイスを ID で検索し検出されたアプリを抽出します。

 

Windows Azure Active Directory APIから次のアクセス許可も必要となります:

Access the directory as the signed-in user (Directory.AccessAsUser.All)

Windows Azure Active Directory APIの次のURIが使用されます:

1)https://graph.microsoft.com/v1.0/users/{userID}
― ユーザー ID でデバイスの持ち主を検索し名前を取得します。

スクリプトを実行すると以下のように各デバイスの検出されたアプリが表示されます。

なお、Microsoft Graph API の機能一覧と URI の応答の詳細については、Graphエクスプローラーをお試しください。呼び出しの応答プレビューを見ることができますので、API を試したい時に便利です。