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

如何用PowerShell从AD中筛选SAMAccountName与EmployeeID一致的用户?

筛选AD中SAMAccountName与EmployeeID属性值相同的用户

之前命令的问题

  • 第一条命令Get-ADUser -Filter * | Select GivenName, SAMAccountName没有添加筛选逻辑,且未加载EmployeeID属性(AD默认不返回该属性),因此会返回所有用户。
  • 第二条命令的Filter逻辑错误,它是用外部变量$employee.employeeID匹配用户的employeeID,而非判断同一个用户的SamAccountName和EmployeeID是否相等。

正确的解决方法

方法1:本地筛选(适合用户量较小的场景)

先获取所有带EmployeeID属性的用户,再筛选两个属性值相等的条目:

Get-ADUser -Filter * -Properties EmployeeID | Where-Object { $_.SamAccountName -eq $_.EmployeeID } | Select-Object GivenName, SamAccountName, EmployeeID | Export-Csv -Path C:\Support\GDPid.csv -NoTypeInformation

各部分作用:

  • Get-ADUser -Filter * -Properties EmployeeID:获取所有AD用户,同时加载默认不返回的EmployeeID属性
  • Where-Object { $_.SamAccountName -eq $_.EmployeeID }:筛选出两个属性值完全相等的用户
  • Select-Object ...:指定需要导出的属性(可按需增减)
  • Export-Csv:将结果导出到指定CSV文件

方法2:LDAP服务器端筛选(性能更优,适合大用户量场景)

直接通过LDAP Filter让AD服务器完成筛选,减少本地数据传输:

Get-ADUser -LDAPFilter "(samaccountname=employeeID)" -Properties EmployeeID | Select-Object GivenName, SamAccountName, EmployeeID | Export-Csv -Path C:\Support\GDPid.csv -NoTypeInformation

LDAP Filter(samaccountname=employeeID)的作用是匹配samaccountname属性值与employeeID属性值完全相同的用户条目,筛选逻辑在AD服务器端执行,效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 04:15:41