Я работал над этим несколько дней. Мне нужно изменить категорию устройства в Intune через Powershell. Мне удалось собрать этот код, который я могу запустить:
if (-not ([System.Management.Automation.PSTypeName]'ServerCertificateValidationCallback').Type)
{
$certCallback = @"
using System;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
public class ServerCertificateValidationCallback
{
public static void Ignore()
{
if(ServicePointManager.ServerCertificateValidationCallback ==null)
{
ServicePointManager.ServerCertificateValidationCallback +=
delegate
(
Object obj,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors errors
)
{
return true;
};
}
}
}
"@
Add-Type $certCallback
}
[ServerCertificateValidationCallback]::Ignore()
[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$TENANTID=""
$APPID=""
$PASSWORD=""
$result=Invoke-RestMethod -Uri https://login.microsoftonline.com/$TENANTID/oauth2/token?api-version=1.0 -Method Post -Body @{"grant_type" = "client_credentials"; "resource" = "https://graph.microsoft.com"; "client_id" = "$APPID"; "client_secret" = "$PASSWORD" }
$token = $result.access_token
$Headers=@{
'authorization'="Bearer $token"
'host'="management.azure.com"
'contentype'='application/json'
}
Я, очевидно, заполнил переменные. Затем я могу выполнить команду, как это:
Invoke-RestMethod -Uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices/$deviceid/deviceCategory" -Headers $Headers -Method Get
(Очевидно, Я объявил переменную deviceid) Я получаю это сообщение об ошибке:
Invoke-RestMethod : {
"error": {
"code": "UnknownError",
"message": "{\"ErrorCode\":\"Forbidden\",\"Message\":\"{\\r\\n \\\"_version\\\": 3,\\r\\n
\\\"Message\\\": \\\"An error has occurred - Operation ID (for customer support):
00000000-0000-0000-0000-000000000000 - Activity ID: a906420f-86a9-49b6-8e28-c10777edf019 - Url: https:
//fef.amsub0102.manage.microsoft.com/DeviceFE/StatelessDeviceFEService/deviceManagement/managedDevices
%28%27XXXDEVICEIDXXX%27%29/deviceCategory?api-version=5020-02-20\\\",\\r\\n
\\\"CustomApiErrorPhrase\\\": \\\"\\\",\\r\\n \\\"RetryAfter\\\": null,\\r\\n
\\\"ErrorSourceService\\\": \\\"\\\",\\r\\n \\\"HttpHeaders\\\":
\\\"{\\\\\\\"WWW-Authenticate\\\\\\\":\\\\\\\"Bearer realm=\\\\\\\\\\\\\\\"urn:intune:service,c3998d6e
-2e37-4c56-87b5-7b444ee1cb26,f0f3c450-59bf-4f0d-b1b2-0ef84ddfe3c7\\\\\\\\\\\\\\\"\\\\\\\"}\\\"\\r\\n}\
",\"Target\":null,\"Details\":null,\"InnerError\":null,\"InstanceAnnotations\":[]}",
"innerError": {
"request-id": "a906420f-86a9-49b6-8e28-c10777edf019",
"date": "2020-04-02T06:41:21"
}
}
}
At line:5 char:1
+ Invoke-RestMethod -Uri "https://graph.microsoft.com/beta/deviceManage ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-Re
stMethod], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestM
ethodCommand
Я заменил идентификатор устройства в этом сообщении об ошибке. Как я могу это исправить?