微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以更改设备策略?

如何解决是否可以更改设备策略?

我的企业有 2 个政策:POLICY_1 和 POLICY_2。 我的设备已配置 POLICY_1,但我想将其更改为 POLICY_2。

我正在使用 Java 库“com.google.apis:google-api-services-androidmanagement:v1-rev20201012-1.30.10”。

我正在尝试使用以下代码更改其政策:

private void updateMyDevicePolicy(String enterpriseName,String deviceName) throws IOException {
    Device device = getMyDevice(deviceName);
    String policyName = enterpriseName + "/policies/POLICY_2";
    device.setPolicyName(policyName);
    device.setAppliedPolicyName(policyName);
    Device deviceUpdated = androidManagementClient.enterprises().devices().patch(deviceName,device).execute();
    
    System.out.println("DEVICE policy updated = " + deviceUpdated);
}

问题是:patch 命令不起作用。 设备政策仍为“POLICY_1”。

请问,我该如何更改设备政策?

解决方法

这很有可能,我也经常这样做。 使用 Device Patch 请求并传入需要应用于设备的 PolicyId。

应用于设备的策略名称,格式为enterprise/{enterpriseId}/policies/{policyId}。该字段可以通过补丁请求进行修改。调用enterprise.devices.patch时可以只指定policyId,只要policyId不包含斜线即可。策略名称的其余部分是推断出来的。 Ref

这是我的 C# 代码的概述。

  1. 使用需要对其应用的政策创建设备请求正文。
Google.Apis.AndroidManagement.v1.Data.Device deviceBody = new Device()
{
    Name = device.DeviceId,PolicyName = POLICY_2,State = "ACTIVE"
};
  1. 调用 Device Patch 请求
EnterprisesResource.DevicesResource.PatchRequest attachNewPolicy = 
new EnterprisesResource.DevicesResource.PatchRequest(service,deviceBody,device.DeviceId);
attachNewPolicy.Execute();

这应该将新政策应用于设备。

,

可以使用 devices().patch() 来更新设备的策略。但是,需要在 devices().patch() 中将 updateMask 设置为将更新的字段,在本例中为 policyName,以表明您只想更改该特定字段。

下面是使用不同语言的updateMask的实现:

androidmanagement.enterprises().devices().patch(
    name=device_name,updateMask="policyName",body=json.loads(devices_json)
).execute()

在此代码中,“policyName”从enterpriseName + "/policies/POLICY_1" 更新为enterpriseName + "/policies/POLICY_2"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。