首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSGraph - Invoke-WebRequest (403)

MSGraph - Invoke-WebRequest (403)
EN

Stack Overflow用户
提问于 2022-09-06 12:31:12
回答 1查看 25关注 0票数 0

我有一个具有Directory.ReadWrite.All权限的委托应用程序和一个PS脚本来通过该应用程序来保护用户。当我使用GET时,它会工作,但在尝试修补方法时,我会被禁止,这是脚本的一部分:

代码语言:javascript
复制
$uri = "https://graph.microsoft.com/v1.0/devices/1111-2222-3333-4444-5555"

$method = "PATCH"

$body = '{

"extensionAttributes": {
    "extensionAttribute2": "text"
}
}'

Invoke-WebRequest -Method $method -Uri $uri -Body $body -ContentType "application/json" -Headers @{Authorization = "Bearer $token"} -UseBasicParsing -ErrorAction Stop

另一件事:当使用设备ObjectID构造Uri时,我得到的是403禁止的,但是如果我在DeviceID上使用$filter,则不允许使用405方法。这是否意味着它不喜欢过滤器,必须坚持使用ObjectID?当我使用$filter运行GET时,是否有一种方法可以在JSON查询中仅将ObjectID保存在变量中?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2022-09-06 16:12:00

对其进行排序后,我需要Directory.AccessAsUser.All并使用它来获取objectId变量:

代码语言:javascript
复制
$DsregCmdStatus = dsregcmd /status
if($DsregCmdStatus -match "DeviceId")
{
$DeviceId = $DsregCmdStatus -match "DeviceID"
$DeviceId = ($DeviceId.Split(":").trim())
$DeviceId = $DeviceId[1]
}

# Find Id 
$uri = "https://graph.microsoft.com/v1.0/devices?`$filter=deviceId eq '$DeviceId'"
$method = "GET"

# Run Graph API query 
$query = Invoke-WebRequest -Method $method -Uri $uri -ContentType "application/json" -Headers @{Authorization = "Bearer $token"} -UseBasicParsing -ErrorAction Stop
$output = ConvertFrom-Json $query.Content
$id = $output.value
$id = $id.id
Write-Host "Machine ID is $id"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73622113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档