Нужна небольшая помощь по интерфейсу 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