Only certain properties of a device can be updated through approved Mobile Device Managment (MDM) apps.
Important
This API has a known issue. An app with application permissions cannot update the extensionAttributes property for Linux-based devices, that is, where the operationSystem property is linux.
Permissions
One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions.
Permission type
Permissions (from least to most privileged)
Delegated (work or school account)
Directory.AccessAsUser.All
Delegated (personal Microsoft account)
Not supported.
Application
Device.ReadWrite.All, Directory.ReadWrite.All
The calling user must also be in one of the following Azure AD roles: Global Administrator, Intune Administrator. A calling user in the Cloud Device Administrator role can only enable or disable devices using this API and a user with the Windows 365 Administrator role can only update basic device properties.
HTTP request
You can address the device using either its id or deviceId.
In the request body, supply the values for the device properties that should be updated. Existing properties that are not included in the request body will maintain their previous values or be recalculated based on changes to other property values. For best performance you shouldn't include existing values that haven't changed.
Property
Type
Description
accountEnabled
Boolean
true if the account is enabled; otherwise, false. Only callers in Global Administrator and Cloud Device Administrator roles can update this property.
operatingSystem
String
The type of operating system on the device.
operatingSystemVersion
String
The version of the operating system on the device
displayName
String
The display name for the device.
isCompliant
Boolean
true if the device complies with Mobile Device Management (MDM) policies; otherwise, false. This can only be updated by Intune for any device OS type or by an approved MDM app for Windows OS devices.
isManaged
Boolean
true if the device is managed by a Mobile Device Management (MDM) app; otherwise, false. This can only be updated by Intune for any device OS type or by an approved MDM app for Windows OS devices.
Response
If successful, this method returns a 204 No Content response code.
Examples
Example 1: Update the accountEnabled property of a device
var graphClient = new GraphServiceClient(requestAdapter);
var requestBody = new Device
{
AccountEnabled = false,
};
var result = await graphClient.Devices["{device-id}"].PatchAsync(requestBody);
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new Device();
$requestBody->setAccountEnabled(false);
$requestResult = $graphServiceClient->devicesById('device-id')->patch($requestBody);
var graphClient = new GraphServiceClient(requestAdapter);
var requestBody = new Device
{
AdditionalData = new Dictionary<string, object>
{
{
"extensionAttributes" , new
{
ExtensionAttribute1 = "BYOD-Device",
}
},
},
};
var result = await graphClient.Devices["{device-id}"].PatchAsync(requestBody);
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new Device();
$additionalData = [
'extensionAttributes' => $requestBody = new ExtensionAttributes();
$ requestBody->setExtensionAttribute1('BYOD-Device');
$requestBody->setExtensionAttributes($extensionAttributes);
];
$requestBody->setAdditionalData($additionalData);
$requestResult = $graphServiceClient->devicesById('device-id')->patch($requestBody);