更新设备
本文内容
命名空间:microsoft.graph
更新已注册设备的属性。
设备的特定属性只能通过获准的移动设备管理 (MDM) 应用进行更新。
重要
此 API 存在一个已知问题 。 具有应用程序权限的应用只能更新基于 Linux 的设备的 extensionAttributes 属性,即 operationSystem 属性所在的 linux位置。
权限
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限 。
权限类型
权限(从最低特权到最高特权)
委派(工作或学校帐户)
Directory.AccessAsUser.All
委派(个人 Microsoft 帐户)
不支持。
应用程序
Device.ReadWrite.All、Directory.ReadWrite.All
调用用户还必须具有以下 Azure AD 角色 之一:全局管理员 *、Intune管理员*。 云设备管理员 角色中的调用用户只能使用此 API 启用或禁用设备,具有 Windows 365管理员角色的 用户只能更新基本设备属性。
HTTP 请求
请求 {id} 中是设备 ID 属性的 值,而不是 deviceId 属性的值。
PATCH /devices/{id}
名称
类型
说明
Authorization
string
Bearer {token}。必需。
请求正文
在请求正文中,提供应更新的 device 属性值。 请求正文中不包括的现有属性将保留其以前的值,或根据对其他属性值的更改重新计算。 为了实现最佳性能,不得添加未变化的现有值。
属性
类型
说明
accountEnabled
Boolean
启用帐户时为 true,否则为 false。 只有 全局管理员 和 云设备管理员 角色中的调用方才能更新此属性。
operatingSystem
String
设备上的操作系统类型。
operatingSystemVersion
String
设备上的操作系统版本
displayName
String
设备显示名称。
isCompliant
Boolean
true如果设备符合移动设备管理 (MDM) 策略,则为 ɭ;否则为 false。 这只能通过任何设备 OS 类型的Intune或 Windows OS 设备的已批准 MDM 应用 进行更新。
isManaged
Boolean
true如果设备由移动设备管理 (MDM) 应用管理,则为 !;否则为 false。 这只能通过任何设备 OS 类型的Intune或 Windows OS 设备的已批准 MDM 应用 进行更新。
响应
如果成功,此方法返回 204 No Content 响应代码。
示例
示例 1:更新设备的 accountEnabled 属性
请求
PATCH https://graph.microsoft.com/v1.0/devices/7c06cd31-7c30-4f3b-a5c3-444cd8dd63ac
Content-type: application/json
{
"accountEnabled": false
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var device = new Device
{
AccountEnabled = false
};
await graphClient.Devices["{device-id}"]
.Request()
.UpdateAsync(device);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档 。
const options = {
authProvider,
};
const client = Client.init(options);
const device = {
accountEnabled: false
};
await client.api('/devices/7c06cd31-7c30-4f3b-a5c3-444cd8dd63ac')
.update(device);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档 。
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/v1.0/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/devices/{id}"]]];
[urlRequest setHTTPMethod:@"PATCH"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphDevice *device = [[MSGraphDevice alloc] init];
[device setAccountEnabled: false];
NSError *error;
NSData *deviceData = [device getSerializedDataWithError:&error];
[urlRequest setHTTPBody:deviceData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档 。
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
Device device = new Device();
device.accountEnabled = false;
graphClient.devices("7c06cd31-7c30-4f3b-a5c3-444cd8dd63ac")
.buildRequest()
.patch(device);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档 。
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewDevice()
accountEnabled := false
requestBody.SetAccountEnabled(&accountEnabled)
deviceId := "device-id"
graphClient.DevicesById(&deviceId).Patch(requestBody)
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档 。
Import-Module Microsoft.Graph.Identity.DirectoryManagement
$params = @{
AccountEnabled = $false
}
Update-MgDevice -DeviceId $deviceId -BodyParameter $params
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档 。
响应
HTTP/1.1 204 No Content
示例 2:在设备上写入 extensionAttributes
请求
PATCH https://graph.microsoft.com/v1.0/devices/7c06cd31-7c30-4f3b-a5c3-444cd8dd63ac
Content-type: application/json
{
"extensionAttributes": {
"extensionAttribute1": "BYOD-Device"
}
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var device = new Device
{
AdditionalData = new Dictionary<string, object>()
{
{"extensionAttributes", "{\"extensionAttribute1\":\"BYOD-Device\"}"}
}
};
await graphClient.Devices["{device-id}"]
.Request()
.UpdateAsync(device);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档 。
const options = {
authProvider,
};
const client = Client.init(options);
const device = {
extensionAttributes: {
extensionAttribute1: 'BYOD-Device'
}
};
await client.api('/devices/7c06cd31-7c30-4f3b-a5c3-444cd8dd63ac')
.update(device);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档 。
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewDevice()
requestBody.SetAdditionalData(map[string]interface{}{
}
deviceId := "device-id"
graphClient.DevicesById(&deviceId).Patch(requestBody)
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档 。
Import-Module Microsoft.Graph.Identity.DirectoryManagement
$params = @{
}
Update-MgDevice -DeviceId $deviceId -BodyParameter $params
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档 。
响应
HTTP/1.1 204 No Content