You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PowerShell调用Microsoft Graph API获取LAPS本地管理员密码失败排查

问题排查与解决方案

1. 确认单设备查询的请求格式

单设备查询的正确端点为 https://graph.microsoft.com/beta/deviceLocalCredentials/{deviceId},这里的deviceId必须是设备的Azure AD对象ID,而非设备名称、本地UUID或其他ID类型。

  • 验证设备ID:通过Get-MgDevice cmdlet获取目标设备的Id属性,确保查询时使用该值。

2. 检查权限的实际生效状态

虽然已分配DeviceLocalCredential.ReadBasic.All和DeviceLocalCredential.Read.All权限,需确认:

  • 应用权限是否已完成管理员同意(应用权限必须由管理员授予同意才会生效);
  • 若使用委派权限,当前登录账户是否已获得对应权限的同意。
  • 检查路径:Azure AD应用注册 → API权限 → 确认权限旁显示“已授予”状态,未授予则点击“授予管理员同意”。

3. 修正PowerShell请求语法

使用Invoke-MgGraphRequest时,确保请求格式正确,示例:

$targetDeviceId = "目标设备的Azure AD对象ID"
Invoke-MgGraphRequest -Method Get -Uri "https://graph.microsoft.com/beta/deviceLocalCredentials/$targetDeviceId"
  • 若报404 Not Found:优先排查设备ID是否错误;
  • 若报403 Forbidden:检查权限同意状态,或是否存在条件访问策略限制;
  • 若返回字段不全:确认是否使用$select参数过滤了密码字段,或权限仅为ReadBasic.All(该权限无法获取密码)。

4. 验证令牌的权限范围

通过Get-MgContext查看当前令牌的Scopes列表,确认DeviceLocalCredential.Read.All在列。若缺失,重新登录并指定权限:

Connect-MgGraph -Scopes "DeviceLocalCredential.Read.All"

5. 确认设备LAPS同步状态

  • 用Get-LapsADPassword -Identity 设备名称验证本地密码已存在且有效;
  • 通过Graph批量查询deviceLocalCredentials确认该设备已在返回列表中,确保密码已同步到Azure AD。

6. 处理返回结果不完整问题

若JSON缺少密码字段:

  • 确保请求使用的是DeviceLocalCredential.Read.All权限;
  • 移除请求中的$select参数(若存在),避免过滤掉敏感字段;
  • beta端点偶有字段返回差异,可直接使用完整端点查询,不添加额外参数。

内容的提问来源于stack exchange,提问作者Bernietechy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 16:22:15