首页 > 解决方案 > 如何通过 Rest-API 在 Airwatch/Workspace ONE 中设置设备名称(友好名称)

问题描述

我希望通过 Rest-API 将 iOS 设备的设备名称和友好名称更改为不同的值。我可以像这样更改友好名称:

$requestHeaders = @{
   'Accept' = 'application/json'
   'Authorization' = $auth
   'aw-tenant-code' = $wsoApiKey
}
$body = @{
   'DeviceFriendlyName' = $WsoDeviceName
}
$body = ConvertTo-Json $body
$uri = $wsoApiUri + $WsoDevice.Id.Value
Invoke-RestMethod -Uri $uri -ContentType "application/json; charset=utf-8" -Headers $requestHeaders -Body $body -Method Put

但我似乎无法在本地 API 帮助(位于 server.local/api/help)和 vmwares 文档中找到更改设备名称的正确属性。发送 PUT 请求以更改 DeviceName 或 DeviceReportedName 不会显示任何更改。代码如下:

$body = @{
    'DeviceName' = $WsoDeviceName
}

我知道可以通过 Web 界面将友好名称设置为设备名称。也许有一种方法可以通过 API 激活该选项,但我没有找到?在这种情况下,它将完成工作。

如果有人能指出我正确的方向,我会很高兴。

最好的祝福

霍尔瓦施

标签: restvmware-workstationairwatch

解决方案


我能够使用自定义 MDM 命令完成此操作。在下面的示例中,我专门使用该POST /devices/commands方法同时通过设备的序列号搜索。

$MdmCommandXml = [xml]@'
<dict>
  <key>RequestType</key>
  <string>Settings</string>
  <key>Settings</key>
  <array>
    <dict>
      <key>DeviceName</key>
      <string></string>
      <key>Item</key>
      <string>DeviceName</string>
    </dict>
  </array>
</dict>
'@

$Auth = ""
$WsoApiKey = ""

$BaseUrl = "https://as<yourhostnumber>.awmdm.com/API/mdm"
$SerialNumber = ""
$Uri = "${BaseUrl}/devices/commands?command=CustomMdmCommand&searchBy=Serialnumber&id=${SerialNumber}"
$NewDeviceName = "NewDeviceName"

$MdmCommandXml.SelectSingleNode('//key[.="DeviceName"]/following-sibling::*[1]').InnerXml = $NewDeviceName

$RequestHeaders = @{
    'Accept' = 'application/json'
    'Authorization' = $Auth
    'aw-tenant-code' = $WsoApiKey
 }
 $Body = @{
    'CommandXml' = $MdmCommandXml.OuterXml
 }
 $Body = ConvertTo-Json $Body
 Invoke-RestMethod -Uri $Uri -ContentType "application/json; charset=utf-8" -Headers $RequestHeaders -Body $Body -Method Post

推荐阅读