首页 > 解决方案 > 使用 $skip/$top 的客户端分页不适用于 Intune

问题描述

我们目前正在开发一个客户端应用程序,该应用程序通过使用以下 Microsoft Graph API 查询客户帐户上的所有设备来处理 Intune 设备:

获取https://graph.microsoft.com/v1.0/deviceManagement/managedDevices

在我们从测试环境迁移到生产帐户后,我们发现使用相关的 Microsoft Graph API OData 文档$skip对设备进行手动分页并且$top无法正常工作。

根据上述文件:

但是,尽管目标客户帐户上注册了数千台设备,但以下查询返回空结果:

获取https://graph.microsoft.com/v1.0/deviceManagement/managedDevices?$top=10&$skip=10

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#deviceManagement/managedDevices",
    "@odata.count": 10,
    "@odata.nextLink": "https://graph.microsoft.com/v1.0/deviceManagement/managedDevices?$top=10&$skip=10",
    "value": []
}

此外,我们发现 OData$filter也不起作用,如以下代码段所示,该代码段查询operatingSystem等于“Android”的设备:

GET 'https://graph.microsoft.com/v1.0/deviceManagement/managedDevices?$top=100&filter=operatingSystem%20eq%20%27Android%27'

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#deviceManagement/managedDevices",
    "@odata.count": 100,
    "@odata.nextLink": "https://graph.microsoft.com/v1.0/deviceManagement/managedDevices?$top=100&$skip=0&filter=operatingSystem+eq+%27Android%27",
    "value": [
        {
            "id": "5bac965e-25e3-4f99-97fb-da21a280f684",
            "userId": "some-uuid-value",
            "deviceName": "My Iphone",
            "managedDeviceOwnerType": "company",
            "enrolledDateTime": "2020-02-05T09:52:39Z",
            "lastSyncDateTime": "2020-10-19T17:07:20Z",
            "operatingSystem": "iOS",
...

我们已经使用上述 API 的两个版本进行了测试,但均v1.0无济于事beta。有没有人有这个工作?

标签: microsoft-graph-apiodatamicrosoft-graph-intune

解决方案


推荐阅读