Udostępnij za pośrednictwem


Eksportowanie raportów Intune przy użyciu interfejsów API programu Graph

Wszystkie raporty, które zostały zmigrowane do infrastruktury raportowania Intune będą dostępne do eksportowania z jednego interfejsu API eksportu najwyższego poziomu. Aby wywołać protokół HTTP, należy użyć interfejs Graph API firmy Microsoft. Microsoft Graph to internetowy interfejs API RESTful, który umożliwia dostęp do zasobów usługi w chmurze firmy Microsoft.

Uwaga

Aby uzyskać informacje na temat wykonywania wywołań interfejsu API REST, w tym narzędzi do interakcji z programem Microsoft Graph, zobacz Korzystanie z interfejs Graph API firmy Microsoft.

Microsoft Intune wyeksportuje raporty przy użyciu następującego punktu końcowego interfejs Graph API firmy Microsoft:

https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs
https://graph.microsoft.com/v1.0/deviceManagement/reports/exportJobs

Przykładowe urządzenia zgłaszają żądanie i odpowiedź

Podczas tworzenia żądania należy podać reportName parametr jako część treści żądania na podstawie raportu, który chcesz wyeksportować. Poniżej przedstawiono przykład żądania eksportu dla raportu Urządzenia . W żądaniu należy użyć metody HTTP POST. Metoda POST służy do tworzenia nowego zasobu lub wykonywania akcji.

Przykład żądania

Poniższe żądanie zawiera metodę HTTP używaną w żądaniu do programu Microsoft Graph.

{ 
    "reportName": "Devices", 
    "filter":"(OwnerType eq '1')", 
    "localizationType": "LocalizedValuesAsAdditionalColumn", 
    "format": "json",
    "select": [ 
        "DeviceName", 
        "managementAgent", 
        "ownerType", 
        "complianceState", 
        "OS", 
        "OSVersion", 
        "LastContact", 
        "UPN", 
        "DeviceId" 
    ]
} 

Uwaga

Aby pobrać dane, wybierz określone kolumny, takie jak te określone w powyższym przykładzie. Nie kompiluj automatyzacji wokół domyślnych kolumn żadnego eksportu raportu. Należy utworzyć automatyzację, aby jawnie wybrać odpowiednie kolumny.

Przykład odpowiedzi

Na podstawie powyższego żądania POST program Graph zwraca komunikat odpowiedzi. Komunikat odpowiedzi to żądane dane lub wynik operacji.

{ 
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#deviceManagement/reports/exportJobs/$entity", 
    "id": "Devices_05e62361-783b-4cec-b635-0aed0ecf14a3", 
    "reportName": "Devices", 
    "filter":"(OwnerType eq '1')", 
    "localizationType": "LocalizedValuesAsAdditionalColumn", 
    "select": [ 
        "DeviceName", 
        "managementAgent", 
        "ownerType", 
        "complianceState", 
        "OS", 
        "OSVersion", 
        "LastContact", 
        "UPN", 
        "DeviceId" 
    ], 
    "format": "csv", 
    "snapshotId": null, 
    "status": "notStarted", 
    "url": null, 
    "requestDateTime": "2020-08-19T03:43:32.1405758Z", 
    "expirationDateTime": "0001-01-01T00:00:00Z" 
} 

Następnie możesz użyć id pola, aby wykonać zapytanie o stan eksportu za pomocą żądania GET:

Na przykład: https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs('Devices_05e62361-783b-4cec-b635-0aed0ecf14a3') lub https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs/Devices_05e62361-783b-4cec-b635-0aed0ecf14a3

Musisz kontynuować wywoływanie tego adresu URL, dopóki nie otrzymasz odpowiedzi z atrybutem status: completed . Wygląda to podobnie do następującego przykładu:

{ 
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#deviceManagement/reports/exportJobs/$entity", 
    "id": "Devices_05e62361-783b-4cec-b635-0aed0ecf14a3", 
    "reportName": "Devices", 
    "filter":"(OwnerType eq '1')", 
    "localizationType": "LocalizedValuesAsAdditionalColumn", 
    "select": [ 
        "DeviceName", 
        "managementAgent", 
        "ownerType", 
        "complianceState", 
        "OS", 
        "OSVersion", 
        "LastContact", 
        "UPN", 
        "DeviceId" 
    ], 
    "format": "csv", 
    "snapshotId": null, 
    "status": "completed", 
    "url": "https://amsua0702repexpstorage.blob.core.windows.net/cec055a4-97f0-4889-b790-dc7ad0d12c29/Devices_05e62361-783b-4cec-b635-0aed0ecf14a3.zip?sv=2019-02-02&sr=b&sig=%2BP%2B4gGiZf0YzlQRuAV5Ji9Beorg4nnOtP%2F7bbFGH7GY%3D&skoid=1db6df02-4c8b-4cb3-8394-7ac2390642f8&sktid=72f988bf-86f1-41af-91ab-2d7cd011db47&skt=2020-08-19T03%3A48%3A32Z&ske=2020-08-19T09%3A44%3A23Z&sks=b&skv=2019-02-02&se=2020-08-19T09%3A44%3A23Z&sp=r", 
    "requestDateTime": "2020-08-19T03:43:32.1405758Z", 
    "expirationDateTime": "2020-08-19T09:44:23.8540289Z" 
} 

Następnie możesz bezpośrednio pobrać skompresowany plik CSV z url pola.

Parametry raportu

Istnieje pięć głównych parametrów, które można przesłać w treści żądania, aby zdefiniować żądanie eksportu:

  • reportName:Wymagane. Ten parametr jest nazwą raportu, który chcesz określić.
  • filter: nie jest wymagane w przypadku większości raportów. Parametr filtru jest ciągiem.
  • select: Nie jest wymagane. Określ kolumny z raportu, który chcesz. Akceptowane będą tylko prawidłowe nazwy kolumn odpowiednie dla wywoływanego raportu.
  • format: Nie jest wymagane. Domyślnie dane są dane wyjściowe w csv formacie. Określ json , aby wyświetlić plik w formacie JSON.
  • localizationType: Ten parametr kontroluje zachowanie lokalizacji raportu. Możliwe wartości to LocalizedValuesAsAdditionalColumn i ReplaceLocalizableValues.

Zachowanie lokalizacji

Parametr localizationType kontroluje zachowanie lokalizacji raportu. Możliwe wartości tego parametru to LocalizedValuesAsAdditionalColumn i ReplaceLocalizableValues.

LocalizedValuesAsAdditionalColumn, wartość raportu

Ta wartość parametru localizationType jest wartością domyślną. Jest wstawiany automatycznie, jeśli localizationType parametr nie zostanie określony. Ta wartość określa, że Intune zawiera dwie kolumny dla każdej kolumny lokalizowalnej.

  • wartość wyliczenia: Kolumna wartości wyliczenia zawiera nieprzetworzony ciąg lub zestaw liczb, które nie ulegają zmianie, niezależnie od ustawień regionalnych. Ta kolumna znajduje się pod oryginalną nazwą kolumny (zobacz przykład).
  • zlokalizowana wartość ciągu: ta kolumna jest oryginalną nazwą kolumny z dołączonym _loc. Zawiera on wartości ciągów, które są czytelne dla człowieka, oraz ustawienia warunkowe ustawień regionalnych (zobacz przykład).

Przykład

System operacyjny OS_loc
1 System Windows
1 System Windows
1 System Windows
2 iOS
3 Android
4 Mac

ReplaceLocalizableValues, wartość raportu

Wartość raportu ReplaceLocalizableValues zwróci tylko jedną kolumnę na zlokalizowany atrybut. Ta kolumna zawiera oryginalną nazwę kolumny z zlokalizowanymi wartościami.

Przykład

System operacyjny
System Windows
System Windows
System Windows
iOS
Android
Mac

W przypadku kolumn bez wartości zlokalizowanych zwracana jest tylko pojedyncza kolumna z prawdziwą nazwą kolumny i wartościami kolumn true.

Ważna

Parametr localizationType jest odpowiedni dla każdego środowiska eksportu hostowanego przez infrastrukturę raportowania Intune z kilkoma wyjątkami. TypyDevices raportów i DevicesWithInventory nie będą uwzględniać parametru localizationType ze względu na starsze wymagania dotyczące zgodności.

Warunki ograniczania przepustowości interfejsu API

Aby upewnić się, że exportJobs interfejs API nie ma zbyt wielu współbieżnych żądań, co miałoby wpływ na szybkość odpowiedzi interfejsu API, zastosowano poniższe limity ograniczania przepustowości.

  • Interfejsy API będą obsługiwać maksymalnie 100 żądań na dzierżawę na minutę: ta obsługa obejmuje wszystkich użytkowników i aplikacje w dzierżawie. Wszelkie dodatkowe żądania zainicjowane przez użytkowników lub aplikacje w dzierżawie w tej samej minucie zostaną ograniczone.
    • Jeśli interfejsy API są inicjowane przez użytkownika, ten sam użytkownik będzie mógł w ciągu minuty zezwolić na maksymalnie 8 żądań. Kolejne żądania tego samego użytkownika w tej samej minucie zostaną ograniczone.
    • Jeśli interfejsy API są inicjowane przez aplikację, w ciągu minuty ta sama aplikacja będzie zezwalać na maksymalnie 48 żądań. Kolejne żądania tej samej aplikacji w tej samej minucie zostaną ograniczone.

Następne kroki