AD账户查询脚本报错求助:筛选描述含(FUR)的用户
解决AD用户查询的语法错误并实现需求
你的问题出在Get-ADUser的Filter参数语法不正确——AD的查询过滤器需要明确指定属性名、比较运算符和匹配值,不能直接写"(FUR)"这种裸字符串。下面是修正后的完整脚本,以及关键修改点的说明:
修正后的脚本
Import-Module ActiveDirectory $creds = Get-Credential $OUPath = 'OU=Standard Users,OU=NY,OU=users,OU=Offices,DC=US,DC=FLN,DC=NET' # 查询符合条件的用户,指定需要的扩展属性,然后导出目标字段 Get-ADUser -Credential $creds ` -Properties Description, extensionattribute11 ` -Filter {Description -like "(FUR)*"} ` -SearchBase $OUPath | Select-Object SamAccountName, Description, extensionattribute11 | Export-Csv -Path "C:\AD_FUR_Users.csv" -NoTypeInformation -Encoding UTF8
关键修改说明
- 修正Filter语法:把错误的
-Filter "(FUR)"改成-Filter {Description -like "(FUR)*"}。这里:Description是要匹配的AD属性-like是模糊匹配运算符"(FUR)*"表示匹配以"(FUR)"开头的描述(*是通配符,代表任意后续字符)
- 扩展Properties参数:添加
extensionattribute11,因为Get-ADUser默认只返回基础属性,必须显式指定需要获取的扩展属性才能后续导出 - 添加导出逻辑:用
Select-Object筛选出你需要的三个字段(SamAccountName是AD用户的登录名),再用Export-Csv导出到本地文件(可以修改-Path的值指定导出路径) - 添加-Credential参数:把你获取的
$creds传给Get-ADUser,确保用指定权限执行查询
验证脚本
执行脚本后,打开导出的CSV文件,就能看到所有描述以"(FUR)"开头的用户的登录名、描述和extensionattribute11字段了。如果需要在控制台先预览结果,可以去掉Export-Csv那一行,直接查看输出。
内容的提问来源于stack exchange,提问作者Joshua Romoff
相关产品推荐
相关产品推荐

