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

使用Get-IntuneManagedDevice获设备清单时PhysicalMemoryInBytes显示0,求非Graph+Postman方案

解决Intune中Get-IntuneManagedDevice返回PhysicalMemoryInBytes为0的问题

以下是无需依赖Postman的替代方案:

方案1:通过Intune自定义设备属性收集RAM数据

Intune原生的PhysicalMemoryInBytes字段可能因设备同步延迟或库存配置问题无法正确获取,可通过自定义脚本上传RAM数据:

  • 编写PowerShell脚本获取设备RAM总量:
$totalRAM = Get-CimInstance Win32_PhysicalMemory | Measure-Object Capacity -Sum | Select-Object -ExpandProperty Sum
return @{CustomPhysicalMemory = $totalRAM}
  • 在Intune控制台中创建设备配置脚本,上传上述脚本,设置运行上下文为「系统上下文」(确保权限足够读取硬件信息)。
  • 脚本运行后,可通过以下命令查询包含自定义RAM字段的设备清单:
Get-IntuneManagedDevice | Select-Object DeviceName, Manufacturer, ProcessorModel, @{
    Name = "PhysicalMemoryInBytes"
    Expression = { ($_.extensionAttributes | ConvertFrom-Json).CustomPhysicalMemory }
} | Out-GridView

方案2:启用完整硬件库存并通过Graph PowerShell查询

无需Postman,直接用PowerShell调用MS Graph获取准确的RAM数据:

  1. 先确认Intune已启用完整硬件库存:
    • 进入Intune控制台 → 设备 → 设备库存 → 硬件 → 确保勾选Win32_PhysicalMemory类。
  2. 使用PowerShell调用Graph API(需先安装Microsoft.Graph.Intune模块或MSAL.PS模块):
# 示例:用MSAL获取认证令牌
$authToken = Get-MsalToken -ClientId "你的Intune应用客户端ID" -TenantId "你的租户ID" -Scopes "DeviceManagementManagedDevices.Read.All"
# 查询设备及RAM信息
$devices = Invoke-RestMethod -Uri "https://graph.microsoft.com/v1.0/deviceManagement/managedDevices?$select=deviceName,physicalMemoryInBytes,manufacturer,processorModel" -Headers @{Authorization = "Bearer $($authToken.AccessToken)"} -Method Get
# 输出到GridView
$devices.value | Out-GridView

注:如果之前PhysicalMemoryInBytes为0,启用完整库存后需等待设备同步(通常1-24小时)。

方案3:远程批量读取设备本地RAM数据

若设备可通过WinRM访问(如域环境),直接从设备本地获取最准确的RAM信息:

# 获取Intune设备清单
$intuneDevices = Get-IntuneManagedDevice | Select-Object DeviceName, Manufacturer, ProcessorModel, DeviceId

# 批量远程查询RAM
foreach ($device in $intuneDevices) {
    try {
        $ram = Invoke-Command -ComputerName $device.DeviceName -ScriptBlock {
            Get-CimInstance Win32_PhysicalMemory | Measure-Object Capacity -Sum | Select-Object -ExpandProperty Sum
        } -ErrorAction Stop
        
        [PSCustomObject]@{
            DeviceName = $device.DeviceName
            Manufacturer = $device.Manufacturer
            CPU = $device.ProcessorModel
            PhysicalMemoryInBytes = $ram
        }
    } catch {
        Write-Warning "无法读取$($device.DeviceName)的RAM数据:$_"
    }
} | Out-GridView

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 13:03:31