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

循环调用Get-MgUser返回结果重复问题求助

问题:Get-MgUser查询返回重复结果

我有一个包含9个唯一DisplayName的TXT文件,读取到数组后循环调用Get-MgUser cmdlet查询,结果每个用户ID都返回了两次。

相关代码

#Display names list path
$DnPath = "C:\dirname\filname.txt"

#Display names array
$DnArr = get-content -path $DnPath

$DnArr | Foreach-Object { 
    Get-Mguser -search displayname:$_ -ConsistencyLevel eventual -Property id | Select-Object -Property id
}

执行结果(每个ID均重复)

0eaba174-fab6-4cda-bf09-92391d586d48
15fb3a43-d8a1-4348-8e31-8f5814a38a69
1f08022d-85ba-40ba-9b79-c201c8f477b0
30792149-52da-44ec-9709-1911244bb183
6a4290f2-6397-4d58-9d20-e0b46a7d5d3d
714d794c-3e43-40a8-b752-ed04b2748016
a032dc91-28e6-49f4-bcea-1bbacf2f1a00
cfcf7c8a-5cfa-4362-ae7f-bad6bb1f4b66
e9704b2c-dbdd-4654-89a0-defe38bcadb7
6a4290f2-6397-4d58-9d20-e0b46a7d5d3d
cfcf7c8a-5cfa-4362-ae7f-bad6bb1f4b66
e9704b2c-dbdd-4654-89a0-defe38bcadb7
714d794c-3e43-40a8-b752-ed04b2748016
30792149-52da-44ec-9709-1911244bb183
15fb3a43-d8a1-4348-8e31-8f5814a38a69
1f08022d-85ba-40ba-9b79-c201c8f477b0
0eaba174-fab6-4cda-bf09-92391d586d48
a032dc91-28e6-49f4-bcea-1bbacf2f1a00
解决方案

原因分析

用-search参数时,Graph API是部分匹配逻辑,可能有多个用户的DisplayName包含当前搜索字符串(比如大小写差异、简称与全名的包含关系),或者API的分页机制导致重复返回。既然你确认TXT文件是9个唯一值,核心问题大概率出在搜索匹配逻辑上。

解决办法

  1. 精确匹配DisplayName
    改用-Filter参数做精确匹配,彻底避免部分匹配带来的冗余结果:
$DnArr | Foreach-Object { 
    Get-MgUser -Filter "DisplayName eq '$_'" -Property id | Select-Object -Property id
}

如果DisplayName包含单引号,需要提前转义:

$DnArr = Get-Content -Path $DnPath | ForEach-Object { $_.Replace("'", "''") }
  1. 结果去重处理
    如果必须使用-Search,在最终结果后添加去重步骤:
$DnArr | Foreach-Object { 
    Get-Mguser -search "displayname:$_" -ConsistencyLevel eventual -Property id | Select-Object -Property id
} | Select-Object -Property id -Unique
  1. 验证数组内容
    确认读取的数组没有隐形重复(比如空行、空格差异):
$DnArr | Get-Unique

如果输出不是9个值,清理TXT文件或读取时过滤:

$DnArr = Get-Content -Path $DnPath | Where-Object { $_ -ne '' } | Get-Unique

内容的提问来源于stack exchange,提问作者aJ-47

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 12:50:20