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

如何通过Microsoft Graph PowerShell获取Entra设备的启用/禁用状态

解决Intune设备与Entra状态同步及模块/权限问题

一、修复Get-MgDevice的方法未找到错误

这个报错是Graph PowerShell模块版本冲突或损坏导致的,按以下步骤处理:

  • 卸载所有Graph相关模块:
    Get-InstalledModule -Name Microsoft.Graph* | Uninstall-Module -Force -AllVersions
    
  • 清理残留的模块文件夹(避免旧文件干扰):
    Remove-Item -Path "$env:ProgramFiles\WindowsPowerShell\Modules\Microsoft.Graph*" -Recurse -Force -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:USERPROFILE\Documents\WindowsPowerShell\Modules\Microsoft.Graph*" -Recurse -Force -ErrorAction SilentlyContinue
    
  • 重新安装最新版核心模块及所需子模块:
    Install-Module -Name Microsoft.Graph -Force -AllowClobber
    Install-Module -Name Microsoft.Graph.Devices.CorporateManagement -Force -AllowClobber
    Install-Module -Name Microsoft.Graph.Identity.DirectoryManagement -Force -AllowClobber
    
  • 重新连接Graph并指定必要权限范围:
    Connect-MgGraph -Scopes "DeviceManagementManagedDevices.Read.All", "Directory.Read.All"
    

二、高效获取Intune设备+Entra启用状态(避免循环调用)

循环单查Get-MgDevice效率低且易出错,用批量查询合并数据更稳妥:

  1. 拉取所有Intune托管设备:
    $intuneDevices = Get-MgDeviceManagementManagedDevice -All
    
  2. 批量过滤拉取对应Entra设备信息:
    $deviceIds = $intuneDevices.DeviceId | ForEach-Object { "'$_'" } -join ","
    $entraDevices = Get-MgDevice -Filter "deviceId in ($deviceIds)" -All
    
  3. 合并数据集并输出结果:
    $combinedDevices = foreach ($intuneDevice in $intuneDevices) {
        $entraMatch = $entraDevices | Where-Object { $_.DeviceId -eq $intuneDevice.DeviceId }
        [PSCustomObject]@{
            设备名称 = $intuneDevice.DeviceName
            设备ID = $intuneDevice.DeviceId
            Intune合规状态 = $intuneDevice.ComplianceState
            Entra启用状态 = $entraMatch.AccountEnabled
            系统版本 = $intuneDevice.OSVersion
        }
    }
    # 导出到CSV方便查看
    $combinedDevices | Export-Csv -Path "设备合并信息.csv" -NoTypeInformation -Encoding UTF8
    

三、解决Microsoft.Entra.DirectoryManagement模块加载冲突

Graph模块和Entra模块的程序集存在重复,不要同时混用:

  • 优先用Graph PowerShell模块的Get-MgDevice替代Entra模块的Get-EntraDevice,完全可以实现相同功能,还能避免冲突。
  • 如果必须用Entra模块,需先彻底卸载所有Graph模块,再重新安装Entra模块,两者无法共存。

四、验证Intune和Entra权限

  1. 检查当前Graph连接的权限范围:
    Get-MgContext | Select-Object Scopes
    
    确认包含DeviceManagementManagedDevices.Read.All(Intune设备读取)和Directory.Read.All(Entra设备读取)。
  2. 门户手动核对:
    • 登录Azure门户,进入Entra ID > 角色和管理员,查看账号是否拥有「目录读取者」「Intune读取者」或更高权限(如全局读取者)。
    • 进入Intune > 角色,确认账号具备读取设备的权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 13:26:14