如何使用PowerShell查询部门包含指定字符串的AAD用户
AAD用户部门属性模糊匹配查询解决方案
错误原因排查
Get-AzureADUser默认返回的用户属性集不包含部门字段,直接过滤相当于对空值做判断,自然返回不到正确结果-contains操作符误用:该操作符用于判断数组集合中是否存在完整匹配的元素,不支持字符串模糊匹配,字符串包含匹配应该使用-like配合通配符*
可行实现方案
方案1:Azure AD PowerShell模块(你当前使用的模块)
正确命令如下,替换xyz为你要匹配的实际字符串:
# 拉取所有用户的部门属性并过滤 Get-AzureADUser -All $true -Property Department,DisplayName,UserPrincipalName | Where-Object {$_.Department -like "*xyz*"}
参数说明:
-All $true:默认接口仅返回前100条用户,加该参数返回租户内所有用户-Property:手动指定需要额外拉取的属性,除了Department外可以追加你需要的其他字段比如显示名、用户主体名
如果需要导出结果到CSV,可以在后面追加导出逻辑:
Get-AzureADUser -All $true -Property Department,DisplayName,UserPrincipalName | Where-Object {$_.Department -like "*xyz*"} | Select-Object DisplayName,UserPrincipalName,Department | Export-Csv -Path "C:\部门匹配用户.csv" -Encoding UTF8 -NoTypeInformation
方案2:Microsoft Graph PowerShell模块(微软主推的替代Azure AD模块的新版本)
先确认已授予User.Read.All权限,执行命令:
Get-MgUser -All -Property Department,DisplayName,UserPrincipalName | Where-Object {$_.Department -like "*xyz*"}
内容的提问来源于stack exchange,提问作者anders1990
相关产品推荐
相关产品推荐

