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

PowerShell使用Get-AzADUser查询AAD匹配DisplayName数量实现用户名自增

报错根因

Get-AzADUser cmdlet 没有内置-like参数,你触发报错的原因是调用了不存在的参数,模糊匹配需要结合Where-Object管道过滤实现。

正确实现代码

第一步:查询匹配前缀的所有AAD用户

# 替换为你实际要匹配的用户名前缀规则,*为通配符
$matchRule = "Test*"
# 过滤查询所有DisplayName符合规则的用户
$matchedUserList = Get-AzADUser | Where-Object {$_.DisplayName -like $matchRule}
# 输出匹配总数
Write-Host "匹配到的账号总数:$($matchedUserList.Count)"

可选优化:如果租户用户量较大,可以用-Filter参数提前在服务端过滤,减少返回数据量,效率更高:

$matchedUserList = Get-AzADUser -Filter "startswith(DisplayName, 'Test')"

第二步:生成自增后缀用户名

推荐直接提取现有用户的最大后缀编号自增,比直接用匹配总数自增更稳妥,可以避免之前有用户被删除导致编号断层、生成重复用户名的问题:

$maxNum = 0
foreach ($u in $matchedUserList) {
    # 提取用户名末尾的数字部分
    if ($u.DisplayName -match '(\d+)$') {
        $currentNum = [int]$matches[1]
        $maxNum = $currentNum -gt $maxNum ? $currentNum : $maxNum
    }
}
# 自增后格式化为3位数字
$newSuffix = "{0:d3}" -f ($maxNum + 1)
# 拼接为最终新用户名
$newDisplayName = "Test$newSuffix"
Write-Host "生成的新用户名为:$newDisplayName"
注意事项

如果你的场景允许编号断层,坚持要使用匹配总数自增的逻辑,直接把$maxNum替换为$matchedUserList.Count即可,但要提前校验生成的用户名是否真的不存在,避免重复冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:57:03