Назад | Перейти на главную страницу

Обновление устройств Microsoft Intune через Powershell

Нужна небольшая помощь по интерфейсу Intune Powershell / graph.

Я пытаюсь управлять категориями устройств Intune через Powershell, чтобы я мог, во-первых, исправить устройства, которые были помещены в неправильную категорию во время регистрации, а во-вторых, я нахожусь в процессе перехода от гибридного SCCM / Intune к Azure Intune и где мы не используем категории устройств для устройств, уже зарегистрированных в SCCM Hybrid Intune, я хочу использовать PowerShell для циклического просмотра CSV-файла, полного серийных номеров устройств / номеров IMEI, и помещения корпоративных устройств в нужную категорию устройств.

Изучая интерфейс powershell / graph для Intune, я могу сделать что-то вроде

Get-IntuneManagedDevice -Filter "IMEI eq '01 012345 678910 1'" (Или -Filter "serialNumber eq 'DEADBEEF'" или что-то еще) и получить все данные моего устройства. Это включает поле для «deviceCategoryDisplayName», значение, которое я хочу изменить.

Я даже могу сделать Get-IntuneManagedDevice -Filter "serialNumber eq 'DEADBEEF'"| select manageddeviceid чтобы получить значение managedDeviceID в качестве вывода.

Насколько я могу судить, это должно работать с Update-IntuneManagedDevice (см. Ниже)

get-help Update-IntuneManagedDevice -detailed

NAME
Update-IntuneManagedDevice

SYNOPSIS
Updates a "microsoft.graph.managedDevice".

SYNTAX
Update-IntuneManagedDevice -managedDeviceId <string>

Значит, я могу обновить устройство, используя его управляемый идентификатор устройства?

Я не могу:

Get-IntuneManagedDevice -Filter "serialNumber eq 'deadbeef'"| select manageddeviceid | Update-IntuneManagedDevice -deviceCategoryDisplayName 'BYOD'

При попытке я получаю сообщение об ошибке ниже. Ясно, что я делаю что-то не так, но может ли кто-нибудь указать мне правильное направление? Я не думаю, что то, что я пытаюсь сделать, в корне необоснованно ... не так ли?

(для ясности, делаю Get-IntuneManagedDevice -managedDeviceID deadbeef-aaaa-bbbb-cccc-0123456789ab возвращает данные о моем целевом устройстве в порядке и работает Update-IntuneManagedDevice -managedDeviceID deadbeef-aaaa-bbbb-cccc-0123456789ab -deviceCategoryDisplayName 'BYOD' дает мне ту же ошибку)

Update-IntuneManagedDevice : 400 Bad Request
{
"error": {
"code": "InternalError",
"message": "{\r\n \"_version\": 3,\r\n \"Message\": \"An error has occurred - Operation ID (for customer support): 00000000-0000-0000-0000-000000000000 - Activity ID: 6f743002-b0e0-48ed-a25d-0cdd33870efd - Url:
https://fef.msub02.manage.microsoft.com/DeviceFE/StatelessDeviceFEService/deviceManagement/managedDe... \"CustomApiErrorPhrase\":
\"\",\r\n \"RetryAfter\": null,\r\n \"ErrorSourceService\": \"\",\r\n \"HttpHeaders\": \"{}\"\r\n}",
"innerError": {
"request-id": "6f743002-b0e0-48ed-a25d-0cdd33870efd",
"date": "2019-03-06T14:08:02"
}
}
}
At line:1 char:92
+ ... ddeviceid | Update-IntuneManagedDevice -deviceCategoryDisplayName 'BY ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ConnectionError: (@{Request=; Response=}:PSObject) [Update-IntuneManagedDevice], HttpRequestException
+ FullyQualifiedErrorId : PowerShellGraphSDK_HttpRequestError,Microsoft.Intune.PowerShellGraphSDK.PowerShellCmdlets.Update_IntuneManagedDevice

Поработав над этим, на данный момент необходимо поработать с функциями MS Graph для Intune PowerShell. Вам также необходимо будет работать с номерами GUID ID для устройства в категории.

Получите категории устройств Intune с Get-IntuneDeviceCategory и идентификатор устройства Intune с Get-IntuneManagedDevice (обратите внимание, что здесь вам нужно поле «ID», а не «AzureADDeviceID».

Вот рабочий прототип

 #this is an example for 1 device:
 $intuneDeviceId = 'deadbeef-aaaa-bbbb-cccc-0123456789ab' #update the IntuneDeviceID, you will need to implement a loop for mutiple devices
 $deviceCategoryReqBody = '{"@odata.id":"https://graph.microsoft.com/beta/deviceManagement/deviceCategories/98765432-aaaa-bbbb-cccc-0123456789ab"}' #update the deviceCateg id
 $patchDeviceReqBody = '{}'

 #Running a GET method on the device ID to check its validity
 Invoke-RestMethod -Uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices/$intuneDeviceId/deviceCategory" -Headers $authToken -Method Get

 #calling the PUT method to update device category for that specific device
 Invoke-RestMethod -Uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices/$intuneDeviceId/deviceCategory/`$ref" -Headers $authToken -Method Put -Body $deviceCategoryReqBody

 #calling the PATCH method to update device details about device category
 Invoke-RestMethod -Uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices/$intuneDeviceId" -Headers $authToken -Method Patch -Body $patchDeviceReqBody

  #Running a GET method on the device ID to check its validity
 Invoke-RestMethod -Uri "https://graph.microsoft.com/beta/deviceManagement/deviceCategories/" -Headers $authToken -Method Get

#endregion